diff --git a/application/Updater.php b/application/Updater.php index 90aba74..3f5d325 100644 --- a/application/Updater.php +++ b/application/Updater.php @@ -324,6 +324,20 @@ class Updater return rename('inc/user.css', 'data/user.css'); } + + /** + * While the new default theme is in an unstable state + * continue to use the vintage theme + */ + public function updateMethodDefaultThemeVintage() + { + if ($this->conf->get('resource.theme') !== 'default') { + return true; + } + $this->conf->set('resource.theme', 'vintage'); + $this->conf->write($this->isLoggedIn); + return true; + } } /** diff --git a/tests/Updater/UpdaterTest.php b/tests/Updater/UpdaterTest.php index 1d15cfa..de330ae 100644 --- a/tests/Updater/UpdaterTest.php +++ b/tests/Updater/UpdaterTest.php @@ -466,4 +466,44 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; unlink('sandbox/'. $theme .'/linklist.html'); rmdir('sandbox/'. $theme); } + + /** + * Test updateMethodDefaultThemeVintage with the default theme enabled. + */ + public function testSetDefaultThemeToVintage() + { + $sandboxConf = 'sandbox/config'; + copy(self::$configFile . '.json.php', $sandboxConf . '.json.php'); + $this->conf = new ConfigManager($sandboxConf); + + $this->conf->set('resource.theme', 'default'); + $updater = new Updater([], [], $this->conf, true); + $this->assertTrue($updater->updateMethodDefaultThemeVintage()); + $this->assertEquals('vintage', $this->conf->get('resource.theme')); + + // reload from file + $this->conf = new ConfigManager($sandboxConf); + $this->assertEquals('vintage', $this->conf->get('resource.theme')); + } + + /** + * Test updateMethodDefaultThemeVintage with custom theme enabled => nothing to do. + */ + public function testSetDefaultThemeNothingToDo() + { + $sandboxConf = 'sandbox/config'; + copy(self::$configFile . '.json.php', $sandboxConf . '.json.php'); + $this->conf = new ConfigManager($sandboxConf); + + $theme = 'myawesometheme'; + $this->conf->set('resource.theme', $theme); + $this->conf->write(true); + $updater = new Updater([], [], $this->conf, true); + $this->assertTrue($updater->updateMethodDefaultThemeVintage()); + $this->assertEquals($theme, $this->conf->get('resource.theme')); + + // reload from file + $this->conf = new ConfigManager($sandboxConf); + $this->assertEquals($theme, $this->conf->get('resource.theme')); + } }