- /**
- * Test updateMethodEscapeMarkdown with nothing to do (setting already enabled)
- */
- public function testEscapeMarkdownSettingNothingToDoEnabled()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $this->conf->set('security.markdown_escape', true);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodEscapeMarkdown());
- $this->assertTrue($this->conf->get('security.markdown_escape'));
- }
-
- /**
- * Test updateMethodEscapeMarkdown with nothing to do (setting already disabled)
- */
- public function testEscapeMarkdownSettingNothingToDoDisabled()
- {
- $this->conf->set('security.markdown_escape', false);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodEscapeMarkdown());
- $this->assertFalse($this->conf->get('security.markdown_escape'));
- }
-
- /**
- * Test updateMethodPiwikUrl with valid data
- */
- public function testUpdatePiwikUrlValid()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $url = 'mypiwik.tld';
- $this->conf->set('plugins.PIWIK_URL', $url);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodPiwikUrl());
- $this->assertEquals('http://'. $url, $this->conf->get('plugins.PIWIK_URL'));
-
- // reload from file
- $this->conf = new ConfigManager($sandboxConf);
- $this->assertEquals('http://'. $url, $this->conf->get('plugins.PIWIK_URL'));
- }
-
- /**
- * Test updateMethodPiwikUrl without setting
- */
- public function testUpdatePiwikUrlEmpty()
- {
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodPiwikUrl());
- $this->assertEmpty($this->conf->get('plugins.PIWIK_URL'));
- }
-
- /**
- * Test updateMethodPiwikUrl: valid URL, nothing to do
- */
- public function testUpdatePiwikUrlNothingToDo()
- {
- $url = 'https://mypiwik.tld';
- $this->conf->set('plugins.PIWIK_URL', $url);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodPiwikUrl());
- $this->assertEquals($url, $this->conf->get('plugins.PIWIK_URL'));
- }
-
- /**
- * Test updateMethodAtomDefault with show_atom set to false
- * => update to true.
- */
- public function testUpdateMethodAtomDefault()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $this->conf->set('feed.show_atom', false);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodAtomDefault());
- $this->assertTrue($this->conf->get('feed.show_atom'));
- // reload from file
- $this->conf = new ConfigManager($sandboxConf);
- $this->assertTrue($this->conf->get('feed.show_atom'));
- }
- /**
- * Test updateMethodAtomDefault with show_atom not set.
- * => nothing to do
- */
- public function testUpdateMethodAtomDefaultNoExist()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodAtomDefault());
- $this->assertTrue($this->conf->get('feed.show_atom'));
- }
- /**
- * Test updateMethodAtomDefault with show_atom set to true.
- * => nothing to do
- */
- public function testUpdateMethodAtomDefaultAlreadyTrue()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $this->conf->set('feed.show_atom', true);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodAtomDefault());
- $this->assertTrue($this->conf->get('feed.show_atom'));
- }
-
- /**
- * Test updateMethodDownloadSizeAndTimeoutConf, it should be set if none is already defined.
- */
- public function testUpdateMethodDownloadSizeAndTimeoutConf()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
- $this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
- $this->assertEquals(30, $this->conf->get('general.download_timeout'));
-
- $this->conf = new ConfigManager($sandboxConf);
- $this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
- $this->assertEquals(30, $this->conf->get('general.download_timeout'));
- }
-
- /**
- * Test updateMethodDownloadSizeAndTimeoutConf, it shouldn't be set if it is already defined.
- */
- public function testUpdateMethodDownloadSizeAndTimeoutConfIgnore()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $this->conf->set('general.download_max_size', 38);
- $this->conf->set('general.download_timeout', 70);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
- $this->assertEquals(38, $this->conf->get('general.download_max_size'));
- $this->assertEquals(70, $this->conf->get('general.download_timeout'));
- }
-
- /**
- * Test updateMethodDownloadSizeAndTimeoutConf, only the maz size should be set here.
- */
- public function testUpdateMethodDownloadSizeAndTimeoutConfOnlySize()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $this->conf->set('general.download_max_size', 38);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
- $this->assertEquals(38, $this->conf->get('general.download_max_size'));
- $this->assertEquals(30, $this->conf->get('general.download_timeout'));
- }
-
- /**
- * Test updateMethodDownloadSizeAndTimeoutConf, only the time out should be set here.
- */
- public function testUpdateMethodDownloadSizeAndTimeoutConfOnlyTimeout()
- {
- $sandboxConf = 'sandbox/config';
- copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
- $this->conf = new ConfigManager($sandboxConf);
- $this->conf->set('general.download_timeout', 3);
- $updater = new Updater([], [], $this->conf, true);
- $this->assertTrue($updater->updateMethodDownloadSizeAndTimeoutConf());
- $this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
- $this->assertEquals(3, $this->conf->get('general.download_timeout'));
- }
-
- /**
-<<<<<<< HEAD
- * Test updateMethodWebThumbnailer with thumbnails enabled.
- */
- public function testUpdateMethodWebThumbnailerEnabled()
- {
- $this->conf->remove('thumbnails');
- $this->conf->set('thumbnail.enable_thumbnails', true);
- $updater = new Updater([], [], $this->conf, true, $_SESSION);
- $this->assertTrue($updater->updateMethodWebThumbnailer());
- $this->assertFalse($this->conf->exists('thumbnail'));
- $this->assertEquals(\Shaarli\Thumbnailer::MODE_ALL, $this->conf->get('thumbnails.mode'));
- $this->assertEquals(125, $this->conf->get('thumbnails.width'));
- $this->assertEquals(90, $this->conf->get('thumbnails.height'));
- $this->assertContains('You have enabled or changed thumbnails', $_SESSION['warnings'][0]);
- }
-
- /**
- * Test updateMethodWebThumbnailer with thumbnails disabled.
- */
- public function testUpdateMethodWebThumbnailerDisabled()
- {
- $this->conf->remove('thumbnails');
- $this->conf->set('thumbnail.enable_thumbnails', false);
- $updater = new Updater([], [], $this->conf, true, $_SESSION);
- $this->assertTrue($updater->updateMethodWebThumbnailer());
- $this->assertFalse($this->conf->exists('thumbnail'));
- $this->assertEquals(Thumbnailer::MODE_NONE, $this->conf->get('thumbnails.mode'));
- $this->assertEquals(125, $this->conf->get('thumbnails.width'));
- $this->assertEquals(90, $this->conf->get('thumbnails.height'));
- $this->assertTrue(empty($_SESSION['warnings']));
- }
-
- /**
- * Test updateMethodWebThumbnailer with thumbnails disabled.
- */
- public function testUpdateMethodWebThumbnailerNothingToDo()
- {
- $updater = new Updater([], [], $this->conf, true, $_SESSION);
- $this->assertTrue($updater->updateMethodWebThumbnailer());
- $this->assertFalse($this->conf->exists('thumbnail'));
- $this->assertEquals(Thumbnailer::MODE_COMMON, $this->conf->get('thumbnails.mode'));
- $this->assertEquals(90, $this->conf->get('thumbnails.width'));
- $this->assertEquals(53, $this->conf->get('thumbnails.height'));
- $this->assertTrue(empty($_SESSION['warnings']));
- }
-
- /**
- * Test updateMethodSetSticky().
- */
- public function testUpdateStickyValid()
- {
- $blank = [
- 'id' => 1,
- 'url' => 'z',
- 'title' => '',
- 'description' => '',
- 'tags' => '',
- 'created' => new DateTime(),
- ];
- $links = [
- 1 => ['id' => 1] + $blank,
- 2 => ['id' => 2] + $blank,
- ];
- $refDB = new \ReferenceLinkDB();
- $refDB->setLinks($links);
- $refDB->write(self::$testDatastore);
- $linkDB = new LinkDB(self::$testDatastore, true, false);
-
- $updater = new Updater(array(), $linkDB, $this->conf, true);
- $this->assertTrue($updater->updateMethodSetSticky());
-
- $linkDB = new LinkDB(self::$testDatastore, true, false);
- foreach ($linkDB as $link) {
- $this->assertFalse($link['sticky']);
- }
- }
-
- /**
- * Test updateMethodSetSticky().
- */
- public function testUpdateStickyNothingToDo()
- {
- $blank = [
- 'id' => 1,
- 'url' => 'z',
- 'title' => '',
- 'description' => '',
- 'tags' => '',
- 'created' => new DateTime(),
- ];
- $links = [
- 1 => ['id' => 1, 'sticky' => true] + $blank,
- 2 => ['id' => 2] + $blank,
- ];
- $refDB = new \ReferenceLinkDB();
- $refDB->setLinks($links);
- $refDB->write(self::$testDatastore);
- $linkDB = new LinkDB(self::$testDatastore, true, false);
-
- $updater = new Updater(array(), $linkDB, $this->conf, true);
- $this->assertTrue($updater->updateMethodSetSticky());
-
- $linkDB = new LinkDB(self::$testDatastore, true, false);
- $this->assertTrue($linkDB[1]['sticky']);