diff options
Diffstat (limited to 'src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php')
-rw-r--r-- | src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php | 126 |
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 | } |