forked from wallabag/wallabag
remove old implementation for login/register/recover
This commit is contained in:
committed by
Jeremy Benoist
parent
772d8c4b93
commit
1210dae105
@ -354,7 +354,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
|
||||
|
||||
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$user = $em
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->getRepository('WallabagUserBundle:User')
|
||||
->findOneByUsername('wallace');
|
||||
|
||||
$this->assertTrue(false !== $user);
|
||||
@ -369,7 +369,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
|
||||
// reset the token
|
||||
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$user = $em
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->getRepository('WallabagUserBundle:User')
|
||||
->findOneByUsername('admin');
|
||||
|
||||
if (!$user) {
|
||||
|
||||
@ -64,7 +64,7 @@ class RssControllerTest extends WallabagCoreTestCase
|
||||
$client = $this->getClient();
|
||||
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$user = $em
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->getRepository('WallabagUserBundle:User')
|
||||
->findOneByUsername('admin');
|
||||
|
||||
$config = $user->getConfig();
|
||||
@ -85,7 +85,7 @@ class RssControllerTest extends WallabagCoreTestCase
|
||||
$client = $this->getClient();
|
||||
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$user = $em
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->getRepository('WallabagUserBundle:User')
|
||||
->findOneByUsername('admin');
|
||||
|
||||
$config = $user->getConfig();
|
||||
@ -107,7 +107,7 @@ class RssControllerTest extends WallabagCoreTestCase
|
||||
$client = $this->getClient();
|
||||
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$user = $em
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->getRepository('WallabagUserBundle:User')
|
||||
->findOneByUsername('admin');
|
||||
|
||||
$config = $user->getConfig();
|
||||
|
||||
@ -1,319 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Tests\Controller;
|
||||
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Wallabag\CoreBundle\Tests\WallabagCoreTestCase;
|
||||
|
||||
class SecurityControllerTest extends WallabagCoreTestCase
|
||||
{
|
||||
public function testRegister()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$crawler = $client->request('GET', '/register/');
|
||||
|
||||
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||
$this->assertContains('Register', $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
public function dataForCreateAccountFailed()
|
||||
{
|
||||
return array(
|
||||
array(
|
||||
array(
|
||||
'fos_user_registration_form[email]' => '',
|
||||
'fos_user_registration_form[username]' => 'newuser',
|
||||
'fos_user_registration_form[plainPassword][first]' => 'mypassword',
|
||||
'fos_user_registration_form[plainPassword][second]' => 'mypassword',
|
||||
),
|
||||
'Please enter an email',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'fos_user_registration_form[email]' => 'newuser@wallabag.org',
|
||||
'fos_user_registration_form[username]' => 'admin',
|
||||
'fos_user_registration_form[plainPassword][first]' => 'mypassword',
|
||||
'fos_user_registration_form[plainPassword][second]' => 'mypassword',
|
||||
),
|
||||
'The username is already used',
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'fos_user_registration_form[email]' => 'newuser@wallabag.org',
|
||||
'fos_user_registration_form[username]' => 'newuser',
|
||||
'fos_user_registration_form[plainPassword][first]' => 'mypassword1',
|
||||
'fos_user_registration_form[plainPassword][second]' => 'mypassword2',
|
||||
),
|
||||
'The entered passwords don't match',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataForCreateAccountFailed
|
||||
*/
|
||||
public function testCreateAccountFailed($data, $expectedMessage)
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$crawler = $client->request('GET', '/register/');
|
||||
|
||||
$form = $crawler->filter('input[type=submit]')->form();
|
||||
|
||||
$client->submit($form, $data);
|
||||
|
||||
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||
$this->assertContains($expectedMessage, $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
public function dataForCreateAccountSuccess()
|
||||
{
|
||||
return array(
|
||||
array(
|
||||
array(
|
||||
'fos_user_registration_form[email]' => 'newuser@wallabag.org',
|
||||
'fos_user_registration_form[username]' => 'newuser',
|
||||
'fos_user_registration_form[plainPassword][first]' => 'mypassword',
|
||||
'fos_user_registration_form[plainPassword][second]' => 'mypassword',
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataForCreateAccountSuccess
|
||||
*/
|
||||
public function testCreateAccountSuccess($data)
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$crawler = $client->request('GET', '/register/');
|
||||
|
||||
$form = $crawler->filter('input[type=submit]')->form();
|
||||
|
||||
$client->submit($form, $data);
|
||||
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
||||
|
||||
$crawler = $client->followRedirect();
|
||||
|
||||
$this->assertContains('The user has been created successfully', $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
public function testRegistrationConfirmation()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
$client->followRedirects();
|
||||
|
||||
$user = $client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->findOneByUsername('newuser');
|
||||
|
||||
$this->assertNull($user->getConfig());
|
||||
|
||||
$client->request('GET', '/register/confirm/b4dT0k3n');
|
||||
$this->assertEquals(404, $client->getResponse()->getStatusCode());
|
||||
|
||||
$crawler = $client->request('GET', '/register/confirm/'.$user->getConfirmationToken());
|
||||
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||
|
||||
$user = $client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->findOneByUsername('newuser');
|
||||
$this->assertNotNull($user->getConfig());
|
||||
}
|
||||
|
||||
public function testLogin()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$crawler = $client->request('GET', '/new');
|
||||
|
||||
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
||||
$this->assertContains('login', $client->getResponse()->headers->get('location'));
|
||||
}
|
||||
|
||||
public function testLoginFail()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$crawler = $client->request('GET', '/login');
|
||||
|
||||
$form = $crawler->filter('button[type=submit]')->form();
|
||||
$data = array(
|
||||
'_username' => 'admin',
|
||||
'_password' => 'admin',
|
||||
);
|
||||
|
||||
$client->submit($form, $data);
|
||||
|
||||
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
||||
$this->assertContains('login', $client->getResponse()->headers->get('location'));
|
||||
|
||||
$crawler = $client->followRedirect();
|
||||
|
||||
$this->assertContains('Bad credentials', $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
public function testRedirectionAfterLogin()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
$client->followRedirects();
|
||||
|
||||
$crawler = $client->request('GET', '/config');
|
||||
|
||||
$form = $crawler->filter('button[type=submit]')->form();
|
||||
|
||||
$data = array(
|
||||
'_username' => 'admin',
|
||||
'_password' => 'mypassword',
|
||||
);
|
||||
|
||||
$client->submit($form, $data);
|
||||
|
||||
$this->assertContains('RSS', $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
public function testForgotPassword()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$crawler = $client->request('GET', '/forgot-password');
|
||||
|
||||
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||
|
||||
$this->assertContains('Forgot password', $client->getResponse()->getContent());
|
||||
|
||||
$form = $crawler->filter('button[type=submit]');
|
||||
|
||||
$this->assertCount(1, $form);
|
||||
|
||||
return array(
|
||||
'form' => $form->form(),
|
||||
'client' => $client,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testForgotPassword
|
||||
*/
|
||||
public function testSubmitForgotPasswordFail($parameters)
|
||||
{
|
||||
$form = $parameters['form'];
|
||||
$client = $parameters['client'];
|
||||
|
||||
$data = array(
|
||||
'forgot_password[email]' => 'material',
|
||||
);
|
||||
|
||||
$client->submit($form, $data);
|
||||
|
||||
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||
$this->assertContains('No user found with this email', $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testForgotPassword
|
||||
*
|
||||
* Instead of using collector which slow down the test suite
|
||||
* http://symfony.com/doc/current/cookbook/email/testing.html
|
||||
*
|
||||
* Use a different way where Swift store email as file
|
||||
*/
|
||||
public function testSubmitForgotPassword($parameters)
|
||||
{
|
||||
$form = $parameters['form'];
|
||||
$client = $parameters['client'];
|
||||
|
||||
$spoolDir = $client->getKernel()->getContainer()->getParameter('swiftmailer.spool.default.file.path');
|
||||
|
||||
// cleanup pool dir
|
||||
$filesystem = new Filesystem();
|
||||
$filesystem->remove($spoolDir);
|
||||
|
||||
// to use `getCollector` since `collect: false` in config_test.yml
|
||||
$client->enableProfiler();
|
||||
|
||||
$data = array(
|
||||
'forgot_password[email]' => 'bobby@wallabag.org',
|
||||
);
|
||||
|
||||
$client->submit($form, $data);
|
||||
|
||||
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
||||
|
||||
$crawler = $client->followRedirect();
|
||||
|
||||
$this->assertContains('An email has been sent to', $client->getResponse()->getContent());
|
||||
|
||||
// find every files (ie: emails) inside the spool dir except hidden files
|
||||
$finder = new Finder();
|
||||
$finder
|
||||
->in($spoolDir)
|
||||
->ignoreDotFiles(true)
|
||||
->files();
|
||||
|
||||
$this->assertCount(1, $finder, 'Only one email has been sent');
|
||||
|
||||
foreach ($finder as $file) {
|
||||
$message = unserialize(file_get_contents($file));
|
||||
|
||||
$this->assertInstanceOf('Swift_Message', $message);
|
||||
$this->assertEquals('Reset Password', $message->getSubject());
|
||||
$this->assertEquals('no-reply@wallabag.org', key($message->getFrom()));
|
||||
$this->assertEquals('bobby@wallabag.org', key($message->getTo()));
|
||||
$this->assertContains(
|
||||
'To reset your password - please visit',
|
||||
$message->getBody()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function testReset()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
$user = $client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:User')
|
||||
->findOneByEmail('bobby@wallabag.org');
|
||||
|
||||
$crawler = $client->request('GET', '/forgot-password/'.$user->getConfirmationToken());
|
||||
|
||||
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
||||
$this->assertCount(2, $crawler->filter('input[type=password]'));
|
||||
$this->assertCount(1, $form = $crawler->filter('button[type=submit]'));
|
||||
$this->assertCount(1, $form);
|
||||
|
||||
$data = array(
|
||||
'change_passwd[new_password][first]' => 'mypassword',
|
||||
'change_passwd[new_password][second]' => 'mypassword',
|
||||
);
|
||||
|
||||
$client->submit($form->form(), $data);
|
||||
|
||||
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
||||
$this->assertContains('login', $client->getResponse()->headers->get('location'));
|
||||
}
|
||||
|
||||
public function testResetBadToken()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$client->request('GET', '/forgot-password/UIZOAU29UE902IEPZO');
|
||||
|
||||
$this->assertEquals(404, $client->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testCheckEmailWithoutEmail()
|
||||
{
|
||||
$client = $this->getClient();
|
||||
|
||||
$client->request('GET', '/forgot-password/check-email');
|
||||
|
||||
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
||||
$this->assertContains('forgot-password', $client->getResponse()->headers->get('location'));
|
||||
}
|
||||
}
|
||||
@ -4,7 +4,7 @@ namespace Wallabag\CoreBundle\Tests\Helper;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
use Wallabag\CoreBundle\Entity\Entry;
|
||||
use Wallabag\CoreBundle\Entity\User;
|
||||
use Wallabag\UserBundle\Entity\User;
|
||||
use Wallabag\CoreBundle\Helper\ContentProxy;
|
||||
|
||||
class ContentProxyTest extends KernelTestCase
|
||||
|
||||
@ -6,7 +6,7 @@ use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
use Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Wallabag\CoreBundle\Entity\User;
|
||||
use Wallabag\UserBundle\Entity\User;
|
||||
|
||||
class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
{
|
||||
@ -96,7 +96,7 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
|
||||
$meta->expects($this->once())
|
||||
->method('getName')
|
||||
->will($this->returnValue('Wallabag\CoreBundle\Entity\User'));
|
||||
->will($this->returnValue('Wallabag\UserBundle\Entity\User'));
|
||||
|
||||
$em = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager')
|
||||
->disableOriginalConstructor()
|
||||
@ -104,7 +104,7 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
|
||||
$em->expects($this->once())
|
||||
->method('getClassMetadata')
|
||||
->with('WallabagCoreBundle:User')
|
||||
->with('WallabagUserBundle:User')
|
||||
->will($this->returnValue($meta));
|
||||
|
||||
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
||||
@ -117,10 +117,10 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
|
||||
$registry->expects($this->once())
|
||||
->method('getManagerForClass')
|
||||
->with('WallabagCoreBundle:User')
|
||||
->with('WallabagUserBundle:User')
|
||||
->will($this->returnValue($em));
|
||||
|
||||
$params = new ParamConverter(array('class' => 'WallabagCoreBundle:User'));
|
||||
$params = new ParamConverter(array('class' => 'WallabagUserBundle:User'));
|
||||
$converter = new UsernameRssTokenConverter($registry);
|
||||
|
||||
$this->assertTrue($converter->supports($params));
|
||||
@ -144,7 +144,7 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
*/
|
||||
public function testApplyUserNotFound()
|
||||
{
|
||||
$repo = $this->getMockBuilder('Wallabag\CoreBundle\Repository\UserRepository')
|
||||
$repo = $this->getMockBuilder('Wallabag\UserBundle\Repository\UserRepository')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
@ -159,7 +159,7 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
|
||||
$em->expects($this->once())
|
||||
->method('getRepository')
|
||||
->with('WallabagCoreBundle:User')
|
||||
->with('WallabagUserBundle:User')
|
||||
->will($this->returnValue($repo));
|
||||
|
||||
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
||||
@ -168,10 +168,10 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
|
||||
$registry->expects($this->once())
|
||||
->method('getManagerForClass')
|
||||
->with('WallabagCoreBundle:User')
|
||||
->with('WallabagUserBundle:User')
|
||||
->will($this->returnValue($em));
|
||||
|
||||
$params = new ParamConverter(array('class' => 'WallabagCoreBundle:User'));
|
||||
$params = new ParamConverter(array('class' => 'WallabagUserBundle:User'));
|
||||
$converter = new UsernameRssTokenConverter($registry);
|
||||
$request = new Request(array(), array(), array('username' => 'test', 'token' => 'test'));
|
||||
|
||||
@ -182,7 +182,7 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
{
|
||||
$user = new User();
|
||||
|
||||
$repo = $this->getMockBuilder('Wallabag\CoreBundle\Repository\UserRepository')
|
||||
$repo = $this->getMockBuilder('Wallabag\UserBundle\Repository\UserRepository')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
@ -197,7 +197,7 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
|
||||
$em->expects($this->once())
|
||||
->method('getRepository')
|
||||
->with('WallabagCoreBundle:User')
|
||||
->with('WallabagUserBundle:User')
|
||||
->will($this->returnValue($repo));
|
||||
|
||||
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
||||
@ -206,10 +206,10 @@ class UsernameRssTokenConverterTest extends KernelTestCase
|
||||
|
||||
$registry->expects($this->once())
|
||||
->method('getManagerForClass')
|
||||
->with('WallabagCoreBundle:User')
|
||||
->with('WallabagUserBundle:User')
|
||||
->will($this->returnValue($em));
|
||||
|
||||
$params = new ParamConverter(array('class' => 'WallabagCoreBundle:User', 'name' => 'user'));
|
||||
$params = new ParamConverter(array('class' => 'WallabagUserBundle:User', 'name' => 'user'));
|
||||
$converter = new UsernameRssTokenConverter($registry);
|
||||
$request = new Request(array(), array(), array('username' => 'test', 'token' => 'test'));
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ abstract class WallabagCoreTestCase extends WebTestCase
|
||||
public function logInAs($username)
|
||||
{
|
||||
$crawler = $this->client->request('GET', '/login');
|
||||
$form = $crawler->filter('button[type=submit]')->form();
|
||||
$form = $crawler->filter('input[type=submit]')->form();
|
||||
$data = array(
|
||||
'_username' => $username,
|
||||
'_password' => 'mypassword',
|
||||
|
||||
Reference in New Issue
Block a user