From 4d85d7e9ba676bd5ac3428976ce9227f460eb542 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Mon, 16 Feb 2015 21:28:49 +0100 Subject: Implement simple config --- .../Tests/Controller/ConfigControllerTest.php | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php (limited to 'src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php') diff --git a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php new file mode 100644 index 00000000..30809a04 --- /dev/null +++ b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php @@ -0,0 +1,96 @@ +getClient(); + + $client->request('GET', '/new'); + + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + $this->assertContains('login', $client->getResponse()->headers->get('location')); + } + + public function testIndex() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/config'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $this->assertCount(1, $crawler->filter('input[type=number]')); + $this->assertCount(1, $crawler->filter('button[type=submit]')); + } + + public function testUpdate() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/config'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[type=submit]')->form(); + + $data = array( + 'config[theme]' => 'baggy', + 'config[items_per_page]' => '30', + 'config[language]' => 'fr_FR', + ); + + $client->submit($form, $data); + + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + + $crawler = $client->followRedirect(); + + $this->assertGreaterThan(1, $alert = $crawler->filter('div.flash-notice')->extract(array('_text'))); + $this->assertContains('Config saved', $alert[0]); + } + + public function dataForUpdateFailed() + { + return array( + array(array( + 'config[theme]' => 'baggy', + 'config[items_per_page]' => '', + 'config[language]' => 'fr_FR', + )), + array(array( + 'config[theme]' => 'baggy', + 'config[items_per_page]' => '12', + 'config[language]' => '', + )), + ); + } + + /** + * @dataProvider dataForUpdateFailed + */ + public function testUpdateFailed($data) + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/config'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[type=submit]')->form(); + + $crawler = $client->submit($form, $data); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(array('_text'))); + $this->assertContains('This value should not be blank', $alert[0]); + } +} -- cgit v1.2.3