152 lines
3.7 KiB
PHP
152 lines
3.7 KiB
PHP
<?php
|
|
|
|
|
|
/**
|
|
* Inherited Methods
|
|
* @method void wantToTest($text)
|
|
* @method void wantTo($text)
|
|
* @method void execute($callable)
|
|
* @method void expectTo($prediction)
|
|
* @method void expect($prediction)
|
|
* @method void amGoingTo($argumentation)
|
|
* @method void am($role)
|
|
* @method void lookForwardTo($achieveValue)
|
|
* @method void comment($description)
|
|
* @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL)
|
|
*
|
|
* @SuppressWarnings(PHPMD)
|
|
*/
|
|
class AcceptanceTester extends \Codeception\Actor
|
|
{
|
|
use _generated\AcceptanceTesterActions;
|
|
|
|
private $mailcathcher,
|
|
$mail;
|
|
|
|
/**
|
|
* @Given Saya mempunyai hak akses di database
|
|
*/
|
|
public function sayaMempunyaiHakAksesDiDatabase()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->seeInDatabase('users', ['email' => 'admin@laraland.test']);
|
|
}
|
|
|
|
/**
|
|
* @When Saya mengirim form berisi email saya
|
|
*/
|
|
public function sayaMengirimFormBerisiEmailSaya()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->amOnPage('/password/reset');
|
|
$I->fillField('email', 'admin@laraland.test');
|
|
$I->click('button[type=submit]');
|
|
}
|
|
|
|
/**
|
|
* @Then Saya melihat bahwa sebuah email telah dikirim dari sistem
|
|
*/
|
|
public function sayaMelihatBahwaSebuahEmailTelahDikirimDariSistem()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->see('We have e-mailed your password reset link!');
|
|
}
|
|
|
|
/**
|
|
* @Given Saya membuka link pada email dari sistem
|
|
*/
|
|
public function sayaMembukaLinkPadaEmailDariSistem()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->requestEmailResetPasswordLink($I);
|
|
|
|
$this->mailcatcher = new GuzzleHttp\Client([
|
|
'base_uri' => 'http://localhost:8025/api/v1/'
|
|
]);
|
|
|
|
$this->mail = $this->getLastMessage($this->mailcatcher);
|
|
|
|
$pattern = '/\/password\/reset\/[\w=\s]+[^\W]+/';
|
|
|
|
foreach($this->mail as $key => $val) {
|
|
if ($key == 'Content') {
|
|
foreach($val as $head => $body) {
|
|
if ($head == 'Body') {
|
|
preg_match($pattern, $body, $matches);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$url = preg_replace('/=\s+/', '', $matches[0]);
|
|
$url = preg_replace('/\s+[\w\W]+/', '', $url);
|
|
|
|
$I->amOnPage($url);
|
|
}
|
|
|
|
/**
|
|
* @When Saya mengirim form berisi password baru
|
|
*/
|
|
public function sayaMengirimFormBerisiPasswordBaru()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->fillField('email', 'admin@laraland.test');
|
|
$I->fillField('password', 'newsecret');
|
|
$I->fillField('password_confirmation', 'newsecret');
|
|
$I->click('button[type=submit]');
|
|
}
|
|
|
|
/**
|
|
* @Then Saya berhasil signin dengan password baru
|
|
*/
|
|
public function sayaBerhasilSigninDenganPasswordBaru()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->seeCurrentUrlEquals('/home');
|
|
$I->see('Your password has been reset!');
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @Given Saya berada di halaman registrasi
|
|
*/
|
|
public function sayaBeradaDiHalamanRegistrasi()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->amOnPage('/register');
|
|
}
|
|
|
|
/**
|
|
* @When Saya mengirim form registrasi
|
|
*/
|
|
public function sayaMengirimFormRegistrasi()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->fillField('name', \Faker\Factory::create()->name);
|
|
$I->fillField('email', 'admin2@laraland.test');
|
|
$I->fillField('password', 'sosecret');
|
|
$I->fillField('password_confirmation', 'sosecret');
|
|
$I->click('button[type=submit]');
|
|
}
|
|
|
|
/**
|
|
* @Then Saya akan dialihkan ke halaman dashboard
|
|
*/
|
|
public function sayaAkanDialihkanKeHalamanDashboard()
|
|
{
|
|
$I = $this;
|
|
|
|
$I->seeCurrentUrlEquals('/home');
|
|
$I->see('Dashboard');
|
|
}
|
|
}
|