X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FWallabag%2FCoreBundle%2FController%2FConfigControllerTest.php;h=5bc815ee6f455197ae4acea97f723a5c1d097efc;hb=7ab5eb9508921d84b4b4ec84a59135d536da748e;hp=a28c3b6bb7be53c8baae35d35822c217a371ad76;hpb=6bb0866cf513bf939eb2e3290d1852c55e51ec0d;p=github%2Fwallabag%2Fwallabag.git diff --git a/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php b/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php index a28c3b6b..5bc815ee 100644 --- a/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php @@ -1,6 +1,6 @@ logInAs('admin'); + $this->useTheme('baggy'); $client = $this->getClient(); + $entry = new Entry($this->getLoggedInUser()); + $entry->setUrl('http://0.0.0.0/test-entry1') + ->setReadingTime(22); + $this->getEntityManager()->persist($entry); + + $this->getEntityManager()->flush(); + $this->getEntityManager()->clear(); + $crawler = $client->request('GET', '/unread/list'); $form = $crawler->filter('button[id=submit-filter]')->form(); $dataFilters = [ @@ -409,6 +418,7 @@ class ConfigControllerTest extends WallabagCoreTestCase public function testTaggingRuleCreation() { $this->logInAs('admin'); + $this->useTheme('baggy'); $client = $this->getClient(); $crawler = $client->request('GET', '/config'); @@ -515,6 +525,29 @@ class ConfigControllerTest extends WallabagCoreTestCase } } + public function testTaggingRuleTooLong() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/config'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[id=tagging_rule_save]')->form(); + + $crawler = $client->submit($form, [ + 'tagging_rule[rule]' => str_repeat('title', 60), + 'tagging_rule[tags]' => 'cool tag', + ]); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text'])); + + $this->assertContains('255 characters', $body[0]); + } + public function testDeletingTaggingRuleFromAnOtherUser() { $this->logInAs('bob'); @@ -775,11 +808,87 @@ class ConfigControllerTest extends WallabagCoreTestCase $entryReset = $em ->getRepository('WallabagCoreBundle:Entry') - ->countAllEntriesByUsername($user->getId()); + ->countAllEntriesByUser($user->getId()); $this->assertEquals(0, $entryReset, 'Entries were reset'); } + public function testResetArchivedEntries() + { + $this->logInAs('empty'); + $client = $this->getClient(); + + $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + + $user = static::$kernel->getContainer()->get('security.token_storage')->getToken()->getUser(); + + $tag = new Tag(); + $tag->setLabel('super'); + $em->persist($tag); + + $entry = new Entry($user); + $entry->setUrl('http://www.lemonde.fr/europe/article/2016/10/01/pour-le-psoe-chaque-election-s-est-transformee-en-une-agonie_5006476_3214.html'); + $entry->setContent('Youhou'); + $entry->setTitle('Youhou'); + $entry->addTag($tag); + $em->persist($entry); + + $annotation = new Annotation($user); + $annotation->setText('annotated'); + $annotation->setQuote('annotated'); + $annotation->setRanges([]); + $annotation->setEntry($entry); + $em->persist($annotation); + + $tagArchived = new Tag(); + $tagArchived->setLabel('super'); + $em->persist($tagArchived); + + $entryArchived = new Entry($user); + $entryArchived->setUrl('http://www.lemonde.fr/europe/article/2016/10/01/pour-le-psoe-chaque-election-s-est-transformee-en-une-agonie_5006476_3214.html'); + $entryArchived->setContent('Youhou'); + $entryArchived->setTitle('Youhou'); + $entryArchived->addTag($tagArchived); + $entryArchived->setArchived(true); + $em->persist($entryArchived); + + $annotationArchived = new Annotation($user); + $annotationArchived->setText('annotated'); + $annotationArchived->setQuote('annotated'); + $annotationArchived->setRanges([]); + $annotationArchived->setEntry($entryArchived); + $em->persist($annotationArchived); + + $em->flush(); + + $crawler = $client->request('GET', '/config#set3'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $crawler = $client->click($crawler->selectLink('config.reset.archived')->link()); + + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + $this->assertContains('flashes.config.notice.archived_reset', $client->getContainer()->get('session')->getFlashBag()->get('notice')[0]); + + $entryReset = $em + ->getRepository('WallabagCoreBundle:Entry') + ->countAllEntriesByUser($user->getId()); + + $this->assertEquals(1, $entryReset, 'Entries were reset'); + + $tagReset = $em + ->getRepository('WallabagCoreBundle:Tag') + ->countAllTags($user->getId()); + + $this->assertEquals(1, $tagReset, 'Tags were reset'); + + $annotationsReset = $em + ->getRepository('WallabagAnnotationBundle:Annotation') + ->findAnnotationsByPageId($annotationArchived->getId(), $user->getId()); + + $this->assertEmpty($annotationsReset, 'Annotations were reset'); + } + public function testResetEntriesCascade() { $this->logInAs('empty'); @@ -820,7 +929,7 @@ class ConfigControllerTest extends WallabagCoreTestCase $entryReset = $em ->getRepository('WallabagCoreBundle:Entry') - ->countAllEntriesByUsername($user->getId()); + ->countAllEntriesByUser($user->getId()); $this->assertEquals(0, $entryReset, 'Entries were reset'); @@ -836,4 +945,24 @@ class ConfigControllerTest extends WallabagCoreTestCase $this->assertEmpty($annotationsReset, 'Annotations were reset'); } + + public function testSwitchViewMode() + { + $this->logInAs('admin'); + $this->useTheme('baggy'); + $client = $this->getClient(); + + $client->request('GET', '/unread/list'); + + $this->assertNotContains('listmode', $client->getResponse()->getContent()); + + $client->request('GET', '/config/view-mode'); + $crawler = $client->followRedirect(); + + $client->request('GET', '/unread/list'); + + $this->assertContains('listmode', $client->getResponse()->getContent()); + + $client->request('GET', '/config/view-mode'); + } }