Refactored class

This commit is contained in:
Kevin Veen-Birkenbach 2020-04-16 19:31:29 +02:00
parent 0b1d7dea92
commit 9658c2599b

View File

@ -11,8 +11,26 @@ use Symfony\Component\DomCrawler\Crawler;
* *
* @author Kevin Veen-Birkenbach [aka. Frantz] * @author Kevin Veen-Birkenbach [aka. Frantz]
*/ */
class UserLoginTest extends WebTestCase class UserFunctionTest extends WebTestCase
{ {
/**
*
* @var string
*/
private $username = '';
/**
*
* @var string
*/
private $password = '';
/**
*
* @var string
*/
private $email = '';
/** /**
* @var Crawler * @var Crawler
*/ */
@ -20,6 +38,29 @@ class UserLoginTest extends WebTestCase
private $client; private $client;
private function initAttributs():void{
$this->username = 'function_test_user';
$this->password = 'function_test_user_password';
$this->email = 'function_test_user@test.test';
}
private function crawlUrl(string $url):void{
$this->crawler = $this->client->request('GET', $url);
$this->client->followRedirects();
}
private function registerUser():void{
$this->crawlUrl('/register/');
$form = $this->crawler->selectButton('Register')->form();
$form['fos_user_registration_form[username]']->setValue($this->username);
$form['fos_user_registration_form[email]']->setValue($this->email);
$form['fos_user_registration_form[plainPassword][first]']->setValue($this->password);
$form['fos_user_registration_form[plainPassword][second]']->setValue($this->password);
$this->client->submit($form);
}
/** /**
* Prepares the environment before running a test. * Prepares the environment before running a test.
*/ */
@ -27,7 +68,8 @@ class UserLoginTest extends WebTestCase
{ {
parent::setUp(); parent::setUp();
$this->client = $this->createClient(); $this->client = $this->createClient();
$this->crawler = $this->client->request('GET', '/login'); $this->initAttributs();
$this->registerUser();
} }
public function testIfLoginFormPageIsReachable(): void public function testIfLoginFormPageIsReachable(): void
@ -36,15 +78,12 @@ class UserLoginTest extends WebTestCase
->getStatusCode()); ->getStatusCode());
} }
/** public function testLoginSuccessfull(): void
* @todo Implemnt test for success message
*/
public function testSuccessfullLogin(): void
{ {
$this->client->followRedirects(); $this->crawlUrl('/login/');
$form = $this->crawler->selectButton('Log in')->form(); $form = $this->crawler->selectButton('Log in')->form();
$form['_username']->setValue(DummyFixtures::USER_NAME); $form['_username']->setValue($this->username);
$form['_password']->setValue(DummyFixtures::USER_PASSWORD); $form['_password']->setValue($this->password);
$form['_remember_me']->setValue('on'); $form['_remember_me']->setValue('on');
$this->client->submit($form); $this->client->submit($form);
$this->assertContains( $this->assertContains(
@ -60,16 +99,16 @@ class UserLoginTest extends WebTestCase
$this->client->getResponse()->getContent() $this->client->getResponse()->getContent()
); );
$this->assertContains( $this->assertContains(
DummyFixtures::USER_NAME, $this->username,
$this->client->getResponse()->getContent() $this->client->getResponse()->getContent()
); );
} }
public function testWrongPassword(): void public function testLoginWrongPassword(): void
{ {
$this->client->followRedirects(); $this->crawlUrl('/login/');
$form = $this->crawler->selectButton('Log in')->form(); $form = $this->crawler->selectButton('Log in')->form();
$form['_username']->setValue(DummyFixtures::USER_NAME); $form['_username']->setValue($this->username);
$form['_password']->setValue('wrong password'); $form['_password']->setValue('wrong password');
$form['_remember_me']->setValue('on'); $form['_remember_me']->setValue('on');
$this->client->submit($form); $this->client->submit($form);
@ -79,12 +118,12 @@ class UserLoginTest extends WebTestCase
); );
} }
public function testWrongUsername(): void public function testLoginWrongUsername(): void
{ {
$this->client->followRedirects(); $this->crawlUrl('/login/');
$form = $this->crawler->selectButton('Log in')->form(); $form = $this->crawler->selectButton('Log in')->form();
$form['_username']->setValue('unknown_username'); $form['_username']->setValue('unknown_username');
$form['_password']->setValue(DummyFixtures::USER_PASSWORD); $form['_password']->setValue($this->password);
$form['_remember_me']->setValue('on'); $form['_remember_me']->setValue('on');
$this->client->submit($form); $this->client->submit($form);
$this->assertContains( $this->assertContains(