mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2024-12-04 23:17:19 +01:00
Implemented tests for user login
This commit is contained in:
parent
143d544dcc
commit
0b1d7dea92
@ -17,8 +17,17 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
*/
|
||||
class DummyFixtures extends Fixture implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public const USER_NAME = 'test';
|
||||
|
||||
public const USER_EMAIL = 'test@test.de';
|
||||
|
||||
public const USER_PASSWORD = 'test';
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
@ -40,9 +49,9 @@ class DummyFixtures extends Fixture implements ContainerAwareInterface
|
||||
* @var User
|
||||
*/
|
||||
$testUser = $userManager->createUser();
|
||||
$testUser->setEmail('test@test.de');
|
||||
$testUser->setUsername('test');
|
||||
$testUser->setPlainPassword('test');
|
||||
$testUser->setEmail(self::USER_EMAIL);
|
||||
$testUser->setUsername(self::USER_NAME);
|
||||
$testUser->setPlainPassword(self::USER_PASSWORD);
|
||||
$testUser->setEnabled(true);
|
||||
$userManager->updateUser($testUser);
|
||||
|
||||
|
95
application/symfony/tests/Functional/UserLoginTest.php
Normal file
95
application/symfony/tests/Functional/UserLoginTest.php
Normal file
@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Functional;
|
||||
|
||||
use Infinito\DataFixtures\DummyFixtures;
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
use Symfony\Component\DomCrawler\Crawler;
|
||||
|
||||
/**
|
||||
* Tests if test user can login.
|
||||
*
|
||||
* @author Kevin Veen-Birkenbach [aka. Frantz]
|
||||
*/
|
||||
class UserLoginTest extends WebTestCase
|
||||
{
|
||||
/**
|
||||
* @var Crawler
|
||||
*/
|
||||
private $crawler;
|
||||
|
||||
private $client;
|
||||
|
||||
/**
|
||||
* Prepares the environment before running a test.
|
||||
*/
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->client = $this->createClient();
|
||||
$this->crawler = $this->client->request('GET', '/login');
|
||||
}
|
||||
|
||||
public function testIfLoginFormPageIsReachable(): void
|
||||
{
|
||||
$this->assertEquals(200, $this->client->getResponse()
|
||||
->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @todo Implemnt test for success message
|
||||
*/
|
||||
public function testSuccessfullLogin(): void
|
||||
{
|
||||
$this->client->followRedirects();
|
||||
$form = $this->crawler->selectButton('Log in')->form();
|
||||
$form['_username']->setValue(DummyFixtures::USER_NAME);
|
||||
$form['_password']->setValue(DummyFixtures::USER_PASSWORD);
|
||||
$form['_remember_me']->setValue('on');
|
||||
$this->client->submit($form);
|
||||
$this->assertContains(
|
||||
'edit profile',
|
||||
$this->client->getResponse()->getContent()
|
||||
);
|
||||
$this->assertContains(
|
||||
'logout',
|
||||
$this->client->getResponse()->getContent()
|
||||
);
|
||||
$this->assertContains(
|
||||
'user source',
|
||||
$this->client->getResponse()->getContent()
|
||||
);
|
||||
$this->assertContains(
|
||||
DummyFixtures::USER_NAME,
|
||||
$this->client->getResponse()->getContent()
|
||||
);
|
||||
}
|
||||
|
||||
public function testWrongPassword(): void
|
||||
{
|
||||
$this->client->followRedirects();
|
||||
$form = $this->crawler->selectButton('Log in')->form();
|
||||
$form['_username']->setValue(DummyFixtures::USER_NAME);
|
||||
$form['_password']->setValue('wrong password');
|
||||
$form['_remember_me']->setValue('on');
|
||||
$this->client->submit($form);
|
||||
$this->assertContains(
|
||||
'Invalid credentials.',
|
||||
$this->client->getResponse()->getContent()
|
||||
);
|
||||
}
|
||||
|
||||
public function testWrongUsername(): void
|
||||
{
|
||||
$this->client->followRedirects();
|
||||
$form = $this->crawler->selectButton('Log in')->form();
|
||||
$form['_username']->setValue('unknown_username');
|
||||
$form['_password']->setValue(DummyFixtures::USER_PASSWORD);
|
||||
$form['_remember_me']->setValue('on');
|
||||
$this->client->submit($form);
|
||||
$this->assertContains(
|
||||
'Username could not be found.',
|
||||
$this->client->getResponse()->getContent()
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user