From 9c0c88200635a979b9abdcba922e1d3904790636 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Sat, 7 Feb 2015 18:30:46 +0100 Subject: Add some tests on EntryController Also, create database schema on test initialisation --- .../Tests/Controller/EntryControllerTest.php | 79 +++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Tests') 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()); } } -- cgit v1.2.3