diff options
Diffstat (limited to 'tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php')
-rw-r--r-- | tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php b/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php index c9dbbaa3..9ca52c64 100644 --- a/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/ConfigControllerTest.php | |||
@@ -297,6 +297,119 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
297 | $this->assertContains('flashes.config.notice.user_updated', $alert[0]); | 297 | $this->assertContains('flashes.config.notice.user_updated', $alert[0]); |
298 | } | 298 | } |
299 | 299 | ||
300 | public function testUserEnable2faEmail() | ||
301 | { | ||
302 | $this->logInAs('admin'); | ||
303 | $client = $this->getClient(); | ||
304 | |||
305 | $crawler = $client->request('GET', '/config'); | ||
306 | |||
307 | $this->assertSame(200, $client->getResponse()->getStatusCode()); | ||
308 | |||
309 | $form = $crawler->filter('button[id=update_user_save]')->form(); | ||
310 | |||
311 | $data = [ | ||
312 | 'update_user[emailTwoFactor]' => '1', | ||
313 | ]; | ||
314 | |||
315 | $client->submit($form, $data); | ||
316 | |||
317 | $this->assertSame(302, $client->getResponse()->getStatusCode()); | ||
318 | |||
319 | $crawler = $client->followRedirect(); | ||
320 | |||
321 | $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(['_text'])); | ||
322 | $this->assertContains('flashes.config.notice.user_updated', $alert[0]); | ||
323 | |||
324 | // restore user | ||
325 | $em = $this->getEntityManager(); | ||
326 | $user = $em | ||
327 | ->getRepository('WallabagUserBundle:User') | ||
328 | ->findOneByUsername('admin'); | ||
329 | |||
330 | $this->assertTrue($user->isEmailTwoFactor()); | ||
331 | |||
332 | $user->setEmailTwoFactor(false); | ||
333 | $em->persist($user); | ||
334 | $em->flush(); | ||
335 | } | ||
336 | |||
337 | public function testUserEnable2faGoogle() | ||
338 | { | ||
339 | $this->logInAs('admin'); | ||
340 | $client = $this->getClient(); | ||
341 | |||
342 | $crawler = $client->request('GET', '/config'); | ||
343 | |||
344 | $this->assertSame(200, $client->getResponse()->getStatusCode()); | ||
345 | |||
346 | $form = $crawler->filter('button[id=update_user_save]')->form(); | ||
347 | |||
348 | $data = [ | ||
349 | 'update_user[googleTwoFactor]' => '1', | ||
350 | ]; | ||
351 | |||
352 | $client->submit($form, $data); | ||
353 | |||
354 | $this->assertSame(302, $client->getResponse()->getStatusCode()); | ||
355 | |||
356 | $crawler = $client->followRedirect(); | ||
357 | |||
358 | $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(['_text'])); | ||
359 | $this->assertContains('flashes.config.notice.user_updated', $alert[0]); | ||
360 | |||
361 | // restore user | ||
362 | $em = $this->getEntityManager(); | ||
363 | $user = $em | ||
364 | ->getRepository('WallabagUserBundle:User') | ||
365 | ->findOneByUsername('admin'); | ||
366 | |||
367 | $this->assertTrue($user->isGoogleAuthenticatorEnabled()); | ||
368 | |||
369 | $user->setGoogleAuthenticatorSecret(null); | ||
370 | $em->persist($user); | ||
371 | $em->flush(); | ||
372 | } | ||
373 | |||
374 | public function testUserEnable2faBoth() | ||
375 | { | ||
376 | $this->logInAs('admin'); | ||
377 | $client = $this->getClient(); | ||
378 | |||
379 | $crawler = $client->request('GET', '/config'); | ||
380 | |||
381 | $this->assertSame(200, $client->getResponse()->getStatusCode()); | ||
382 | |||
383 | $form = $crawler->filter('button[id=update_user_save]')->form(); | ||
384 | |||
385 | $data = [ | ||
386 | 'update_user[googleTwoFactor]' => '1', | ||
387 | 'update_user[emailTwoFactor]' => '1', | ||
388 | ]; | ||
389 | |||
390 | $client->submit($form, $data); | ||
391 | |||
392 | $this->assertSame(302, $client->getResponse()->getStatusCode()); | ||
393 | |||
394 | $crawler = $client->followRedirect(); | ||
395 | |||
396 | $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(['_text'])); | ||
397 | $this->assertContains('flashes.config.notice.user_updated', $alert[0]); | ||
398 | |||
399 | // restore user | ||
400 | $em = $this->getEntityManager(); | ||
401 | $user = $em | ||
402 | ->getRepository('WallabagUserBundle:User') | ||
403 | ->findOneByUsername('admin'); | ||
404 | |||
405 | $this->assertTrue($user->isGoogleAuthenticatorEnabled()); | ||
406 | $this->assertFalse($user->isEmailTwoFactor()); | ||
407 | |||
408 | $user->setGoogleAuthenticatorSecret(null); | ||
409 | $em->persist($user); | ||
410 | $em->flush(); | ||
411 | } | ||
412 | |||
300 | public function testRssUpdateResetToken() | 413 | public function testRssUpdateResetToken() |
301 | { | 414 | { |
302 | $this->logInAs('admin'); | 415 | $this->logInAs('admin'); |