From b6c00b0b807108cd54ab32fa73f9c196f4f12d97 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Mon, 22 Feb 2016 13:33:22 +0100 Subject: Add tests --- .../CoreBundle/Controller/ConfigController.php | 14 ++++------ .../Tests/Controller/ConfigControllerTest.php | 30 ++++++++++++++++++++++ 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php index 87196b0e..1791eac2 100644 --- a/src/Wallabag/CoreBundle/Controller/ConfigController.php +++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php @@ -58,20 +58,16 @@ class ConfigController extends Controller if ($pwdForm->isValid()) { if ($this->get('craue_config')->get('demo_mode_enabled') && $this->get('craue_config')->get('demo_mode_username') === $user->getUsername()) { - $this->get('session')->getFlashBag()->add( - 'notice', - 'In demonstration mode, you can\'t change password for this user.' - ); + $message = 'In demonstration mode, you can\'t change password for this user.'; } else { + $message = 'Password updated'; + $user->setPlainPassword($pwdForm->get('new_password')->getData()); $userManager->updateUser($user, true); - - $this->get('session')->getFlashBag()->add( - 'notice', - 'Password updated' - ); } + $this->get('session')->getFlashBag()->add('notice', $message); + return $this->redirect($this->generateUrl('config').'#set4'); } diff --git a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php index 6c370a2d..2af93ffe 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php @@ -577,4 +577,34 @@ class ConfigControllerTest extends WallabagCoreTestCase $this->assertEquals(403, $client->getResponse()->getStatusCode()); $this->assertContains('You can not access this tagging ryle', $client->getResponse()->getContent()); } + + public function testDemoMode() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $config = $client->getContainer()->get('craue_config'); + $config->set('demo_mode_enabled', 1); + $config->set('demo_mode_username', 'admin'); + + $crawler = $client->request('GET', '/config'); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $form = $crawler->filter('button[id=change_passwd_save]')->form(); + + $data = array( + 'change_passwd[old_password]' => 'mypassword', + 'change_passwd[new_password][first]' => 'mypassword', + 'change_passwd[new_password][second]' => 'mypassword', + ); + + $client->submit($form, $data); + + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + $this->assertContains('In demonstration mode, you can\'t change password for this user.', $client->getContainer()->get('session')->getFlashBag()->get('notice')[0]); + + $config->set('demo_mode_enabled', 0); + $config->set('demo_mode_username', 'wallabag'); + } } -- cgit v1.2.3