X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FTests%2FController%2FConfigControllerTest.php;h=884e740eed790ec21ae2a3367678d65f32d7e956;hb=4f9cf232f8d4d750d39aca83406b8a6d5e17a6c9;hp=89ca31e2942b3f2288fe5f703d016174953ba9db;hpb=23ff8d36199c0cddb5bae4a5010cb71f861eeef8;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php index 89ca31e2..884e740e 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php @@ -46,6 +46,7 @@ class ConfigControllerTest extends WallabagCoreTestCase $data = array( 'config[theme]' => 'baggy', 'config[items_per_page]' => '30', + 'config[reading_speed]' => '0.5', 'config[language]' => 'en', ); @@ -101,7 +102,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'change_passwd[new_password][first]' => '', 'change_passwd[new_password][second]' => '', ), - 'Wrong value for your current password', + 'validator.password_wrong_value', ), array( array( @@ -117,7 +118,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'change_passwd[new_password][first]' => 'hop', 'change_passwd[new_password][second]' => '', ), - 'The password fields must match', + 'validator.password_must_match', ), array( array( @@ -125,7 +126,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'change_passwd[new_password][first]' => 'hop', 'change_passwd[new_password][second]' => 'hop', ), - 'Password should by at least', + 'validator.password_too_short', ), ); } @@ -187,14 +188,14 @@ class ConfigControllerTest extends WallabagCoreTestCase 'update_user[name]' => '', 'update_user[email]' => '', ), - 'Please enter an email', + 'fos_user.email.blank', ), array( array( 'update_user[name]' => '', 'update_user[email]' => 'test', ), - 'The email is not valid', + 'fos_user.email.invalid', ), ); } @@ -243,7 +244,7 @@ class ConfigControllerTest extends WallabagCoreTestCase $crawler = $client->followRedirect(); - $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); + $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(array('_text'))); $this->assertContains('Information updated', $alert[0]); } @@ -257,7 +258,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'new_user[plainPassword][second]' => '', 'new_user[email]' => '', ), - 'Please enter a username', + 'fos_user.username.blank', ), array( array( @@ -266,7 +267,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'new_user[plainPassword][second]' => 'mypassword', 'new_user[email]' => '', ), - 'The username is too short', + 'fos_user.username.short', ), array( array( @@ -275,7 +276,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'new_user[plainPassword][second]' => 'mypassword', 'new_user[email]' => 'test', ), - 'The email is not valid', + 'fos_user.email.invalid', ), array( array( @@ -284,7 +285,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'new_user[plainPassword][second]' => 'wallacewallace', 'new_user[email]' => 'wallace@wallace.me', ), - 'The username is already used', + 'fos_user.username.already_used', ), array( array( @@ -293,7 +294,7 @@ class ConfigControllerTest extends WallabagCoreTestCase 'new_user[plainPassword][second]' => 'mypassword2', 'new_user[email]' => 'wallace@wallace.me', ), - 'This value is not valid', + 'validator.password_must_match', ), ); } @@ -381,7 +382,7 @@ class ConfigControllerTest extends WallabagCoreTestCase $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); - $this->assertContains('You need to generate a token first.', $body[0]); + $this->assertContains('config.form_rss.no_token', $body[0]); $client->request('GET', '/generate-token'); $this->assertEquals(302, $client->getResponse()->getStatusCode()); @@ -389,7 +390,7 @@ class ConfigControllerTest extends WallabagCoreTestCase $crawler = $client->followRedirect(); $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); - $this->assertNotContains('You need to generate a token first.', $body[0]); + $this->assertNotContains('config.form_rss.no_token', $body[0]); } public function testGenerateTokenAjax() @@ -417,11 +418,6 @@ class ConfigControllerTest extends WallabagCoreTestCase $crawler = $client->request('GET', '/config'); - if (500 == $client->getResponse()->getStatusCode()) { - var_export($client->getResponse()->getContent()); - die(); - } - $this->assertEquals(200, $client->getResponse()->getStatusCode()); $form = $crawler->filter('button[id=rss_config_save]')->form(); @@ -453,7 +449,7 @@ class ConfigControllerTest extends WallabagCoreTestCase array( 'rss_config[rss_limit]' => 1000000000000, ), - 'This will certainly kill the app', + 'validator.rss_limit_too_hight', ), ); } @@ -520,18 +516,95 @@ class ConfigControllerTest extends WallabagCoreTestCase return array( array( array( - 'rss_config[rule]' => 'unknownVar <= 3', - 'rss_config[tags]' => 'cool tag', + 'tagging_rule[rule]' => 'unknownVar <= 3', + 'tagging_rule[tags]' => 'cool tag', + ), + array( + 'The variable', + 'does not exist.', ), - 'The variable « unknownVar » does not exist.', ), array( array( - 'rss_config[rule]' => 'length(domainName) <= 42', - 'rss_config[tags]' => 'cool tag', + 'tagging_rule[rule]' => 'length(domainName) <= 42', + 'tagging_rule[tags]' => 'cool tag', + ), + array( + 'The operator', + 'does not exist.', ), - 'The operator « length » does not exist.', ), ); } + + /** + * @dataProvider dataForTaggingRuleFailed + */ + public function testTaggingRuleCreationFail($data, $messages) + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/config'); + + $this->assertTrue($client->getResponse()->isSuccessful()); + + $form = $crawler->filter('button[id=tagging_rule_save]')->form(); + + $crawler = $client->submit($form, $data); + + $this->assertEquals(200, $client->getResponse()->getStatusCode()); + + $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); + + foreach ($messages as $message) { + $this->assertContains($message, $body[0]); + } + } + + public function testDeletingTaggingRuleFromAnOtherUser() + { + $this->logInAs('bob'); + $client = $this->getClient(); + + $rule = $client->getContainer()->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:TaggingRule') + ->findAll()[0]; + + $crawler = $client->request('GET', '/tagging-rule/delete/'.$rule->getId()); + + $this->assertEquals(403, $client->getResponse()->getStatusCode()); + $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); + $this->assertContains('You can not access this tagging rule', $body[0]); + } + + 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'); + } }