aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php
diff options
context:
space:
mode:
authorJeremy <jeremy.benoist@gmail.com>2015-03-28 21:43:49 +0100
committerJeremy <jeremy.benoist@gmail.com>2015-03-31 22:48:00 +0200
commit371ac69a6bd6325929e4efee7958682a6b1666f7 (patch)
tree781e6aa505f3c163e8385a662e1befc2f38885a3 /src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php
parent2385f891e5992e84501d4cd47565a7bf0af14331 (diff)
downloadwallabag-371ac69a6bd6325929e4efee7958682a6b1666f7.tar.gz
wallabag-371ac69a6bd6325929e4efee7958682a6b1666f7.tar.zst
wallabag-371ac69a6bd6325929e4efee7958682a6b1666f7.zip
Add tests
and fix few mistakes
Diffstat (limited to 'src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php')
-rw-r--r--src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php
index d7d341aa..11c86423 100644
--- a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php
+++ b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php
@@ -28,6 +28,8 @@ class ConfigControllerTest extends WallabagTestCase
28 $this->assertCount(1, $crawler->filter('button[id=config_save]')); 28 $this->assertCount(1, $crawler->filter('button[id=config_save]'));
29 $this->assertCount(1, $crawler->filter('button[id=change_passwd_save]')); 29 $this->assertCount(1, $crawler->filter('button[id=change_passwd_save]'));
30 $this->assertCount(1, $crawler->filter('button[id=user_save]')); 30 $this->assertCount(1, $crawler->filter('button[id=user_save]'));
31 $this->assertCount(1, $crawler->filter('button[id=new_user_save]'));
32 $this->assertCount(1, $crawler->filter('button[id=rss_config_save]'));
31 } 33 }
32 34
33 public function testUpdate() 35 public function testUpdate()
@@ -347,4 +349,128 @@ class ConfigControllerTest extends WallabagTestCase
347 $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); 349 $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
348 $this->assertContains('User "wallace" added', $alert[0]); 350 $this->assertContains('User "wallace" added', $alert[0]);
349 } 351 }
352
353 public function testRssUpdateResetToken()
354 {
355 $this->logInAs('admin');
356 $client = $this->getClient();
357
358 // reset the token
359 $em = $client->getContainer()->get('doctrine.orm.entity_manager');
360 $user = $em
361 ->getRepository('WallabagCoreBundle:User')
362 ->findOneByUsername('admin');
363
364 if (!$user) {
365 $this->markTestSkipped('No user found in db.');
366 }
367
368 $config = $user->getConfig();
369 $config->setRssToken(null);
370 $em->persist($config);
371 $em->flush();
372
373 $crawler = $client->request('GET', '/config');
374
375 $this->assertEquals(200, $client->getResponse()->getStatusCode());
376
377 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
378 $this->assertContains('You need to generate a token first.', $body[0]);
379
380 $client->request('GET', '/generate-token');
381 $this->assertEquals(302, $client->getResponse()->getStatusCode());
382
383 $crawler = $client->followRedirect();
384
385 $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
386 $this->assertNotContains('You need to generate a token first.', $body[0]);
387 }
388
389 public function testGenerateTokenAjax()
390 {
391 $this->logInAs('admin');
392 $client = $this->getClient();
393
394 $client->request(
395 'GET',
396 '/generate-token',
397 array(),
398 array(),
399 array('HTTP_X-Requested-With' => 'XMLHttpRequest')
400 );
401
402 $this->assertEquals(200, $client->getResponse()->getStatusCode());
403 $content = json_decode($client->getResponse()->getContent(), true);;
404 $this->assertArrayHasKey('token', $content);
405 }
406
407 public function testRssUpdate()
408 {
409 $this->logInAs('admin');
410 $client = $this->getClient();
411
412 $crawler = $client->request('GET', '/config');
413
414 if (500 == $client->getResponse()->getStatusCode()) {
415 var_export($client->getResponse()->getContent());
416 die();
417 }
418
419 $this->assertEquals(200, $client->getResponse()->getStatusCode());
420
421 $form = $crawler->filter('button[id=rss_config_save]')->form();
422
423 $data = array(
424 'rss_config[rss_limit]' => 12,
425 );
426
427 $client->submit($form, $data);
428
429 $this->assertEquals(302, $client->getResponse()->getStatusCode());
430
431 $crawler = $client->followRedirect();
432
433 $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
434 $this->assertContains('RSS information updated', $alert[0]);
435 }
436
437 public function dataForRssFailed()
438 {
439 return array(
440 array(
441 array(
442 'rss_config[rss_limit]' => 0,
443 ),
444 'This value should be 1 or more.',
445 ),
446 array(
447 array(
448 'rss_config[rss_limit]' => 1000000000000,
449 ),
450 'This will certainly kill the app',
451 ),
452 );
453 }
454
455 /**
456 * @dataProvider dataForRssFailed
457 */
458 public function testRssFailed($data, $expectedMessage)
459 {
460 $this->logInAs('admin');
461 $client = $this->getClient();
462
463 $crawler = $client->request('GET', '/config');
464
465 $this->assertEquals(200, $client->getResponse()->getStatusCode());
466
467 $form = $crawler->filter('button[id=rss_config_save]')->form();
468
469 $crawler = $client->submit($form, $data);
470
471 $this->assertEquals(200, $client->getResponse()->getStatusCode());
472
473 $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(array('_text')));
474 $this->assertContains($expectedMessage, $alert[0]);
475 }
350} 476}