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
|
class DummyFixtures extends Fixture implements ContainerAwareInterface
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var ContainerInterface
|
||||||
|
*/
|
||||||
private $container;
|
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)
|
public function setContainer(ContainerInterface $container = null)
|
||||||
{
|
{
|
||||||
$this->container = $container;
|
$this->container = $container;
|
||||||
@ -40,9 +49,9 @@ class DummyFixtures extends Fixture implements ContainerAwareInterface
|
|||||||
* @var User
|
* @var User
|
||||||
*/
|
*/
|
||||||
$testUser = $userManager->createUser();
|
$testUser = $userManager->createUser();
|
||||||
$testUser->setEmail('test@test.de');
|
$testUser->setEmail(self::USER_EMAIL);
|
||||||
$testUser->setUsername('test');
|
$testUser->setUsername(self::USER_NAME);
|
||||||
$testUser->setPlainPassword('test');
|
$testUser->setPlainPassword(self::USER_PASSWORD);
|
||||||
$testUser->setEnabled(true);
|
$testUser->setEnabled(true);
|
||||||
$userManager->updateUser($testUser);
|
$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