Обновлён Codeception до версии 2.1

This commit is contained in:
ErickSkrauch
2016-05-10 15:07:32 +03:00
parent 455d7b9469
commit ce2e68faf6
19 changed files with 149 additions and 80 deletions

View File

@@ -1,12 +1,10 @@
<?php
namespace tests\codeception\api\functional;
use Codeception\Scenario;
use Codeception\Specify;
use common\models\Account;
use tests\codeception\api\_pages\AccountsRoute;
use tests\codeception\api\_pages\LoginRoute;
use tests\codeception\api\functional\_steps\AccountSteps;
use tests\codeception\api\FunctionalTester;
class AccountsChangePasswordCest {
@@ -20,16 +18,15 @@ class AccountsChangePasswordCest {
$this->route = new AccountsRoute($I);
}
public function _after(FunctionalTester $I) {
public function _after() {
/** @var Account $account */
$account = Account::findOne(1);
$account->setPassword('password_0');
$account->save();
}
public function testChangePassword(FunctionalTester $I, Scenario $scenario) {
public function testChangePassword(FunctionalTester $I) {
$I->wantTo('change my password');
$I = new AccountSteps($scenario);
$I->loggedInAsActiveAccount();
$this->route->changePassword('password_0', 'new-password', 'new-password');

View File

@@ -1,11 +1,9 @@
<?php
namespace tests\codeception\api\functional;
use Codeception\Scenario;
use Codeception\Specify;
use common\models\Account;
use tests\codeception\api\_pages\AccountsRoute;
use tests\codeception\api\functional\_steps\AccountSteps;
use tests\codeception\api\FunctionalTester;
class AccountsChangeUsernameCest {
@@ -19,16 +17,15 @@ class AccountsChangeUsernameCest {
$this->route = new AccountsRoute($I);
}
public function _after(FunctionalTester $I) {
public function _after() {
/** @var Account $account */
$account = Account::findOne(1);
$account->username = 'Admin';
$account->save();
}
public function testChangeUsername(FunctionalTester $I, Scenario $scenario) {
public function testChangeUsername(FunctionalTester $I) {
$I->wantTo('change my nickname');
$I = new AccountSteps($scenario);
$I->loggedInAsActiveAccount();
$this->route->changeUsername('password_0', 'bruce_wayne');
@@ -39,9 +36,8 @@ class AccountsChangeUsernameCest {
]);
}
public function testChangeUsernameNotAvailable(FunctionalTester $I, Scenario $scenario) {
public function testChangeUsernameNotAvailable(FunctionalTester $I) {
$I->wantTo('see, that nickname "in use" is not available');
$I = new AccountSteps($scenario);
$I->loggedInAsActiveAccount();
$this->route->changeUsername('password_0', 'Jon');

View File

@@ -1,10 +1,8 @@
<?php
namespace tests\codeception\api\functional;
use Codeception\Scenario;
use Codeception\Specify;
use tests\codeception\api\_pages\AccountsRoute;
use tests\codeception\api\functional\_steps\AccountSteps;
use tests\codeception\api\FunctionalTester;
class AccountsCurrentCest {
@@ -18,8 +16,7 @@ class AccountsCurrentCest {
$this->route = new AccountsRoute($I);
}
public function testCurrent(FunctionalTester $I, Scenario $scenario) {
$I = new AccountSteps($scenario);
public function testCurrent(FunctionalTester $I) {
$I->loggedInAsActiveAccount();
$this->route->current();

View File

@@ -1,7 +1,6 @@
<?php
namespace tests\codeception\api;
use Codeception\Scenario;
use tests\codeception\api\_pages\OauthRoute;
use tests\codeception\api\functional\_steps\OauthSteps;
use Yii;
@@ -38,8 +37,7 @@ class OauthAccessTokenCest {
]);
}
public function testIssueToken(FunctionalTester $I, Scenario $scenario) {
$I = new OauthSteps($scenario);
public function testIssueToken(OauthSteps $I) {
$authCode = $I->getAuthCode();
$this->route->issueToken($this->buildParams(
$authCode,
@@ -56,8 +54,7 @@ class OauthAccessTokenCest {
$I->canSeeResponseJsonMatchesJsonPath('$.expires_in');
}
public function testIssueTokenWithRefreshToken(FunctionalTester $I, Scenario $scenario) {
$I = new OauthSteps($scenario);
public function testIssueTokenWithRefreshToken(OauthSteps $I) {
$authCode = $I->getAuthCode(false);
$this->route->issueToken($this->buildParams(
$authCode,

View File

@@ -2,7 +2,6 @@
namespace tests\codeception\api;
use tests\codeception\api\_pages\OauthRoute;
use tests\codeception\api\functional\_steps\AccountSteps;
use Yii;
class OauthAuthCodeCest {
@@ -54,6 +53,7 @@ class OauthAuthCodeCest {
}
public function testValidateWithDescriptionReplaceRequest(FunctionalTester $I) {
$I->loggedInAsActiveAccount();
$I->wantTo('validate and get information with description replacement');
$this->route->validate($this->buildQueryParams(
'ely',
@@ -74,15 +74,13 @@ class OauthAuthCodeCest {
]);
}
public function testCompleteValidationAction($I, $scenario) {
$I = new AccountSteps($scenario);
public function testCompleteValidationAction(FunctionalTester $I) {
$I->loggedInAsActiveAccount();
$I->wantTo('validate all oAuth params on complete request');
$this->testOauthParamsValidation($I, 'complete');
}
public function testCompleteActionOnWrongConditions($I, $scenario) {
$I = new AccountSteps($scenario);
public function testCompleteActionOnWrongConditions(FunctionalTester $I) {
$I->loggedInAsActiveAccount();
$I->wantTo('get accept_required if I dom\'t require any scope, but this is first time request');
@@ -116,10 +114,8 @@ class OauthAuthCodeCest {
]);
}
public function testCompleteActionSuccess($I, $scenario) {
$I = new AccountSteps($scenario);
public function testCompleteActionSuccess(FunctionalTester $I) {
$I->loggedInAsActiveAccount();
$I->wantTo('get auth code if I require some scope and pass accept field');
$this->route->complete($this->buildQueryParams(
'ely',
@@ -161,8 +157,7 @@ class OauthAuthCodeCest {
$I->canSeeResponseJsonMatchesJsonPath('$.redirectUri');
}
public function testAcceptRequiredOnNewScope($I, $scenario) {
$I = new AccountSteps($scenario);
public function testAcceptRequiredOnNewScope(FunctionalTester $I) {
$I->loggedInAsActiveAccount();
$I->wantTo('get accept_required if I have previous successful request, but now require some new scope');
$this->route->complete($this->buildQueryParams(
@@ -186,8 +181,7 @@ class OauthAuthCodeCest {
]);
}
public function testCompleteActionWithDismissState($I, $scenario) {
$I = new AccountSteps($scenario);
public function testCompleteActionWithDismissState(FunctionalTester $I) {
$I->loggedInAsActiveAccount();
$I->wantTo('get access_denied error if I pass accept in false state');
$this->route->complete($this->buildQueryParams(

View File

@@ -1,7 +1,6 @@
<?php
namespace tests\codeception\api;
use Codeception\Scenario;
use common\models\OauthScope;
use tests\codeception\api\_pages\OauthRoute;
use tests\codeception\api\functional\_steps\OauthSteps;
@@ -18,8 +17,7 @@ class OauthRefreshTokenCest {
$this->route = new OauthRoute($I);
}
public function testRefreshToken(FunctionalTester $I, Scenario $scenario) {
$I = new OauthSteps($scenario);
public function testRefreshToken(OauthSteps $I) {
$refreshToken = $I->getRefreshToken();
$this->route->issueToken($this->buildParams(
$refreshToken,
@@ -36,8 +34,7 @@ class OauthRefreshTokenCest {
$I->canSeeResponseJsonMatchesJsonPath('$.expires_in');
}
public function testRefreshTokenWithSameScopes(FunctionalTester $I, Scenario $scenario) {
$I = new OauthSteps($scenario);
public function testRefreshTokenWithSameScopes(OauthSteps $I) {
$refreshToken = $I->getRefreshToken();
$this->route->issueToken($this->buildParams(
$refreshToken,
@@ -55,8 +52,7 @@ class OauthRefreshTokenCest {
$I->canSeeResponseJsonMatchesJsonPath('$.expires_in');
}
public function testRefreshTokenWithNewScopes(FunctionalTester $I, Scenario $scenario) {
$I = new OauthSteps($scenario);
public function testRefreshTokenWithNewScopes(OauthSteps $I) {
$refreshToken = $I->getRefreshToken();
$this->route->issueToken($this->buildParams(
$refreshToken,

View File

@@ -1,23 +0,0 @@
<?php
namespace tests\codeception\api\functional\_steps;
use tests\codeception\api\_pages\LoginRoute;
use tests\codeception\api\FunctionalTester;
class AccountSteps extends FunctionalTester {
public function loggedInAsActiveAccount() {
$I = $this;
$route = new LoginRoute($I);
$route->login('Admin', 'password_0');
$I->canSeeResponseIsJson();
$I->canSeeResponseJsonMatchesJsonPath('$.jwt');
$jwt = $I->grabDataFromResponseByJsonPath('$.jwt')[0];
$I->amBearerAuthenticated($jwt);
}
public function notLoggedIn() {
$this->haveHttpHeader('Authorization', null);
}
}

View File

@@ -3,7 +3,7 @@ namespace tests\codeception\api\functional\_steps;
use tests\codeception\api\_pages\OauthRoute;
class OauthSteps extends AccountSteps {
class OauthSteps extends \tests\codeception\api\FunctionalTester {
public function getAuthCode($online = true) {
// TODO: по идее можно напрямую сделать зпись в базу, что ускорит процесс тестирования