X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FWallabag%2FCoreBundle%2FController%2FRssControllerTest.php;h=6167fe2dbf82d2a880f0f34ca5f397b181297351;hb=f808b01692a835673f328d7221ba8c212caa9b61;hp=5a59654d3601c644c1ed611d5e24354c13a5dbc0;hpb=68cb89a5161351dd730871fc834bf147204a2a07;p=github%2Fwallabag%2Fwallabag.git diff --git a/tests/Wallabag/CoreBundle/Controller/RssControllerTest.php b/tests/Wallabag/CoreBundle/Controller/RssControllerTest.php index 5a59654d..6167fe2d 100644 --- a/tests/Wallabag/CoreBundle/Controller/RssControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/RssControllerTest.php @@ -6,7 +6,7 @@ use Tests\Wallabag\CoreBundle\WallabagCoreTestCase; class RssControllerTest extends WallabagCoreTestCase { - public function validateDom($xml, $type, $nb = null) + public function validateDom($xml, $type, $urlPagination, $nb = null) { $doc = new \DOMDocument(); $doc->loadXML($xml); @@ -16,36 +16,36 @@ class RssControllerTest extends WallabagCoreTestCase if (null === $nb) { $this->assertGreaterThan(0, $xpath->query('//item')->length); } else { - $this->assertEquals($nb, $xpath->query('//item')->length); + $this->assertSame($nb, $xpath->query('//item')->length); } - $this->assertEquals(1, $xpath->query('/rss')->length); - $this->assertEquals(1, $xpath->query('/rss/channel')->length); + $this->assertSame(1, $xpath->query('/rss')->length); + $this->assertSame(1, $xpath->query('/rss/channel')->length); - $this->assertEquals(1, $xpath->query('/rss/channel/title')->length); - $this->assertEquals('wallabag — '.$type.' feed', $xpath->query('/rss/channel/title')->item(0)->nodeValue); + $this->assertSame(1, $xpath->query('/rss/channel/title')->length); + $this->assertSame('wallabag - ' . $type . ' feed', $xpath->query('/rss/channel/title')->item(0)->nodeValue); - $this->assertEquals(1, $xpath->query('/rss/channel/pubDate')->length); + $this->assertSame(1, $xpath->query('/rss/channel/pubDate')->length); - $this->assertEquals(1, $xpath->query('/rss/channel/generator')->length); - $this->assertEquals('wallabag', $xpath->query('/rss/channel/generator')->item(0)->nodeValue); + $this->assertSame(1, $xpath->query('/rss/channel/generator')->length); + $this->assertSame('wallabag', $xpath->query('/rss/channel/generator')->item(0)->nodeValue); - $this->assertEquals(1, $xpath->query('/rss/channel/description')->length); - $this->assertEquals('wallabag '.$type.' elements', $xpath->query('/rss/channel/description')->item(0)->nodeValue); + $this->assertSame(1, $xpath->query('/rss/channel/description')->length); + $this->assertSame('wallabag ' . $type . ' elements', $xpath->query('/rss/channel/description')->item(0)->nodeValue); - $this->assertEquals(1, $xpath->query('/rss/channel/link[@rel="self"]')->length); - $this->assertContains($type.'.xml', $xpath->query('/rss/channel/link[@rel="self"]')->item(0)->getAttribute('href')); + $this->assertSame(1, $xpath->query('/rss/channel/link[@rel="self"]')->length); + $this->assertContains($urlPagination . '.xml', $xpath->query('/rss/channel/link[@rel="self"]')->item(0)->getAttribute('href')); - $this->assertEquals(1, $xpath->query('/rss/channel/link[@rel="last"]')->length); - $this->assertContains($type.'.xml?page=', $xpath->query('/rss/channel/link[@rel="last"]')->item(0)->getAttribute('href')); + $this->assertSame(1, $xpath->query('/rss/channel/link[@rel="last"]')->length); + $this->assertContains($urlPagination . '.xml?page=', $xpath->query('/rss/channel/link[@rel="last"]')->item(0)->getAttribute('href')); foreach ($xpath->query('//item') as $item) { - $this->assertEquals(1, $xpath->query('title', $item)->length); - $this->assertEquals(1, $xpath->query('source', $item)->length); - $this->assertEquals(1, $xpath->query('link', $item)->length); - $this->assertEquals(1, $xpath->query('guid', $item)->length); - $this->assertEquals(1, $xpath->query('pubDate', $item)->length); - $this->assertEquals(1, $xpath->query('description', $item)->length); + $this->assertSame(1, $xpath->query('title', $item)->length); + $this->assertSame(1, $xpath->query('source', $item)->length); + $this->assertSame(1, $xpath->query('link', $item)->length); + $this->assertSame(1, $xpath->query('guid', $item)->length); + $this->assertSame(1, $xpath->query('pubDate', $item)->length); + $this->assertSame(1, $xpath->query('description', $item)->length); } } @@ -73,7 +73,7 @@ class RssControllerTest extends WallabagCoreTestCase $client->request('GET', $url); - $this->assertEquals(404, $client->getResponse()->getStatusCode()); + $this->assertSame(404, $client->getResponse()->getStatusCode()); } public function testUnread() @@ -92,9 +92,9 @@ class RssControllerTest extends WallabagCoreTestCase $client->request('GET', '/admin/SUPERTOKEN/unread.xml'); - $this->assertEquals(200, $client->getResponse()->getStatusCode()); + $this->assertSame(200, $client->getResponse()->getStatusCode()); - $this->validateDom($client->getResponse()->getContent(), 'unread', 2); + $this->validateDom($client->getResponse()->getContent(), 'unread', 'unread', 2); } public function testStarred() @@ -114,9 +114,9 @@ class RssControllerTest extends WallabagCoreTestCase $client = $this->getClient(); $client->request('GET', '/admin/SUPERTOKEN/starred.xml'); - $this->assertEquals(200, $client->getResponse()->getStatusCode(), 1); + $this->assertSame(200, $client->getResponse()->getStatusCode(), 1); - $this->validateDom($client->getResponse()->getContent(), 'starred'); + $this->validateDom($client->getResponse()->getContent(), 'starred', 'starred'); } public function testArchives() @@ -136,9 +136,9 @@ class RssControllerTest extends WallabagCoreTestCase $client = $this->getClient(); $client->request('GET', '/admin/SUPERTOKEN/archive.xml'); - $this->assertEquals(200, $client->getResponse()->getStatusCode()); + $this->assertSame(200, $client->getResponse()->getStatusCode()); - $this->validateDom($client->getResponse()->getContent(), 'archive'); + $this->validateDom($client->getResponse()->getContent(), 'archive', 'archive'); } public function testPagination() @@ -158,14 +158,39 @@ class RssControllerTest extends WallabagCoreTestCase $client = $this->getClient(); $client->request('GET', '/admin/SUPERTOKEN/unread.xml'); - $this->assertEquals(200, $client->getResponse()->getStatusCode()); - $this->validateDom($client->getResponse()->getContent(), 'unread'); + $this->assertSame(200, $client->getResponse()->getStatusCode()); + $this->validateDom($client->getResponse()->getContent(), 'unread', 'unread'); $client->request('GET', '/admin/SUPERTOKEN/unread.xml?page=2'); - $this->assertEquals(200, $client->getResponse()->getStatusCode()); - $this->validateDom($client->getResponse()->getContent(), 'unread'); + $this->assertSame(200, $client->getResponse()->getStatusCode()); + $this->validateDom($client->getResponse()->getContent(), 'unread', 'unread'); $client->request('GET', '/admin/SUPERTOKEN/unread.xml?page=3000'); - $this->assertEquals(302, $client->getResponse()->getStatusCode()); + $this->assertSame(302, $client->getResponse()->getStatusCode()); + } + + public function testTags() + { + $client = $this->getClient(); + $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + $user = $em + ->getRepository('WallabagUserBundle:User') + ->findOneByUsername('admin'); + + $config = $user->getConfig(); + $config->setRssToken('SUPERTOKEN'); + $config->setRssLimit(null); + $em->persist($config); + $em->flush(); + + $client = $this->getClient(); + $client->request('GET', '/admin/SUPERTOKEN/tags/foo-bar.xml'); + + $this->assertSame(200, $client->getResponse()->getStatusCode()); + + $this->validateDom($client->getResponse()->getContent(), 'tag (foo bar)', 'tags/foo-bar'); + + $client->request('GET', '/admin/SUPERTOKEN/tags/foo-bar.xml?page=3000'); + $this->assertSame(302, $client->getResponse()->getStatusCode()); } }