Добавлены экшены в контроллер и 1 тест (больше не успел)

This commit is contained in:
ErickSkrauch
2016-05-16 11:21:12 +03:00
parent 50439fdaeb
commit f99b281f30
6 changed files with 138 additions and 11 deletions

View File

@ -30,4 +30,9 @@ class AccountsRoute extends BasePage {
]);
}
public function changeEmailInitialize() {
$this->route = ['accounts/change-email-initialize'];
$this->actor->sendPOST($this->getUrl());
}
}

View File

@ -1,6 +1,8 @@
<?php
namespace tests\codeception\api;
use Codeception\Actor;
use InvalidArgumentException;
use tests\codeception\api\_pages\AuthenticationRoute;
/**
@ -18,17 +20,23 @@ use tests\codeception\api\_pages\AuthenticationRoute;
*
* @SuppressWarnings(PHPMD)
*/
class FunctionalTester extends \Codeception\Actor {
class FunctionalTester extends Actor {
use _generated\FunctionalTesterActions;
public function loggedInAsActiveAccount() {
$I = $this;
$route = new AuthenticationRoute($I);
$route->login('Admin', 'password_0');
$I->canSeeResponseIsJson();
$I->canSeeResponseJsonMatchesJsonPath('$.jwt');
$jwt = $I->grabDataFromResponseByJsonPath('$.jwt')[0];
$I->amBearerAuthenticated($jwt);
public function loggedInAsActiveAccount($login = null, $password = null) {
$route = new AuthenticationRoute($this);
if ($login === null) {
$route->login('Admin', 'password_0');
} elseif ($login !== null && $password !== null) {
$route->login($login, $password);
} else {
throw new InvalidArgumentException('login and password should be presented both.');
}
$this->canSeeResponseIsJson();
$this->canSeeResponseJsonMatchesJsonPath('$.jwt');
$jwt = $this->grabDataFromResponseByJsonPath('$.jwt')[0];
$this->amBearerAuthenticated($jwt);
}
public function notLoggedIn() {

View File

@ -0,0 +1,46 @@
<?php
namespace tests\codeception\api\functional;
use Codeception\Specify;
use tests\codeception\api\_pages\AccountsRoute;
use tests\codeception\api\FunctionalTester;
class AccountsChangeEmailInitializeCest {
/**
* @var AccountsRoute
*/
private $route;
public function _before(FunctionalTester $I) {
$this->route = new AccountsRoute($I);
}
public function testChangeEmailInitialize(FunctionalTester $I) {
$I->wantTo('send current email confirmation');
$I->loggedInAsActiveAccount();
$this->route->changeEmailInitialize();
$I->canSeeResponseCodeIs(200);
$I->canSeeResponseIsJson();
$I->canSeeResponseContainsJson([
'success' => true,
]);
}
public function testChangeEmailWithOldPasswordStrategy(FunctionalTester $I) {
$I->wantTo('see, that account use old account password hash strategy');
$I->loggedInAsActiveAccount('AccWithOldPassword', '12345678');
$this->route->changeEmailInitialize();
$I->canSeeResponseCodeIs(200);
$I->canSeeResponseIsJson();
$I->canSeeResponseContainsJson([
'success' => false,
'errors' => [
'email' => 'error.old_hash_strategy',
],
]);
}
}