From 9c0c88200635a979b9abdcba922e1d3904790636 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Sat, 7 Feb 2015 18:30:46 +0100 Subject: [PATCH] Add some tests on EntryController Also, create database schema on test initialisation --- app/build.xml | 5 ++ app/phpunit.xml.dist | 5 +- .../Tests/Controller/EntryControllerTest.php | 79 ++++++++++++++++++- 3 files changed, 86 insertions(+), 3 deletions(-) diff --git a/app/build.xml b/app/build.xml index 700a31b5..6427867c 100644 --- a/app/build.xml +++ b/app/build.xml @@ -24,6 +24,11 @@ + + + + + diff --git a/app/phpunit.xml.dist b/app/phpunit.xml.dist index 6593a2f0..b8f38ff8 100644 --- a/app/phpunit.xml.dist +++ b/app/phpunit.xml.dist @@ -23,8 +23,9 @@ ../src ../vendor - ../src/Acme - ../src/AppBundle + ../src/Wallabag/CoreBundle/Resources + ../src/Wallabag/CoreBundle/Tests + ../src/Wallabag/CoreBundle/DataFixtures diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php index 786ff811..fde210c9 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php @@ -6,12 +6,89 @@ use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class EntryControllerTest extends WebTestCase { - public function testIndex() + public function testGetNew() { $client = static::createClient(); $crawler = $client->request('GET', '/new'); $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $this->assertCount(1, $crawler->filter('input[type=url]')); + $this->assertCount(1, $crawler->filter('button[type=submit]')); + } + + public function testPostNewEmpty() + { + $client = static::createClient(); + + $crawler = $client->request('GET', '/new'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[type=submit]')->form(); + + $crawler = $client->submit($form); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + $this->assertCount(1, $alert = $crawler->filter('form ul li')->extract(array('_text'))); + $this->assertEquals('This value should not be blank.', $alert[0]); + } + + public function testPostNewOk() + { + $client = static::createClient(); + + $crawler = $client->request('GET', '/new'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[type=submit]')->form(); + + $data = array( + 'form[url]' => 'https://www.mailjet.com/blog/mailjet-zapier-integrations-made-easy/', + ); + + $client->submit($form, $data); + + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + + $crawler = $client->followRedirect(); + + $this->assertCount(1, $alert = $crawler->filter('h2 a')->extract(array('_text'))); + $this->assertContains('Mailjet', $alert[0]); + } + + public function testArchive() + { + $client = static::createClient(); + + $crawler = $client->request('GET', '/archive'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + } + + public function testStarred() + { + $client = static::createClient(); + + $crawler = $client->request('GET', '/starred'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + } + + public function testView() + { + $client = static::createClient(); + + $content = $client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneByIsArchived(false); + + $crawler = $client->request('GET', '/view/'.$content->getId()); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + $this->assertContains($content->getTitle(), $client->getResponse()->getContent()); } } -- 2.41.0