From c0d9eba07f40a52bdfcfca3e7a926163b17d83ab Mon Sep 17 00:00:00 2001 From: Jeremy Date: Tue, 17 Feb 2015 22:45:20 +0100 Subject: Updating logged in user (email, name, etc ..) --- .../Tests/Controller/ConfigControllerTest.php | 89 ++++++++++++++++++++-- 1 file changed, 84 insertions(+), 5 deletions(-) (limited to 'src/Wallabag/CoreBundle/Tests') diff --git a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php index 4aceed15..519b4ba2 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php @@ -25,9 +25,9 @@ class ConfigControllerTest extends WallabagTestCase $this->assertEquals(200, $client->getResponse()->getStatusCode()); - $this->assertCount(1, $crawler->filter('input[type=number]')); $this->assertCount(1, $crawler->filter('button[id=config_save]')); $this->assertCount(1, $crawler->filter('button[id=change_passwd_save]')); + $this->assertCount(1, $crawler->filter('button[id=user_save]')); } public function testUpdate() @@ -104,7 +104,7 @@ class ConfigControllerTest extends WallabagTestCase 'change_passwd[new_password][first]' => '', 'change_passwd[new_password][second]' => '', ), - 'Wrong value for your current password' + 'Wrong value for your current password', ), array( array( @@ -112,7 +112,7 @@ class ConfigControllerTest extends WallabagTestCase 'change_passwd[new_password][first]' => '', 'change_passwd[new_password][second]' => '', ), - 'This value should not be blank' + 'This value should not be blank', ), array( array( @@ -120,7 +120,7 @@ class ConfigControllerTest extends WallabagTestCase 'change_passwd[new_password][first]' => 'hop', 'change_passwd[new_password][second]' => '', ), - 'The password fields must match' + 'The password fields must match', ), array( array( @@ -128,7 +128,7 @@ class ConfigControllerTest extends WallabagTestCase 'change_passwd[new_password][first]' => 'hop', 'change_passwd[new_password][second]' => 'hop', ), - 'Password should by at least 6 chars long' + 'Password should by at least 6 chars long', ), ); } @@ -181,4 +181,83 @@ class ConfigControllerTest extends WallabagTestCase $this->assertGreaterThan(1, $alert = $crawler->filter('div.flash-notice')->extract(array('_text'))); $this->assertContains('Password updated', $alert[0]); } + + public function dataForUserFailed() + { + return array( + array( + array( + 'user[username]' => '', + 'user[name]' => '', + 'user[email]' => '', + ), + 'This value should not be blank.', + ), + array( + array( + 'user[username]' => 'ad', + 'user[name]' => '', + 'user[email]' => '', + ), + 'This value is too short.', + ), + array( + array( + 'user[username]' => 'admin', + 'user[name]' => '', + 'user[email]' => 'test', + ), + 'This value is not a valid email address.', + ), + ); + } + + /** + * @dataProvider dataForUserFailed + */ + public function testUserFailed($data, $expectedMessage) + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/config'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[id=user_save]')->form(); + + $crawler = $client->submit($form, $data); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(array('_text'))); + $this->assertContains($expectedMessage, $alert[0]); + } + + public function testUserUpdate() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/config'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[id=user_save]')->form(); + + $data = array( + 'user[username]' => 'admin', + 'user[name]' => 'new name', + 'user[email]' => 'admin@wallabag.io', + ); + + $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('Information updated', $alert[0]); + } } -- cgit v1.2.3