Update ely/php-code-style and run updated CS fixer

This commit is contained in:
ErickSkrauch 2019-02-26 02:26:02 +03:00
parent ea4ebd19ef
commit b20825a051
67 changed files with 250 additions and 252 deletions

View File

@ -8,9 +8,8 @@ $finder = \PhpCsFixer\Finder::create()
->notPath('common/mail/layouts') ->notPath('common/mail/layouts')
->notPath('/.*\/runtime/') ->notPath('/.*\/runtime/')
->notPath('autocompletion.php') ->notPath('autocompletion.php')
->notPath('tests/codeception/_output') ->notPath('/.*\/tests\/_output/')
->notPath('/tests\/codeception\/.*\/_output/') ->notPath('/.*\/tests\/_support\/_generated/')
->notPath('/tests\/codeception\/.*\/_support\/_generated/')
->name('yii'); ->name('yii');
return \Ely\CS\Config::create() return \Ely\CS\Config::create()

View File

@ -12,7 +12,7 @@ interface IdentityInterface extends \yii\web\IdentityInterface {
* @throws \yii\web\UnauthorizedHttpException * @throws \yii\web\UnauthorizedHttpException
* @return IdentityInterface * @return IdentityInterface
*/ */
public static function findIdentityByAccessToken($token, $type = null): IdentityInterface; public static function findIdentityByAccessToken($token, $type = null): self;
/** /**
* Этот метод используется для получения токена, к которому привязаны права. * Этот метод используется для получения токена, к которому привязаны права.

View File

@ -3,7 +3,7 @@ namespace api\modules\accounts\models;
use api\aop\annotations\CollectModelMetrics; use api\aop\annotations\CollectModelMetrics;
use yii\base\ErrorException; use yii\base\ErrorException;
use const \common\LATEST_RULES_VERSION; use const common\LATEST_RULES_VERSION;
class AcceptRulesForm extends AccountActionForm { class AcceptRulesForm extends AccountActionForm {

View File

@ -42,9 +42,7 @@ class RefreshTokenForm extends ApiForm {
$accessToken->refreshPrimaryKeyValue(); $accessToken->refreshPrimaryKeyValue();
$accessToken->update(); $accessToken->update();
$dataModel = new AuthenticateData($accessToken); return new AuthenticateData($accessToken);
return $dataModel;
} }
} }

View File

@ -1,8 +1,8 @@
<?php <?php
defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_DEBUG') || define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test'); defined('YII_ENV') || define('YII_ENV', 'test');
defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', __DIR__ . '/../../'); defined('YII_APP_BASE_PATH') || define('YII_APP_BASE_PATH', __DIR__ . '/../../');
require_once YII_APP_BASE_PATH . '/vendor/autoload.php'; require_once YII_APP_BASE_PATH . '/vendor/autoload.php';
require_once YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php'; require_once YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php';

View File

@ -28,15 +28,15 @@ class OauthRoute extends BasePage {
} }
public function resetClient(string $clientId, bool $regenerateSecret = false): void { public function resetClient(string $clientId, bool $regenerateSecret = false): void {
$this->getActor()->sendPOST("/api/v1/oauth2/$clientId/reset" . ($regenerateSecret ? '?regenerateSecret' : '')); $this->getActor()->sendPOST("/api/v1/oauth2/{$clientId}/reset" . ($regenerateSecret ? '?regenerateSecret' : ''));
} }
public function getClient(string $clientId): void { public function getClient(string $clientId): void {
$this->getActor()->sendGET("/api/v1/oauth2/$clientId"); $this->getActor()->sendGET("/api/v1/oauth2/{$clientId}");
} }
public function getPerAccount(int $accountId): void { public function getPerAccount(int $accountId): void {
$this->getActor()->sendGET("/api/v1/accounts/$accountId/oauth2/clients"); $this->getActor()->sendGET("/api/v1/accounts/{$accountId}/oauth2/clients");
} }
} }

View File

@ -16,7 +16,7 @@ class FunctionalTester extends Actor {
/** @var Account $account */ /** @var Account $account */
$account = Account::findOne(['username' => $asUsername]); $account = Account::findOne(['username' => $asUsername]);
if ($account === null) { if ($account === null) {
throw new InvalidArgumentException("Cannot find account for username \"$asUsername\""); throw new InvalidArgumentException("Cannot find account for username \"{$asUsername}\"");
} }
$result = Yii::$app->user->createJwtAuthenticationToken($account, false); $result = Yii::$app->user->createJwtAuthenticationToken($account, false);

View File

@ -54,8 +54,8 @@ class SessionServerSteps extends FunctionalTester {
$decoded = json_decode(base64_decode($value), true); $decoded = json_decode(base64_decode($value), true);
$this->assertArrayHasKey('timestamp', $decoded); $this->assertArrayHasKey('timestamp', $decoded);
$this->assertArrayHasKey('textures', $decoded); $this->assertArrayHasKey('textures', $decoded);
$this->assertEquals($expectedUuid, $decoded['profileId']); $this->assertSame($expectedUuid, $decoded['profileId']);
$this->assertEquals($expectedUsername, $decoded['profileName']); $this->assertSame($expectedUsername, $decoded['profileName']);
$this->assertTrue($decoded['ely']); $this->assertTrue($decoded['ely']);
$textures = $decoded['textures']; $textures = $decoded['textures'];
$this->assertArrayHasKey('SKIN', $textures); $this->assertArrayHasKey('SKIN', $textures);

View File

@ -19,7 +19,7 @@ class HasJoinedCest {
public function hasJoined(SessionServerSteps $I) { public function hasJoined(SessionServerSteps $I) {
$I->wantTo('check hasJoined user to some server'); $I->wantTo('check hasJoined user to some server');
list($username, $serverId) = $I->amJoined(); [$username, $serverId] = $I->amJoined();
$this->route->hasJoined([ $this->route->hasJoined([
'username' => $username, 'username' => $username,

View File

@ -19,7 +19,7 @@ class HasJoinedLegacyCest {
public function hasJoined(SessionServerSteps $I) { public function hasJoined(SessionServerSteps $I) {
$I->wantTo('test hasJoined user to some server by legacy version'); $I->wantTo('test hasJoined user to some server by legacy version');
list($username, $serverId) = $I->amJoined(true); [$username, $serverId] = $I->amJoined(true);
$this->route->hasJoinedLegacy([ $this->route->hasJoinedLegacy([
'user' => $username, 'user' => $username,

View File

@ -14,7 +14,7 @@ class ValidatorTest extends TestCase {
public function testValidateEmptyValue() { public function testValidateEmptyValue() {
$validator = new Validator(mock(ClientInterface::class)); $validator = new Validator(mock(ClientInterface::class));
$this->assertFalse($validator->validate('', $error)); $this->assertFalse($validator->validate('', $error));
$this->assertEquals('error.captcha_required', $error, 'Get error.captcha_required, if passed empty value'); $this->assertSame('error.captcha_required', $error, 'Get error.captcha_required, if passed empty value');
} }
public function testValidateInvalidValue() { public function testValidateInvalidValue() {
@ -28,7 +28,7 @@ class ValidatorTest extends TestCase {
$validator = new Validator($mockClient); $validator = new Validator($mockClient);
$this->assertFalse($validator->validate('12341234', $error)); $this->assertFalse($validator->validate('12341234', $error));
$this->assertEquals('error.captcha_invalid', $error, 'Get error.captcha_invalid, if passed wrong value'); $this->assertSame('error.captcha_invalid', $error, 'Get error.captcha_invalid, if passed wrong value');
} }
public function testValidateWithNetworkTroubles() { public function testValidateWithNetworkTroubles() {

View File

@ -45,17 +45,17 @@ class ComponentTest extends TestCase {
$result = $this->component->createJwtAuthenticationToken($account, false); $result = $this->component->createJwtAuthenticationToken($account, false);
$this->assertInstanceOf(AuthenticationResult::class, $result); $this->assertInstanceOf(AuthenticationResult::class, $result);
$this->assertNull($result->getSession()); $this->assertNull($result->getSession());
$this->assertEquals($account, $result->getAccount()); $this->assertSame($account, $result->getAccount());
$payloads = (new Jwt())->deserialize($result->getJwt())->getPayload(); $payloads = (new Jwt())->deserialize($result->getJwt())->getPayload();
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals(time(), $payloads->findClaimByName(Claim\IssuedAt::NAME)->getValue(), '', 3); $this->assertEqualsWithDelta(time(), $payloads->findClaimByName(Claim\IssuedAt::NAME)->getValue(), 3);
/** @noinspection SummerTimeUnsafeTimeManipulationInspection */ /** @noinspection SummerTimeUnsafeTimeManipulationInspection */
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals(time() + 60 * 60 * 24 * 7, $payloads->findClaimByName('exp')->getValue(), '', 3); $this->assertEqualsWithDelta(time() + 60 * 60 * 24 * 7, $payloads->findClaimByName('exp')->getValue(), 3);
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals('ely|1', $payloads->findClaimByName('sub')->getValue()); $this->assertSame('ely|1', $payloads->findClaimByName('sub')->getValue());
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals('accounts_web_user', $payloads->findClaimByName('ely-scopes')->getValue()); $this->assertSame('accounts_web_user', $payloads->findClaimByName('ely-scopes')->getValue());
$this->assertNull($payloads->findClaimByName('jti')); $this->assertNull($payloads->findClaimByName('jti'));
/** @var Account $account */ /** @var Account $account */
@ -63,20 +63,20 @@ class ComponentTest extends TestCase {
$result = $this->component->createJwtAuthenticationToken($account, true); $result = $this->component->createJwtAuthenticationToken($account, true);
$this->assertInstanceOf(AuthenticationResult::class, $result); $this->assertInstanceOf(AuthenticationResult::class, $result);
$this->assertInstanceOf(AccountSession::class, $result->getSession()); $this->assertInstanceOf(AccountSession::class, $result->getSession());
$this->assertEquals($account, $result->getAccount()); $this->assertSame($account, $result->getAccount());
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertTrue($result->getSession()->refresh()); $this->assertTrue($result->getSession()->refresh());
$payloads = (new Jwt())->deserialize($result->getJwt())->getPayload(); $payloads = (new Jwt())->deserialize($result->getJwt())->getPayload();
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals(time(), $payloads->findClaimByName(Claim\IssuedAt::NAME)->getValue(), '', 3); $this->assertEqualsWithDelta(time(), $payloads->findClaimByName(Claim\IssuedAt::NAME)->getValue(), 3);
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals(time() + 3600, $payloads->findClaimByName('exp')->getValue(), '', 3); $this->assertEqualsWithDelta(time() + 3600, $payloads->findClaimByName('exp')->getValue(), 3);
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals('ely|1', $payloads->findClaimByName('sub')->getValue()); $this->assertSame('ely|1', $payloads->findClaimByName('sub')->getValue());
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals('accounts_web_user', $payloads->findClaimByName('ely-scopes')->getValue()); $this->assertSame('accounts_web_user', $payloads->findClaimByName('ely-scopes')->getValue());
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals($result->getSession()->id, $payloads->findClaimByName('jti')->getValue()); $this->assertSame($result->getSession()->id, $payloads->findClaimByName('jti')->getValue());
} }
public function testRenewJwtAuthenticationToken() { public function testRenewJwtAuthenticationToken() {
@ -85,23 +85,22 @@ class ComponentTest extends TestCase {
/** @var AccountSession $session */ /** @var AccountSession $session */
$session = $this->tester->grabFixture('sessions', 'admin'); $session = $this->tester->grabFixture('sessions', 'admin');
$result = $this->component->renewJwtAuthenticationToken($session); $result = $this->component->renewJwtAuthenticationToken($session);
$this->assertInstanceOf(AuthenticationResult::class, $result); $this->assertSame($session, $result->getSession());
$this->assertEquals($session, $result->getSession()); $this->assertSame($session->account_id, $result->getAccount()->id);
$this->assertEquals($session->account_id, $result->getAccount()->id);
$session->refresh(); // reload data from db $session->refresh(); // reload data from db
$this->assertEquals(time(), $session->last_refreshed_at, '', 3); $this->assertEqualsWithDelta(time(), $session->last_refreshed_at, 3);
$this->assertEquals($userIP, $session->getReadableIp()); $this->assertSame($userIP, $session->getReadableIp());
$payloads = (new Jwt())->deserialize($result->getJwt())->getPayload(); $payloads = (new Jwt())->deserialize($result->getJwt())->getPayload();
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals(time(), $payloads->findClaimByName(Claim\IssuedAt::NAME)->getValue(), '', 3); $this->assertEqualsWithDelta(time(), $payloads->findClaimByName(Claim\IssuedAt::NAME)->getValue(), 3);
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals(time() + 3600, $payloads->findClaimByName('exp')->getValue(), '', 3); $this->assertEqualsWithDelta(time() + 3600, $payloads->findClaimByName('exp')->getValue(), 3);
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals('ely|1', $payloads->findClaimByName('sub')->getValue()); $this->assertSame('ely|1', $payloads->findClaimByName('sub')->getValue());
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals('accounts_web_user', $payloads->findClaimByName('ely-scopes')->getValue()); $this->assertSame('accounts_web_user', $payloads->findClaimByName('ely-scopes')->getValue());
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals($session->id, $payloads->findClaimByName('jti')->getValue(), 'session has not changed'); $this->assertSame($session->id, $payloads->findClaimByName('jti')->getValue(), 'session has not changed');
} }
public function testParseToken() { public function testParseToken() {
@ -123,7 +122,6 @@ class ComponentTest extends TestCase {
->getMock(); ->getMock();
$component $component
->expects($this->any())
->method('getIsGuest') ->method('getIsGuest')
->willReturn(false); ->willReturn(false);
@ -132,7 +130,7 @@ class ComponentTest extends TestCase {
$session = $component->getActiveSession(); $session = $component->getActiveSession();
$this->assertInstanceOf(AccountSession::class, $session); $this->assertInstanceOf(AccountSession::class, $session);
/** @noinspection NullPointerExceptionInspection */ /** @noinspection NullPointerExceptionInspection */
$this->assertEquals($session->id, $result->getSession()->id); $this->assertSame($session->id, $result->getSession()->id);
} }
public function testTerminateSessions() { public function testTerminateSessions() {
@ -157,8 +155,8 @@ class ComponentTest extends TestCase {
$component->terminateSessions($account, Component::KEEP_CURRENT_SESSION); $component->terminateSessions($account, Component::KEEP_CURRENT_SESSION);
$sessions = $account->getSessions()->all(); $sessions = $account->getSessions()->all();
$this->assertEquals(1, count($sessions)); $this->assertCount(1, $sessions);
$this->assertTrue($sessions[0]->id === $session->id); $this->assertSame($session->id, $sessions[0]->id);
$component->terminateSessions($account); $component->terminateSessions($account);
$this->assertEmpty($account->getSessions()->all()); $this->assertEmpty($account->getSessions()->all());

View File

@ -17,12 +17,12 @@ class JwtAuthenticationResultTest extends TestCase {
$account = new Account(); $account = new Account();
$account->id = 123; $account->id = 123;
$model = new AuthenticationResult($account, '', null); $model = new AuthenticationResult($account, '', null);
$this->assertEquals($account, $model->getAccount()); $this->assertSame($account, $model->getAccount());
} }
public function testGetJwt() { public function testGetJwt() {
$model = new AuthenticationResult(new Account(), 'mocked jwt', null); $model = new AuthenticationResult(new Account(), 'mocked jwt', null);
$this->assertEquals('mocked jwt', $model->getJwt()); $this->assertSame('mocked jwt', $model->getJwt());
} }
public function testGetSession() { public function testGetSession() {
@ -32,14 +32,14 @@ class JwtAuthenticationResultTest extends TestCase {
$session = new AccountSession(); $session = new AccountSession();
$session->id = 321; $session->id = 321;
$model = new AuthenticationResult(new Account(), '', $session); $model = new AuthenticationResult(new Account(), '', $session);
$this->assertEquals($session, $model->getSession()); $this->assertSame($session, $model->getSession());
} }
public function testGetAsResponse() { public function testGetAsResponse() {
$jwtToken = $this->createJwtToken(time() + 3600); $jwtToken = $this->createJwtToken(time() + 3600);
$model = new AuthenticationResult(new Account(), $jwtToken, null); $model = new AuthenticationResult(new Account(), $jwtToken, null);
$result = $model->getAsResponse(); $result = $model->getAsResponse();
$this->assertEquals($jwtToken, $result['access_token']); $this->assertSame($jwtToken, $result['access_token']);
$this->assertSame(3600, $result['expires_in']); $this->assertSame(3600, $result['expires_in']);
/** @noinspection SummerTimeUnsafeTimeManipulationInspection */ /** @noinspection SummerTimeUnsafeTimeManipulationInspection */
@ -48,8 +48,8 @@ class JwtAuthenticationResultTest extends TestCase {
$session->refresh_token = 'refresh token'; $session->refresh_token = 'refresh token';
$model = new AuthenticationResult(new Account(), $jwtToken, $session); $model = new AuthenticationResult(new Account(), $jwtToken, $session);
$result = $model->getAsResponse(); $result = $model->getAsResponse();
$this->assertEquals($jwtToken, $result['access_token']); $this->assertSame($jwtToken, $result['access_token']);
$this->assertEquals('refresh token', $result['refresh_token']); $this->assertSame('refresh token', $result['refresh_token']);
$this->assertSame(86400, $result['expires_in']); $this->assertSame(86400, $result['expires_in']);
} }

View File

@ -27,8 +27,8 @@ class JwtIdentityTest extends TestCase {
$token = $this->generateToken(); $token = $this->generateToken();
$identity = JwtIdentity::findIdentityByAccessToken($token); $identity = JwtIdentity::findIdentityByAccessToken($token);
$this->assertInstanceOf(IdentityInterface::class, $identity); $this->assertInstanceOf(IdentityInterface::class, $identity);
$this->assertEquals($token, $identity->getId()); $this->assertSame($token, $identity->getId());
$this->assertEquals($this->tester->grabFixture('accounts', 'admin')['id'], $identity->getAccount()->id); $this->assertSame($this->tester->grabFixture('accounts', 'admin')['id'], $identity->getAccount()->id);
} }
/** /**

View File

@ -27,7 +27,7 @@ class ConfirmEmailFormTest extends TestCase {
$this->assertFalse($activationExists, 'email activation key is not exist'); $this->assertFalse($activationExists, 'email activation key is not exist');
/** @var Account $account */ /** @var Account $account */
$account = Account::findOne($fixture['account_id']); $account = Account::findOne($fixture['account_id']);
$this->assertEquals(Account::STATUS_ACTIVE, $account->status, 'user status changed to active'); $this->assertSame(Account::STATUS_ACTIVE, $account->status, 'user status changed to active');
} }
private function createModel($key) { private function createModel($key) {

View File

@ -16,7 +16,7 @@ use Yii;
class ForgotPasswordFormTest extends TestCase { class ForgotPasswordFormTest extends TestCase {
use Specify; use Specify;
public function setUp() { protected function setUp() {
parent::setUp(); parent::setUp();
Yii::$container->set(ReCaptchaValidator::class, new class(mock(ClientInterface::class)) extends ReCaptchaValidator { Yii::$container->set(ReCaptchaValidator::class, new class(mock(ClientInterface::class)) extends ReCaptchaValidator {
public function validateValue($value) { public function validateValue($value) {
@ -35,7 +35,7 @@ class ForgotPasswordFormTest extends TestCase {
public function testValidateLogin() { public function testValidateLogin() {
$model = new ForgotPasswordForm(['login' => 'unexist']); $model = new ForgotPasswordForm(['login' => 'unexist']);
$model->validateLogin('login'); $model->validateLogin('login');
$this->assertEquals(['error.login_not_exist'], $model->getErrors('login'), 'error.login_not_exist if login is invalid'); $this->assertSame(['error.login_not_exist'], $model->getErrors('login'), 'error.login_not_exist if login is invalid');
$model = new ForgotPasswordForm(['login' => $this->tester->grabFixture('accounts', 'admin')['username']]); $model = new ForgotPasswordForm(['login' => $this->tester->grabFixture('accounts', 'admin')['username']]);
$model->validateLogin('login'); $model->validateLogin('login');
@ -47,7 +47,7 @@ class ForgotPasswordFormTest extends TestCase {
'login' => $this->tester->grabFixture('accounts', 'not-activated-account')['username'], 'login' => $this->tester->grabFixture('accounts', 'not-activated-account')['username'],
]); ]);
$model->validateActivity('login'); $model->validateActivity('login');
$this->assertEquals(['error.account_not_activated'], $model->getErrors('login'), 'expected error if account is not confirmed'); $this->assertSame(['error.account_not_activated'], $model->getErrors('login'), 'expected error if account is not confirmed');
$model = new ForgotPasswordForm([ $model = new ForgotPasswordForm([
'login' => $this->tester->grabFixture('accounts', 'admin')['username'], 'login' => $this->tester->grabFixture('accounts', 'admin')['username'],
@ -62,7 +62,7 @@ class ForgotPasswordFormTest extends TestCase {
'key' => $this->tester->grabFixture('emailActivations', 'freshPasswordRecovery')['key'], 'key' => $this->tester->grabFixture('emailActivations', 'freshPasswordRecovery')['key'],
]); ]);
$model->validateFrequency('login'); $model->validateFrequency('login');
$this->assertEquals(['error.recently_sent_message'], $model->getErrors('login'), 'error.account_not_activated if recently was message'); $this->assertSame(['error.recently_sent_message'], $model->getErrors('login'), 'error.account_not_activated if recently was message');
$model = $this->createModel([ $model = $this->createModel([
'login' => $this->tester->grabFixture('accounts', 'admin')['username'], 'login' => $this->tester->grabFixture('accounts', 'admin')['username'],

View File

@ -14,13 +14,13 @@ class LoginFormTest extends TestCase {
private $originalRemoteAddr; private $originalRemoteAddr;
public function setUp() { protected function setUp() {
$this->originalRemoteAddr = $_SERVER['REMOTE_ADDR'] ?? null; $this->originalRemoteAddr = $_SERVER['REMOTE_ADDR'] ?? null;
$_SERVER['REMOTE_ADDR'] = '127.0.0.1'; $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
parent::setUp(); parent::setUp();
} }
public function tearDown() { protected function tearDown() {
parent::tearDown(); parent::tearDown();
$_SERVER['REMOTE_ADDR'] = $this->originalRemoteAddr; $_SERVER['REMOTE_ADDR'] = $this->originalRemoteAddr;
} }
@ -38,7 +38,7 @@ class LoginFormTest extends TestCase {
'account' => null, 'account' => null,
]); ]);
$model->validateLogin('login'); $model->validateLogin('login');
$this->assertEquals(['error.login_not_exist'], $model->getErrors('login')); $this->assertSame(['error.login_not_exist'], $model->getErrors('login'));
}); });
$this->specify('no errors if login exists', function() { $this->specify('no errors if login exists', function() {
@ -58,7 +58,7 @@ class LoginFormTest extends TestCase {
'account' => new Account(['password' => '12345678']), 'account' => new Account(['password' => '12345678']),
]); ]);
$model->validatePassword('password'); $model->validatePassword('password');
$this->assertEquals(['error.password_incorrect'], $model->getErrors('password')); $this->assertSame(['error.password_incorrect'], $model->getErrors('password'));
}); });
$this->specify('no errors if password valid', function() { $this->specify('no errors if password valid', function() {
@ -84,7 +84,7 @@ class LoginFormTest extends TestCase {
'account' => $account, 'account' => $account,
]); ]);
$model->validateTotp('totp'); $model->validateTotp('totp');
$this->assertEquals(['error.totp_incorrect'], $model->getErrors('totp')); $this->assertSame(['error.totp_incorrect'], $model->getErrors('totp'));
}); });
$totp = TOTP::create($account->otp_secret); $totp = TOTP::create($account->otp_secret);
@ -105,7 +105,7 @@ class LoginFormTest extends TestCase {
'account' => new Account(['status' => Account::STATUS_REGISTERED]), 'account' => new Account(['status' => Account::STATUS_REGISTERED]),
]); ]);
$model->validateActivity('login'); $model->validateActivity('login');
$this->assertEquals(['error.account_not_activated'], $model->getErrors('login')); $this->assertSame(['error.account_not_activated'], $model->getErrors('login'));
}); });
$this->specify('error.account_banned if account has banned status', function() { $this->specify('error.account_banned if account has banned status', function() {
@ -113,7 +113,7 @@ class LoginFormTest extends TestCase {
'account' => new Account(['status' => Account::STATUS_BANNED]), 'account' => new Account(['status' => Account::STATUS_BANNED]),
]); ]);
$model->validateActivity('login'); $model->validateActivity('login');
$this->assertEquals(['error.account_banned'], $model->getErrors('login')); $this->assertSame(['error.account_banned'], $model->getErrors('login'));
}); });
$this->specify('no errors if account active', function() { $this->specify('no errors if account active', function() {
@ -146,7 +146,7 @@ class LoginFormTest extends TestCase {
]); ]);
$this->assertInstanceOf(AuthenticationResult::class, $model->login()); $this->assertInstanceOf(AuthenticationResult::class, $model->login());
$this->assertEmpty($model->getErrors()); $this->assertEmpty($model->getErrors());
$this->assertEquals( $this->assertSame(
Account::PASS_HASH_STRATEGY_YII2, Account::PASS_HASH_STRATEGY_YII2,
$model->getAccount()->password_hash_strategy, $model->getAccount()->password_hash_strategy,
'user, that login using account with old pass hash strategy should update it automatically' 'user, that login using account with old pass hash strategy should update it automatically'

View File

@ -26,7 +26,7 @@ class RefreshTokenFormTest extends TestCase {
} }
}; };
$model->validateRefreshToken(); $model->validateRefreshToken();
$this->assertEquals(['error.refresh_token_not_exist'], $model->getErrors('refresh_token')); $this->assertSame(['error.refresh_token_not_exist'], $model->getErrors('refresh_token'));
}); });
$this->specify('no errors if token exists', function() { $this->specify('no errors if token exists', function() {

View File

@ -20,7 +20,7 @@ use const common\LATEST_RULES_VERSION;
class RegistrationFormTest extends TestCase { class RegistrationFormTest extends TestCase {
public function setUp() { protected function setUp() {
parent::setUp(); parent::setUp();
$this->mockRequest(); $this->mockRequest();
Yii::$container->set(ReCaptchaValidator::class, new class(mock(ClientInterface::class)) extends ReCaptchaValidator { Yii::$container->set(ReCaptchaValidator::class, new class(mock(ClientInterface::class)) extends ReCaptchaValidator {
@ -68,7 +68,7 @@ class RegistrationFormTest extends TestCase {
$account = $model->signup(); $account = $model->signup();
$this->expectSuccessRegistration($account); $this->expectSuccessRegistration($account);
$this->assertEquals('ru', $account->lang, 'lang is set'); $this->assertSame('ru', $account->lang, 'lang is set');
} }
public function testSignupWithDefaultLanguage() { public function testSignupWithDefaultLanguage() {
@ -84,7 +84,7 @@ class RegistrationFormTest extends TestCase {
$account = $model->signup(); $account = $model->signup();
$this->expectSuccessRegistration($account); $this->expectSuccessRegistration($account);
$this->assertEquals('en', $account->lang, 'lang is set'); $this->assertSame('en', $account->lang, 'lang is set');
} }
/** /**
@ -95,7 +95,7 @@ class RegistrationFormTest extends TestCase {
$this->assertTrue($account->validatePassword('some_password'), 'password should be correct'); $this->assertTrue($account->validatePassword('some_password'), 'password should be correct');
$this->assertNotEmpty($account->uuid, 'uuid is set'); $this->assertNotEmpty($account->uuid, 'uuid is set');
$this->assertNotNull($account->registration_ip, 'registration_ip is set'); $this->assertNotNull($account->registration_ip, 'registration_ip is set');
$this->assertEquals(LATEST_RULES_VERSION, $account->rules_agreement_version, 'actual rules version is set'); $this->assertSame(LATEST_RULES_VERSION, $account->rules_agreement_version, 'actual rules version is set');
$this->assertTrue(Account::find()->andWhere([ $this->assertTrue(Account::find()->andWhere([
'username' => 'some_username', 'username' => 'some_username',
'email' => 'some_email@example.com', 'email' => 'some_email@example.com',

View File

@ -15,7 +15,7 @@ use Yii;
class RepeatAccountActivationFormTest extends TestCase { class RepeatAccountActivationFormTest extends TestCase {
use Specify; use Specify;
public function setUp() { protected function setUp() {
parent::setUp(); parent::setUp();
Yii::$container->set(ReCaptchaValidator::class, new class(mock(ClientInterface::class)) extends ReCaptchaValidator { Yii::$container->set(ReCaptchaValidator::class, new class(mock(ClientInterface::class)) extends ReCaptchaValidator {
public function validateValue($value) { public function validateValue($value) {

View File

@ -9,7 +9,7 @@ class ApiFormTest extends TestCase {
public function testLoad() { public function testLoad() {
$model = new DummyApiForm(); $model = new DummyApiForm();
$this->assertTrue($model->load(['field' => 'test-data']), 'model successful load data without prefix'); $this->assertTrue($model->load(['field' => 'test-data']), 'model successful load data without prefix');
$this->assertEquals('test-data', $model->field, 'field is set as passed data'); $this->assertSame('test-data', $model->field, 'field is set as passed data');
} }
} }

View File

@ -16,7 +16,7 @@ class AcceptRulesFormTest extends TestCase {
$model = new AcceptRulesForm($account); $model = new AcceptRulesForm($account);
$this->assertTrue($model->performAction()); $this->assertTrue($model->performAction());
$this->assertEquals(LATEST_RULES_VERSION, $account->rules_agreement_version); $this->assertSame(LATEST_RULES_VERSION, $account->rules_agreement_version);
} }
} }

View File

@ -31,7 +31,7 @@ class ChangeEmailFormTest extends TestCase {
])); ]));
/** @noinspection UnserializeExploitsInspection */ /** @noinspection UnserializeExploitsInspection */
$data = unserialize($newEmailConfirmationFixture['_data']); $data = unserialize($newEmailConfirmationFixture['_data']);
$this->assertEquals($data['newEmail'], $account->email); $this->assertSame($data['newEmail'], $account->email);
} }
private function getAccountId() { private function getAccountId() {

View File

@ -15,7 +15,7 @@ class ChangeLanguageFormTest extends TestCase {
$model = new ChangeLanguageForm($account); $model = new ChangeLanguageForm($account);
$model->lang = 'ru'; $model->lang = 'ru';
$this->assertTrue($model->performAction()); $this->assertTrue($model->performAction());
$this->assertEquals('ru', $account->lang); $this->assertSame('ru', $account->lang);
} }
} }

View File

@ -22,7 +22,7 @@ class ChangePasswordFormTest extends TestCase {
'newRePassword' => 'another-password', 'newRePassword' => 'another-password',
]); ]);
$model->validatePasswordAndRePasswordMatch('newRePassword'); $model->validatePasswordAndRePasswordMatch('newRePassword');
$this->assertEquals( $this->assertSame(
[E::NEW_RE_PASSWORD_DOES_NOT_MATCH], [E::NEW_RE_PASSWORD_DOES_NOT_MATCH],
$model->getErrors('newRePassword'), $model->getErrors('newRePassword'),
'error.rePassword_does_not_match expected if passwords not match' 'error.rePassword_does_not_match expected if passwords not match'
@ -47,7 +47,7 @@ class ChangePasswordFormTest extends TestCase {
'newRePassword' => 'another-password', 'newRePassword' => 'another-password',
]); ]);
$model->validate(); $model->validate();
$this->assertEquals( $this->assertSame(
[E::NEW_RE_PASSWORD_DOES_NOT_MATCH], [E::NEW_RE_PASSWORD_DOES_NOT_MATCH],
$model->getErrors('newRePassword'), $model->getErrors('newRePassword'),
'error.rePassword_does_not_match expected even if there are errors on other attributes' 'error.rePassword_does_not_match expected even if there are errors on other attributes'
@ -106,7 +106,7 @@ class ChangePasswordFormTest extends TestCase {
$this->assertTrue($model->performAction(), 'successfully change password with legacy hash strategy'); $this->assertTrue($model->performAction(), 'successfully change password with legacy hash strategy');
$this->assertTrue($account->validatePassword('my-new-password')); $this->assertTrue($account->validatePassword('my-new-password'));
$this->assertGreaterThanOrEqual($callTime, $account->password_changed_at); $this->assertGreaterThanOrEqual($callTime, $account->password_changed_at);
$this->assertEquals(Account::PASS_HASH_STRATEGY_YII2, $account->password_hash_strategy); $this->assertSame(Account::PASS_HASH_STRATEGY_YII2, $account->password_hash_strategy);
} }
public function testPerformActionWithLogout() { public function testPerformActionWithLogout() {

View File

@ -24,7 +24,7 @@ class ChangeUsernameFormTest extends TestCase {
'username' => 'my_new_nickname', 'username' => 'my_new_nickname',
]); ]);
$this->assertTrue($model->performAction()); $this->assertTrue($model->performAction());
$this->assertEquals('my_new_nickname', Account::findOne($this->getAccountId())->username); $this->assertSame('my_new_nickname', Account::findOne($this->getAccountId())->username);
$this->assertInstanceOf(UsernameHistory::class, UsernameHistory::findOne(['username' => 'my_new_nickname'])); $this->assertInstanceOf(UsernameHistory::class, UsernameHistory::findOne(['username' => 'my_new_nickname']));
/** @var PullMojangUsername $job */ /** @var PullMojangUsername $job */
$job = $this->tester->grabLastQueuedJob(); $job = $this->tester->grabLastQueuedJob();
@ -56,7 +56,7 @@ class ChangeUsernameFormTest extends TestCase {
'username' => $newUsername, 'username' => $newUsername,
]); ]);
$this->assertTrue($model->performAction()); $this->assertTrue($model->performAction());
$this->assertEquals($newUsername, Account::findOne($this->getAccountId())->username); $this->assertSame($newUsername, Account::findOne($this->getAccountId())->username);
$this->assertInstanceOf( $this->assertInstanceOf(
UsernameHistory::class, UsernameHistory::class,
UsernameHistory::findOne(['username' => $newUsername]), UsernameHistory::findOne(['username' => $newUsername]),

View File

@ -30,7 +30,7 @@ class DisableTwoFactorAuthFormTest extends TestCase {
$account->is_otp_enabled = false; $account->is_otp_enabled = false;
$model = new DisableTwoFactorAuthForm($account); $model = new DisableTwoFactorAuthForm($account);
$model->validateOtpEnabled('account'); $model->validateOtpEnabled('account');
$this->assertEquals([E::OTP_NOT_ENABLED], $model->getErrors('account')); $this->assertSame([E::OTP_NOT_ENABLED], $model->getErrors('account'));
$account = new Account(); $account = new Account();
$account->is_otp_enabled = true; $account->is_otp_enabled = true;

View File

@ -42,7 +42,7 @@ class EnableTwoFactorAuthFormTest extends TestCase {
$account->is_otp_enabled = true; $account->is_otp_enabled = true;
$model = new EnableTwoFactorAuthForm($account); $model = new EnableTwoFactorAuthForm($account);
$model->validateOtpDisabled('account'); $model->validateOtpDisabled('account');
$this->assertEquals([E::OTP_ALREADY_ENABLED], $model->getErrors('account')); $this->assertSame([E::OTP_ALREADY_ENABLED], $model->getErrors('account'));
$account = new Account(); $account = new Account();
$account->is_otp_enabled = false; $account->is_otp_enabled = false;

View File

@ -25,7 +25,7 @@ class SendEmailVerificationFormTest extends TestCase {
$model = new SendEmailVerificationForm($account); $model = new SendEmailVerificationForm($account);
$activationModel = $model->createCode(); $activationModel = $model->createCode();
$this->assertInstanceOf(CurrentEmailConfirmation::class, $activationModel); $this->assertInstanceOf(CurrentEmailConfirmation::class, $activationModel);
$this->assertEquals($account->id, $activationModel->account_id); $this->assertSame($account->id, $activationModel->account_id);
$this->assertNotNull(EmailActivation::findOne($activationModel->key)); $this->assertNotNull(EmailActivation::findOne($activationModel->key));
} }

View File

@ -28,8 +28,8 @@ class SendNewEmailVerificationFormTest extends TestCase {
$model->email = 'my-new-email@ely.by'; $model->email = 'my-new-email@ely.by';
$activationModel = $model->createCode(); $activationModel = $model->createCode();
$this->assertInstanceOf(NewEmailConfirmation::class, $activationModel); $this->assertInstanceOf(NewEmailConfirmation::class, $activationModel);
$this->assertEquals($account->id, $activationModel->account_id); $this->assertSame($account->id, $activationModel->account_id);
$this->assertEquals($model->email, $activationModel->newEmail); $this->assertSame($model->email, $activationModel->newEmail);
$this->assertNotNull(EmailActivation::findOne($activationModel->key)); $this->assertNotNull(EmailActivation::findOne($activationModel->key));
} }

View File

@ -41,7 +41,7 @@ class TwoFactorAuthInfoTest extends TestCase {
$model = new TwoFactorAuthInfo($account); $model = new TwoFactorAuthInfo($account);
$result = $model->getCredentials(); $result = $model->getCredentials();
$this->assertEquals('AAAA', $result['secret']); $this->assertSame('AAAA', $result['secret']);
} }
} }

View File

@ -79,7 +79,7 @@ class AuthenticationFormTest extends TestCase {
$result = $authForm->authenticate(); $result = $authForm->authenticate();
$this->assertInstanceOf(AuthenticateData::class, $result); $this->assertInstanceOf(AuthenticateData::class, $result);
$this->assertEquals($minecraftAccessKey->access_token, $result->getMinecraftAccessKey()->access_token); $this->assertSame($minecraftAccessKey->access_token, $result->getMinecraftAccessKey()->access_token);
} }
public function testCreateMinecraftAccessToken() { public function testCreateMinecraftAccessToken() {
@ -90,8 +90,8 @@ class AuthenticationFormTest extends TestCase {
/** @var MinecraftAccessKey $result */ /** @var MinecraftAccessKey $result */
$result = $this->callProtected($authForm, 'createMinecraftAccessToken', $account); $result = $this->callProtected($authForm, 'createMinecraftAccessToken', $account);
$this->assertInstanceOf(MinecraftAccessKey::class, $result); $this->assertInstanceOf(MinecraftAccessKey::class, $result);
$this->assertEquals($account->id, $result->account_id); $this->assertSame($account->id, $result->account_id);
$this->assertEquals($authForm->clientToken, $result->client_token); $this->assertSame($authForm->clientToken, $result->client_token);
$this->assertInstanceOf(MinecraftAccessKey::class, MinecraftAccessKey::findOne($result->access_token)); $this->assertInstanceOf(MinecraftAccessKey::class, MinecraftAccessKey::findOne($result->access_token));
} }
@ -104,8 +104,8 @@ class AuthenticationFormTest extends TestCase {
/** @var MinecraftAccessKey $result */ /** @var MinecraftAccessKey $result */
$result = $this->callProtected($authForm, 'createMinecraftAccessToken', $account); $result = $this->callProtected($authForm, 'createMinecraftAccessToken', $account);
$this->assertInstanceOf(MinecraftAccessKey::class, $result); $this->assertInstanceOf(MinecraftAccessKey::class, $result);
$this->assertEquals($account->id, $result->account_id); $this->assertSame($account->id, $result->account_id);
$this->assertEquals($authForm->clientToken, $result->client_token); $this->assertSame($authForm->clientToken, $result->client_token);
$this->assertNull(MinecraftAccessKey::findOne($minecraftFixture['access_token'])); $this->assertNull(MinecraftAccessKey::findOne($minecraftFixture['access_token']));
$this->assertInstanceOf(MinecraftAccessKey::class, MinecraftAccessKey::findOne($result->access_token)); $this->assertInstanceOf(MinecraftAccessKey::class, MinecraftAccessKey::findOne($result->access_token));
} }

View File

@ -20,7 +20,7 @@ class BanFormTest extends TestCase {
$account->status = Account::STATUS_BANNED; $account->status = Account::STATUS_BANNED;
$form = new BanAccountForm($account); $form = new BanAccountForm($account);
$form->validateAccountActivity(); $form->validateAccountActivity();
$this->assertEquals([E::ACCOUNT_ALREADY_BANNED], $form->getErrors('account')); $this->assertSame([E::ACCOUNT_ALREADY_BANNED], $form->getErrors('account'));
} }
public function testBan() { public function testBan() {
@ -35,7 +35,7 @@ class BanFormTest extends TestCase {
$model = new BanAccountForm($account); $model = new BanAccountForm($account);
$this->assertTrue($model->performAction()); $this->assertTrue($model->performAction());
$this->assertEquals(Account::STATUS_BANNED, $account->status); $this->assertSame(Account::STATUS_BANNED, $account->status);
/** @var ClearAccountSessions $job */ /** @var ClearAccountSessions $job */
$job = $this->tester->grabLastQueuedJob(); $job = $this->tester->grabLastQueuedJob();
$this->assertInstanceOf(ClearAccountSessions::class, $job); $this->assertInstanceOf(ClearAccountSessions::class, $job);

View File

@ -19,7 +19,7 @@ class PardonFormTest extends TestCase {
$account->status = Account::STATUS_ACTIVE; $account->status = Account::STATUS_ACTIVE;
$form = new PardonAccountForm($account); $form = new PardonAccountForm($account);
$form->validateAccountBanned(); $form->validateAccountBanned();
$this->assertEquals([E::ACCOUNT_NOT_BANNED], $form->getErrors('account')); $this->assertSame([E::ACCOUNT_NOT_BANNED], $form->getErrors('account'));
} }
public function testPardon() { public function testPardon() {
@ -35,7 +35,7 @@ class PardonFormTest extends TestCase {
$account->status = Account::STATUS_BANNED; $account->status = Account::STATUS_BANNED;
$model = new PardonAccountForm($account); $model = new PardonAccountForm($account);
$this->assertTrue($model->performAction()); $this->assertTrue($model->performAction());
$this->assertEquals(Account::STATUS_ACTIVE, $account->status); $this->assertSame(Account::STATUS_ACTIVE, $account->status);
} }
} }

View File

@ -114,7 +114,7 @@ class OauthClientFormTest extends TestCase {
$job = $this->tester->grabLastQueuedJob(); $job = $this->tester->grabLastQueuedJob();
$this->assertInstanceOf(ClearOauthSessions::class, $job); $this->assertInstanceOf(ClearOauthSessions::class, $job);
$this->assertSame('mocked-id', $job->clientId); $this->assertSame('mocked-id', $job->clientId);
$this->assertEquals(time(), $job->notSince, '', 2); $this->assertEqualsWithDelta(time(), $job->notSince, 2);
} }
public function testResetWithSecret() { public function testResetWithSecret() {
@ -132,7 +132,7 @@ class OauthClientFormTest extends TestCase {
$job = $this->tester->grabLastQueuedJob(); $job = $this->tester->grabLastQueuedJob();
$this->assertInstanceOf(ClearOauthSessions::class, $job); $this->assertInstanceOf(ClearOauthSessions::class, $job);
$this->assertSame('mocked-id', $job->clientId); $this->assertSame('mocked-id', $job->clientId);
$this->assertEquals(time(), $job->notSince, '', 2); $this->assertEqualsWithDelta(time(), $job->notSince, 2);
} }
} }

View File

@ -9,12 +9,12 @@ class RequestParserTest extends TestCase {
public function testParse() { public function testParse() {
$parser = new RequestParser(); $parser = new RequestParser();
$_POST = ['from' => 'post']; $_POST = ['from' => 'post'];
$this->assertEquals(['from' => 'post'], $parser->parse('from=post', '')); $this->assertSame(['from' => 'post'], $parser->parse('from=post', ''));
$this->assertEquals(['from' => 'post'], $parser->parse('', '')); $this->assertSame(['from' => 'post'], $parser->parse('', ''));
$_POST = []; $_POST = [];
$this->assertEquals(['from' => 'json'], $parser->parse('{"from":"json"}', '')); $this->assertSame(['from' => 'json'], $parser->parse('{"from":"json"}', ''));
$this->assertEquals(['from' => 'body'], $parser->parse('from=body', '')); $this->assertSame(['from' => 'body'], $parser->parse('from=body', ''));
$this->assertEquals(['onlykey' => ''], $parser->parse('onlykey', '')); $this->assertSame(['onlykey' => ''], $parser->parse('onlykey', ''));
} }
} }

View File

@ -33,11 +33,11 @@ class AccountFinderTest extends TestCase {
public function testGetLoginAttribute() { public function testGetLoginAttribute() {
$model = new AccountFinderTestTestClass(); $model = new AccountFinderTestTestClass();
$model->login = 'erickskrauch@ely.by'; $model->login = 'erickskrauch@ely.by';
$this->assertEquals('email', $model->getLoginAttribute(), 'if login look like email value, then \'email\''); $this->assertSame('email', $model->getLoginAttribute(), 'if login look like email value, then \'email\'');
$model = new AccountFinderTestTestClass(); $model = new AccountFinderTestTestClass();
$model->login = 'erickskrauch'; $model->login = 'erickskrauch';
$this->assertEquals('username', $model->getLoginAttribute(), 'username in any other case'); $this->assertSame('username', $model->getLoginAttribute(), 'username in any other case');
} }
} }

View File

@ -36,24 +36,24 @@ class EmailActivationKeyValidatorTest extends TestCase {
->willReturnOnConsecutiveCalls(null, $expiredActivation, $validActivation); ->willReturnOnConsecutiveCalls(null, $expiredActivation, $validActivation);
$validator->validateAttribute($model, 'key'); $validator->validateAttribute($model, 'key');
$this->assertEquals([E::KEY_REQUIRED], $model->getErrors('key')); $this->assertSame([E::KEY_REQUIRED], $model->getErrors('key'));
$this->assertNull($model->key); $this->assertNull($model->key);
$model->clearErrors(); $model->clearErrors();
$model->key = 'original value'; $model->key = 'original value';
$validator->validateAttribute($model, 'key'); $validator->validateAttribute($model, 'key');
$this->assertEquals([E::KEY_NOT_EXISTS], $model->getErrors('key')); $this->assertSame([E::KEY_NOT_EXISTS], $model->getErrors('key'));
$this->assertEquals('original value', $model->key); $this->assertSame('original value', $model->key);
$model->clearErrors(); $model->clearErrors();
$validator->validateAttribute($model, 'key'); $validator->validateAttribute($model, 'key');
$this->assertEquals([E::KEY_EXPIRE], $model->getErrors('key')); $this->assertSame([E::KEY_EXPIRE], $model->getErrors('key'));
$this->assertEquals('original value', $model->key); $this->assertSame('original value', $model->key);
$model->clearErrors(); $model->clearErrors();
$validator->validateAttribute($model, 'key'); $validator->validateAttribute($model, 'key');
$this->assertEmpty($model->getErrors('key')); $this->assertEmpty($model->getErrors('key'));
$this->assertEquals($validActivation, $model->key); $this->assertSame($validActivation, $model->key);
} }
public function testFindEmailActivationModel() { public function testFindEmailActivationModel() {
@ -64,7 +64,7 @@ class EmailActivationKeyValidatorTest extends TestCase {
/** @var EmailActivation $result */ /** @var EmailActivation $result */
$result = $this->callProtected($model, 'findEmailActivationModel', $key); $result = $this->callProtected($model, 'findEmailActivationModel', $key);
$this->assertInstanceOf(EmailActivation::class, $result, 'valid key without specifying type must return model'); $this->assertInstanceOf(EmailActivation::class, $result, 'valid key without specifying type must return model');
$this->assertEquals($key, $result->key); $this->assertSame($key, $result->key);
/** @var EmailActivation $result */ /** @var EmailActivation $result */
$result = $this->callProtected($model, 'findEmailActivationModel', $key, 0); $result = $this->callProtected($model, 'findEmailActivationModel', $key, 0);

View File

@ -17,10 +17,10 @@ class PasswordRequiredValidatorTest extends TestCase {
$model = new PasswordRequiredValidator(['account' => $account]); $model = new PasswordRequiredValidator(['account' => $account]);
// Get error.password_required if password is empty // Get error.password_required if password is empty
$this->assertEquals([E::PASSWORD_REQUIRED, []], $this->callProtected($model, 'validateValue', '')); $this->assertSame([E::PASSWORD_REQUIRED, []], $this->callProtected($model, 'validateValue', ''));
// Get error.password_incorrect if password is incorrect // Get error.password_incorrect if password is incorrect
$this->assertEquals([E::PASSWORD_INCORRECT, []], $this->callProtected($model, 'validateValue', '87654321')); $this->assertSame([E::PASSWORD_INCORRECT, []], $this->callProtected($model, 'validateValue', '87654321'));
// No errors, if password is correct for provided account // No errors, if password is correct for provided account
$this->assertNull($this->callProtected($model, 'validateValue', '12345678')); $this->assertNull($this->callProtected($model, 'validateValue', '12345678'));

View File

@ -19,13 +19,13 @@ class TotpValidatorTest extends TestCase {
$validator = new TotpValidator(['account' => $account]); $validator = new TotpValidator(['account' => $account]);
$result = $this->callProtected($validator, 'validateValue', 123456); $result = $this->callProtected($validator, 'validateValue', 123456);
$this->assertEquals([E::TOTP_INCORRECT, []], $result); $this->assertSame([E::TOTP_INCORRECT, []], $result);
$result = $this->callProtected($validator, 'validateValue', $controlTotp->now()); $result = $this->callProtected($validator, 'validateValue', $controlTotp->now());
$this->assertNull($result); $this->assertNull($result);
$result = $this->callProtected($validator, 'validateValue', $controlTotp->at(time() - 31)); $result = $this->callProtected($validator, 'validateValue', $controlTotp->at(time() - 31));
$this->assertEquals([E::TOTP_INCORRECT, []], $result); $this->assertSame([E::TOTP_INCORRECT, []], $result);
$validator->window = 2; $validator->window = 2;
$result = $this->callProtected($validator, 'validateValue', $controlTotp->at(time() - 31)); $result = $this->callProtected($validator, 'validateValue', $controlTotp->at(time() - 31));
@ -34,7 +34,7 @@ class TotpValidatorTest extends TestCase {
$at = time() - 400; $at = time() - 400;
$validator->timestamp = $at; $validator->timestamp = $at;
$result = $this->callProtected($validator, 'validateValue', $controlTotp->now()); $result = $this->callProtected($validator, 'validateValue', $controlTotp->now());
$this->assertEquals([E::TOTP_INCORRECT, []], $result); $this->assertSame([E::TOTP_INCORRECT, []], $result);
$result = $this->callProtected($validator, 'validateValue', $controlTotp->at($at)); $result = $this->callProtected($validator, 'validateValue', $controlTotp->at($at));
$this->assertNull($result); $this->assertNull($result);

View File

@ -8,8 +8,8 @@ $time = microtime(true);
require __DIR__ . '/../../vendor/autoload.php'; require __DIR__ . '/../../vendor/autoload.php';
defined('YII_DEBUG') or define('YII_DEBUG', in_array(getenv('YII_DEBUG'), ['true', '1'])); defined('YII_DEBUG') || define('YII_DEBUG', in_array(getenv('YII_DEBUG'), ['true', '1']));
defined('YII_ENV') or define('YII_ENV', getenv('YII_ENV')); defined('YII_ENV') || define('YII_ENV', getenv('YII_ENV'));
// Initialize an application aspect container // Initialize an application aspect container
AspectKernel::getInstance()->init([ AspectKernel::getInstance()->init([

View File

@ -18,7 +18,7 @@ class PrimaryKeyValueBehavior extends Behavior {
*/ */
public $value; public $value;
public function events() { public function events(): array {
return [ return [
ActiveRecord::EVENT_BEFORE_INSERT => 'setPrimaryKeyValue', ActiveRecord::EVENT_BEFORE_INSERT => 'setPrimaryKeyValue',
]; ];
@ -32,7 +32,7 @@ class PrimaryKeyValueBehavior extends Behavior {
return true; return true;
} }
public function refreshPrimaryKeyValue() { public function refreshPrimaryKeyValue(): void {
do { do {
$key = $this->generateValue(); $key = $this->generateValue();
} while ($this->isValueExists($key)); } while ($this->isValueExists($key));
@ -45,15 +45,18 @@ class PrimaryKeyValueBehavior extends Behavior {
} }
protected function isValueExists(string $key): bool { protected function isValueExists(string $key): bool {
return $this->owner->find()->andWhere([$this->getPrimaryKeyName() => $key])->exists(); $owner = $this->owner;
return $owner::find()->andWhere([$this->getPrimaryKeyName() => $key])->exists();
} }
protected function getPrimaryKeyName(): string { protected function getPrimaryKeyName(): string {
$owner = $this->owner; $owner = $this->owner;
$primaryKeys = $owner->primaryKey(); $primaryKeys = $owner::primaryKey();
if (!isset($primaryKeys[0])) { if (!isset($primaryKeys[0])) {
throw new InvalidConfigException('"' . get_class($owner) . '" must have a primary key.'); throw new InvalidConfigException('"' . get_class($owner) . '" must have a primary key.');
} elseif (count($primaryKeys) > 1) { }
if (count($primaryKeys) > 1) {
throw new InvalidConfigException('Current behavior don\'t support models with more then one primary key.'); throw new InvalidConfigException('Current behavior don\'t support models with more then one primary key.');
} }

View File

@ -26,7 +26,9 @@ class Api {
$response = $this->getClient()->get($this->buildUsernameToUUIDRoute($username), $query); $response = $this->getClient()->get($this->buildUsernameToUUIDRoute($username), $query);
if ($response->getStatusCode() === 204) { if ($response->getStatusCode() === 204) {
throw new NoContentException('Username not found'); throw new NoContentException('Username not found');
} elseif ($response->getStatusCode() !== 200) { }
if ($response->getStatusCode() !== 200) {
throw new MojangApiException('Unexpected request result'); throw new MojangApiException('Unexpected request result');
} }

View File

@ -45,7 +45,7 @@ class UsernameHistory extends ActiveRecord {
* @param int $afterTime * @param int $afterTime
* @return UsernameHistory|null * @return UsernameHistory|null
*/ */
public function findNext(int $afterTime = null): ?UsernameHistory { public function findNext(int $afterTime = null): ?self {
return self::find() return self::find()
->andWhere(['account_id' => $this->account_id]) ->andWhere(['account_id' => $this->account_id])
->andWhere(['>', 'applied_in', $afterTime ?: $this->applied_in]) ->andWhere(['>', 'applied_in', $afterTime ?: $this->applied_in])

View File

@ -1,7 +1,7 @@
<?php <?php
defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_DEBUG') || define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test'); defined('YII_ENV') || define('YII_ENV', 'test');
defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', __DIR__ . '/../../'); defined('YII_APP_BASE_PATH') || define('YII_APP_BASE_PATH', __DIR__ . '/../../');
require_once __DIR__ . '/../../vendor/autoload.php'; require_once __DIR__ . '/../../vendor/autoload.php';
require_once __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php'; require_once __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php';

View File

@ -17,7 +17,7 @@ class DataBehaviorTest extends TestCase {
/** @var DataBehavior $behavior */ /** @var DataBehavior $behavior */
$behavior = $model->behaviors['dataBehavior']; $behavior = $model->behaviors['dataBehavior'];
$this->callProtected($behavior, 'setKey', 'my-key', 'my-value'); $this->callProtected($behavior, 'setKey', 'my-key', 'my-value');
$this->assertEquals(serialize(['my-key' => 'my-value']), $model->_data); $this->assertSame(serialize(['my-key' => 'my-value']), $model->_data);
} }
public function testGetKey() { public function testGetKey() {
@ -25,7 +25,7 @@ class DataBehaviorTest extends TestCase {
$model->_data = serialize(['some-key' => 'some-value']); $model->_data = serialize(['some-key' => 'some-value']);
/** @var DataBehavior $behavior */ /** @var DataBehavior $behavior */
$behavior = $model->behaviors['dataBehavior']; $behavior = $model->behaviors['dataBehavior'];
$this->assertEquals('some-value', $this->callProtected($behavior, 'getKey', 'some-key')); $this->assertSame('some-value', $this->callProtected($behavior, 'getKey', 'some-key'));
} }
public function testGetData() { public function testGetData() {

View File

@ -15,7 +15,7 @@ class EmailActivationExpirationBehaviorTest extends TestCase {
$behavior = $this->createBehavior(); $behavior = $this->createBehavior();
$time = time(); $time = time();
$behavior->owner->created_at = $time; $behavior->owner->created_at = $time;
$this->assertEquals($time + 10, $this->callProtected($behavior, 'calculateTime', 10)); $this->assertSame($time + 10, $this->callProtected($behavior, 'calculateTime', 10));
} }
public function testCompareTime() { public function testCompareTime() {

View File

@ -31,8 +31,8 @@ class ApiTest extends TestCase {
$this->handler->append(new Response(200, [], '{"id": "7125ba8b1c864508b92bb5c042ccfe2b","name": "KrisJelbring"}')); $this->handler->append(new Response(200, [], '{"id": "7125ba8b1c864508b92bb5c042ccfe2b","name": "KrisJelbring"}'));
$response = (new Api())->usernameToUUID('KrisJelbring'); $response = (new Api())->usernameToUUID('KrisJelbring');
$this->assertInstanceOf(UsernameToUUIDResponse::class, $response); $this->assertInstanceOf(UsernameToUUIDResponse::class, $response);
$this->assertEquals('7125ba8b1c864508b92bb5c042ccfe2b', $response->id); $this->assertSame('7125ba8b1c864508b92bb5c042ccfe2b', $response->id);
$this->assertEquals('KrisJelbring', $response->name); $this->assertSame('KrisJelbring', $response->name);
} }
/** /**

View File

@ -10,7 +10,7 @@ class QueryBuilderTest extends TestCase {
public function testBuildOrderByField() { public function testBuildOrderByField() {
$queryBuilder = new QueryBuilder(Yii::$app->db); $queryBuilder = new QueryBuilder(Yii::$app->db);
$result = $queryBuilder->buildOrderBy(['dummy' => ['first', 'second']]); $result = $queryBuilder->buildOrderBy(['dummy' => ['first', 'second']]);
$this->assertEquals("ORDER BY FIELD(`dummy`,'first','second')", $result); $this->assertSame("ORDER BY FIELD(`dummy`,'first','second')", $result);
} }
} }

View File

@ -14,7 +14,7 @@ class TemplateTest extends TestCase {
public function testConstructor() { public function testConstructor() {
/** @var Template|\Mockery\MockInterface $template */ /** @var Template|\Mockery\MockInterface $template */
$template = mock(Template::class, ['find-me'])->makePartial(); $template = mock(Template::class, ['find-me'])->makePartial();
$this->assertEquals('find-me', $template->getTo()); $this->assertSame('find-me', $template->getTo());
$this->assertInstanceOf(MailerInterface::class, $template->getMailer()); $this->assertInstanceOf(MailerInterface::class, $template->getMailer());
} }
@ -22,13 +22,13 @@ class TemplateTest extends TestCase {
Yii::$app->params['fromEmail'] = 'find-me'; Yii::$app->params['fromEmail'] = 'find-me';
/** @var Template|\Mockery\MockInterface $template */ /** @var Template|\Mockery\MockInterface $template */
$template = mock(Template::class)->makePartial(); $template = mock(Template::class)->makePartial();
$this->assertEquals(['find-me' => 'Ely.by Accounts'], $template->getFrom()); $this->assertSame(['find-me' => 'Ely.by Accounts'], $template->getFrom());
} }
public function testGetParams() { public function testGetParams() {
/** @var Template|\Mockery\MockInterface $template */ /** @var Template|\Mockery\MockInterface $template */
$template = mock(Template::class)->makePartial(); $template = mock(Template::class)->makePartial();
$this->assertEquals([], $template->getParams()); $this->assertSame([], $template->getParams());
} }
public function testCreateMessage() { public function testCreateMessage() {
@ -39,9 +39,9 @@ class TemplateTest extends TestCase {
/** @var MessageInterface $message */ /** @var MessageInterface $message */
$message = $this->callProtected($template, 'createMessage'); $message = $this->callProtected($template, 'createMessage');
$this->assertInstanceOf(MessageInterface::class, $message); $this->assertInstanceOf(MessageInterface::class, $message);
$this->assertEquals(['to@ely.by' => 'To'], $message->getTo()); $this->assertSame(['to@ely.by' => 'To'], $message->getTo());
$this->assertEquals(['from@ely.by' => 'Ely.by Accounts'], $message->getFrom()); $this->assertSame(['from@ely.by' => 'Ely.by Accounts'], $message->getFrom());
$this->assertEquals('mock-subject', $message->getSubject()); $this->assertSame('mock-subject', $message->getSubject());
} }
} }

View File

@ -15,8 +15,8 @@ class TemplateWithRendererTest extends TestCase {
public function testConstructor() { public function testConstructor() {
/** @var TemplateWithRenderer|\Mockery\MockInterface $template */ /** @var TemplateWithRenderer|\Mockery\MockInterface $template */
$template = mock(TemplateWithRenderer::class, ['mock-to', 'mock-locale'])->makePartial(); $template = mock(TemplateWithRenderer::class, ['mock-to', 'mock-locale'])->makePartial();
$this->assertEquals('mock-to', $template->getTo()); $this->assertSame('mock-to', $template->getTo());
$this->assertEquals('mock-locale', $template->getLocale()); $this->assertSame('mock-locale', $template->getLocale());
$this->assertInstanceOf(MailerInterface::class, $template->getMailer()); $this->assertInstanceOf(MailerInterface::class, $template->getMailer());
$this->assertInstanceOf(EmailRenderer::class, $template->getEmailRenderer()); $this->assertInstanceOf(EmailRenderer::class, $template->getEmailRenderer());
} }
@ -40,10 +40,10 @@ class TemplateWithRendererTest extends TestCase {
/** @var \yii\swiftmailer\Message $message */ /** @var \yii\swiftmailer\Message $message */
$message = $this->callProtected($template, 'createMessage'); $message = $this->callProtected($template, 'createMessage');
$this->assertInstanceOf(MessageInterface::class, $message); $this->assertInstanceOf(MessageInterface::class, $message);
$this->assertEquals(['to@ely.by' => 'To'], $message->getTo()); $this->assertSame(['to@ely.by' => 'To'], $message->getTo());
$this->assertEquals(['from@ely.by' => 'From'], $message->getFrom()); $this->assertSame(['from@ely.by' => 'From'], $message->getFrom());
$this->assertEquals('mock-subject', $message->getSubject()); $this->assertSame('mock-subject', $message->getSubject());
$this->assertEquals('mock-html', $message->getSwiftMessage()->getBody()); $this->assertSame('mock-html', $message->getSwiftMessage()->getBody());
} }
} }

View File

@ -7,11 +7,11 @@ use common\tests\unit\TestCase;
class StringHelperTest extends TestCase { class StringHelperTest extends TestCase {
public function testGetEmailMask() { public function testGetEmailMask() {
$this->assertEquals('**@ely.by', StringHelper::getEmailMask('e@ely.by')); $this->assertSame('**@ely.by', StringHelper::getEmailMask('e@ely.by'));
$this->assertEquals('e**@ely.by', StringHelper::getEmailMask('es@ely.by')); $this->assertSame('e**@ely.by', StringHelper::getEmailMask('es@ely.by'));
$this->assertEquals('e**i@ely.by', StringHelper::getEmailMask('eri@ely.by')); $this->assertSame('e**i@ely.by', StringHelper::getEmailMask('eri@ely.by'));
$this->assertEquals('er**ch@ely.by', StringHelper::getEmailMask('erickskrauch@ely.by')); $this->assertSame('er**ch@ely.by', StringHelper::getEmailMask('erickskrauch@ely.by'));
$this->assertEquals('эр**уч@елу.бел', StringHelper::getEmailMask('эрикскрауч@елу.бел')); $this->assertSame('эр**уч@елу.бел', StringHelper::getEmailMask('эрикскрауч@елу.бел'));
} }
public function testIsUuid() { public function testIsUuid() {
@ -25,7 +25,7 @@ class StringHelperTest extends TestCase {
*/ */
public function testTrim($expected, $string) { public function testTrim($expected, $string) {
$result = StringHelper::trim($string); $result = StringHelper::trim($string);
$this->assertEquals($expected, $result); $this->assertSame($expected, $result);
} }
/** /**

View File

@ -15,13 +15,13 @@ class AccountSessionTest extends TestCase {
public function testSetIp() { public function testSetIp() {
$model = new AccountSession(); $model = new AccountSession();
$model->setIp('127.0.0.1'); $model->setIp('127.0.0.1');
$this->assertEquals(2130706433, $model->last_used_ip, 'method should convert passed ip string to long'); $this->assertSame(2130706433, $model->last_used_ip, 'method should convert passed ip string to long');
} }
public function testGetReadableIp() { public function testGetReadableIp() {
$model = new AccountSession(); $model = new AccountSession();
$model->last_used_ip = 2130706433; $model->last_used_ip = 2130706433;
$this->assertEquals('127.0.0.1', $model->getReadableIp(), 'method should convert stored long into readable ip'); $this->assertSame('127.0.0.1', $model->getReadableIp(), 'method should convert stored long into readable ip');
} }
} }

View File

@ -23,7 +23,7 @@ class AccountTest extends TestCase {
$model->setPassword('12345678'); $model->setPassword('12345678');
$this->assertNotEmpty($model->password_hash, 'hash should be set'); $this->assertNotEmpty($model->password_hash, 'hash should be set');
$this->assertTrue($model->validatePassword('12345678'), 'validation should be passed'); $this->assertTrue($model->validatePassword('12345678'), 'validation should be passed');
$this->assertEquals(Account::PASS_HASH_STRATEGY_YII2, $model->password_hash_strategy, 'latest password hash should be used'); $this->assertSame(Account::PASS_HASH_STRATEGY_YII2, $model->password_hash_strategy, 'latest password hash should be used');
} }
public function testValidatePassword() { public function testValidatePassword() {
@ -83,7 +83,7 @@ class AccountTest extends TestCase {
public function testGetProfileLink() { public function testGetProfileLink() {
$model = new Account(); $model = new Account();
$model->id = '123'; $model->id = '123';
$this->assertEquals('http://ely.by/u123', $model->getProfileLink()); $this->assertSame('http://ely.by/u123', $model->getProfileLink());
} }
public function testIsAgreedWithActualRules() { public function testIsAgreedWithActualRules() {
@ -108,9 +108,9 @@ class AccountTest extends TestCase {
public function testSetRegistrationIp() { public function testSetRegistrationIp() {
$account = new Account(); $account = new Account();
$account->setRegistrationIp('42.72.205.204'); $account->setRegistrationIp('42.72.205.204');
$this->assertEquals('42.72.205.204', inet_ntop($account->registration_ip)); $this->assertSame('42.72.205.204', inet_ntop($account->registration_ip));
$account->setRegistrationIp('2001:1620:28:1:b6f:8bca:93:a116'); $account->setRegistrationIp('2001:1620:28:1:b6f:8bca:93:a116');
$this->assertEquals('2001:1620:28:1:b6f:8bca:93:a116', inet_ntop($account->registration_ip)); $this->assertSame('2001:1620:28:1:b6f:8bca:93:a116', inet_ntop($account->registration_ip));
$account->setRegistrationIp(null); $account->setRegistrationIp(null);
$this->assertNull($account->registration_ip); $this->assertNull($account->registration_ip);
} }
@ -118,9 +118,9 @@ class AccountTest extends TestCase {
public function testGetRegistrationIp() { public function testGetRegistrationIp() {
$account = new Account(); $account = new Account();
$account->setRegistrationIp('42.72.205.204'); $account->setRegistrationIp('42.72.205.204');
$this->assertEquals('42.72.205.204', $account->getRegistrationIp()); $this->assertSame('42.72.205.204', $account->getRegistrationIp());
$account->setRegistrationIp('2001:1620:28:1:b6f:8bca:93:a116'); $account->setRegistrationIp('2001:1620:28:1:b6f:8bca:93:a116');
$this->assertEquals('2001:1620:28:1:b6f:8bca:93:a116', $account->getRegistrationIp()); $this->assertSame('2001:1620:28:1:b6f:8bca:93:a116', $account->getRegistrationIp());
$account->setRegistrationIp(null); $account->setRegistrationIp(null);
$this->assertNull($account->getRegistrationIp()); $this->assertNull($account->getRegistrationIp());
} }

View File

@ -29,7 +29,7 @@ class ClearOauthSessionsTest extends TestCase {
$result = ClearOauthSessions::createFromOauthClient($client, time()); $result = ClearOauthSessions::createFromOauthClient($client, time());
$this->assertInstanceOf(ClearOauthSessions::class, $result); $this->assertInstanceOf(ClearOauthSessions::class, $result);
$this->assertSame('mocked-id', $result->clientId); $this->assertSame('mocked-id', $result->clientId);
$this->assertEquals(time(), $result->notSince, '', 1); $this->assertEqualsWithDelta(time(), $result->notSince, 1);
} }
public function testExecute() { public function testExecute() {

View File

@ -53,7 +53,7 @@ class DeliveryWebHookTest extends TestCase {
$this->assertSame('account.edit', $request->getHeaders()['X-Ely-Accounts-Event'][0]); $this->assertSame('account.edit', $request->getHeaders()['X-Ely-Accounts-Event'][0]);
$this->assertSame('application/x-www-form-urlencoded', $request->getHeaders()['Content-Type'][0]); $this->assertSame('application/x-www-form-urlencoded', $request->getHeaders()['Content-Type'][0]);
$this->assertArrayNotHasKey('X-Hub-Signature', $request->getHeaders()); $this->assertArrayNotHasKey('X-Hub-Signature', $request->getHeaders());
$this->assertEquals('key=value&another=value', (string)$request->getBody()); $this->assertSame('key=value&another=value', (string)$request->getBody());
} }
public function testExecuteSuccessDeliveryWithSignature() { public function testExecuteSuccessDeliveryWithSignature() {
@ -74,7 +74,7 @@ class DeliveryWebHookTest extends TestCase {
$this->assertSame('account.edit', $request->getHeaders()['X-Ely-Accounts-Event'][0]); $this->assertSame('account.edit', $request->getHeaders()['X-Ely-Accounts-Event'][0]);
$this->assertSame('application/x-www-form-urlencoded', $request->getHeaders()['Content-Type'][0]); $this->assertSame('application/x-www-form-urlencoded', $request->getHeaders()['Content-Type'][0]);
$this->assertSame('sha1=3c0b1eef564b2d3a5e9c0f2a8302b1b42b3d4784', $request->getHeaders()['X-Hub-Signature'][0]); $this->assertSame('sha1=3c0b1eef564b2d3a5e9c0f2a8302b1b42b3d4784', $request->getHeaders()['X-Hub-Signature'][0]);
$this->assertEquals('key=value&another=value', (string)$request->getBody()); $this->assertSame('key=value&another=value', (string)$request->getBody());
} }
public function testExecuteHandleClientException() { public function testExecuteHandleClientException() {

View File

@ -142,7 +142,7 @@ class PullMojangUsernameTest extends TestCase {
/** @var MojangUsername|null $mojangUsername */ /** @var MojangUsername|null $mojangUsername */
$mojangUsername = MojangUsername::findOne($username); $mojangUsername = MojangUsername::findOne($username);
$this->assertInstanceOf(MojangUsername::class, $mojangUsername); $this->assertInstanceOf(MojangUsername::class, $mojangUsername);
$this->assertNotEquals($mojangInfo->uuid, $mojangUsername->uuid); $this->assertNotSame($mojangInfo->uuid, $mojangUsername->uuid);
} }
} }

View File

@ -26,18 +26,18 @@ class EmailValidatorTest extends TestCase {
$model = $this->createModel("testemail@ely.by\u{feff}"); // Zero width no-break space (U+FEFF) $model = $this->createModel("testemail@ely.by\u{feff}"); // Zero width no-break space (U+FEFF)
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.email_invalid'], $model->getErrors('field')); $this->assertSame(['error.email_invalid'], $model->getErrors('field'));
$this->assertEquals('testemail@ely.by', $model->field); $this->assertSame('testemail@ely.by', $model->field);
} }
public function testValidateAttributeRequired() { public function testValidateAttributeRequired() {
$model = $this->createModel(''); $model = $this->createModel('');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.email_required'], $model->getErrors('field')); $this->assertSame(['error.email_required'], $model->getErrors('field'));
$model = $this->createModel('email'); $model = $this->createModel('email');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.email_required'], $model->getErrors('field')); $this->assertNotSame(['error.email_required'], $model->getErrors('field'));
} }
public function testValidateAttributeLength() { public function testValidateAttributeLength() {
@ -49,11 +49,11 @@ class EmailValidatorTest extends TestCase {
'@gmail.com' // = 256 symbols '@gmail.com' // = 256 symbols
); );
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.email_too_long'], $model->getErrors('field')); $this->assertSame(['error.email_too_long'], $model->getErrors('field'));
$model = $this->createModel('some-email@gmail.com'); $model = $this->createModel('some-email@gmail.com');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.email_too_long'], $model->getErrors('field')); $this->assertNotSame(['error.email_too_long'], $model->getErrors('field'));
} }
public function testValidateAttributeEmail() { public function testValidateAttributeEmail() {
@ -61,15 +61,15 @@ class EmailValidatorTest extends TestCase {
$model = $this->createModel('non-email'); $model = $this->createModel('non-email');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.email_invalid'], $model->getErrors('field')); $this->assertSame(['error.email_invalid'], $model->getErrors('field'));
$model = $this->createModel('non-email@etot-domen-ne-suschestrvyet.de'); $model = $this->createModel('non-email@etot-domen-ne-suschestrvyet.de');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.email_invalid'], $model->getErrors('field')); $this->assertSame(['error.email_invalid'], $model->getErrors('field'));
$model = $this->createModel('valid-email@gmail.com'); $model = $this->createModel('valid-email@gmail.com');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.email_invalid'], $model->getErrors('field')); $this->assertNotSame(['error.email_invalid'], $model->getErrors('field'));
} }
public function testValidateAttributeTempmail() { public function testValidateAttributeTempmail() {
@ -77,11 +77,11 @@ class EmailValidatorTest extends TestCase {
$model = $this->createModel('ibrpycwyjdnt@dropmail.me'); $model = $this->createModel('ibrpycwyjdnt@dropmail.me');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.email_is_tempmail'], $model->getErrors('field')); $this->assertSame(['error.email_is_tempmail'], $model->getErrors('field'));
$model = $this->createModel('valid-email@gmail.com'); $model = $this->createModel('valid-email@gmail.com');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.email_is_tempmail'], $model->getErrors('field')); $this->assertNotSame(['error.email_is_tempmail'], $model->getErrors('field'));
} }
public function testValidateAttributeIdna() { public function testValidateAttributeIdna() {
@ -108,19 +108,19 @@ class EmailValidatorTest extends TestCase {
$model = $this->createModel($accountFixture->email); $model = $this->createModel($accountFixture->email);
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.email_not_available'], $model->getErrors('field')); $this->assertSame(['error.email_not_available'], $model->getErrors('field'));
$model = $this->createModel($accountFixture->email); $model = $this->createModel($accountFixture->email);
$this->validator->accountCallback = function() use ($accountFixture) { $this->validator->accountCallback = function() use ($accountFixture) {
return $accountFixture->id; return $accountFixture->id;
}; };
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.email_not_available'], $model->getErrors('field')); $this->assertNotSame(['error.email_not_available'], $model->getErrors('field'));
$this->validator->accountCallback = null; $this->validator->accountCallback = null;
$model = $this->createModel('some-unique-email@gmail.com'); $model = $this->createModel('some-unique-email@gmail.com');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.email_not_available'], $model->getErrors('field')); $this->assertNotSame(['error.email_not_available'], $model->getErrors('field'));
} }
/** /**

View File

@ -11,8 +11,13 @@ class MinecraftServerAddressValidatorTest extends TestCase {
*/ */
public function testValidate($address, $shouldBeValid) { public function testValidate($address, $shouldBeValid) {
$validator = new MinecraftServerAddressValidator(); $validator = new MinecraftServerAddressValidator();
$validator->message = 'mock message';
$validator->validate($address, $errors); $validator->validate($address, $errors);
$this->assertEquals($shouldBeValid, $errors === null); if ($shouldBeValid) {
$this->assertNull($errors);
} else {
$this->assertSame('mock message', $errors);
}
} }
public function domainNames() { public function domainNames() {

View File

@ -21,33 +21,33 @@ class UsernameValidatorTest extends TestCase {
public function testValidateTrimming() { public function testValidateTrimming() {
$model = $this->createModel("HereIsJohnny#\u{feff}"); // Zero width no-break space (U+FEFF) $model = $this->createModel("HereIsJohnny#\u{feff}"); // Zero width no-break space (U+FEFF)
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.username_invalid'], $model->getErrors('field')); $this->assertSame(['error.username_invalid'], $model->getErrors('field'));
$this->assertEquals('HereIsJohnny#', $model->field); $this->assertSame('HereIsJohnny#', $model->field);
} }
public function testValidateAttributeRequired() { public function testValidateAttributeRequired() {
$model = $this->createModel(''); $model = $this->createModel('');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.username_required'], $model->getErrors('field')); $this->assertSame(['error.username_required'], $model->getErrors('field'));
$model = $this->createModel('username'); $model = $this->createModel('username');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.username_required'], $model->getErrors('field')); $this->assertNotSame(['error.username_required'], $model->getErrors('field'));
} }
public function testValidateAttributeLength() { public function testValidateAttributeLength() {
$model = $this->createModel('at'); $model = $this->createModel('at');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.username_too_short'], $model->getErrors('field')); $this->assertSame(['error.username_too_short'], $model->getErrors('field'));
$model = $this->createModel('erickskrauch_erickskrauch'); $model = $this->createModel('erickskrauch_erickskrauch');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.username_too_long'], $model->getErrors('field')); $this->assertSame(['error.username_too_long'], $model->getErrors('field'));
$model = $this->createModel('username'); $model = $this->createModel('username');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.username_too_short'], $model->getErrors('field')); $this->assertNotSame(['error.username_too_short'], $model->getErrors('field'));
$this->assertNotEquals(['error.username_too_long'], $model->getErrors('field')); $this->assertNotSame(['error.username_too_long'], $model->getErrors('field'));
} }
// TODO: rewrite this test with @provider usage // TODO: rewrite this test with @provider usage
@ -59,7 +59,7 @@ class UsernameValidatorTest extends TestCase {
foreach ($shouldBeValid as $nickname) { foreach ($shouldBeValid as $nickname) {
$model = $this->createModel($nickname); $model = $this->createModel($nickname);
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.username_invalid'], $model->getErrors('field')); $this->assertNotSame(['error.username_invalid'], $model->getErrors('field'));
} }
$shouldBeInvalid = [ $shouldBeInvalid = [
@ -68,7 +68,7 @@ class UsernameValidatorTest extends TestCase {
foreach ($shouldBeInvalid as $nickname) { foreach ($shouldBeInvalid as $nickname) {
$model = $this->createModel($nickname); $model = $this->createModel($nickname);
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.username_invalid'], $model->getErrors('field')); $this->assertSame(['error.username_invalid'], $model->getErrors('field'));
} }
} }
@ -82,19 +82,19 @@ class UsernameValidatorTest extends TestCase {
$model = $this->createModel($accountFixture->username); $model = $this->createModel($accountFixture->username);
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertEquals(['error.username_not_available'], $model->getErrors('field')); $this->assertSame(['error.username_not_available'], $model->getErrors('field'));
$model = $this->createModel($accountFixture->username); $model = $this->createModel($accountFixture->username);
$this->validator->accountCallback = function() use ($accountFixture) { $this->validator->accountCallback = function() use ($accountFixture) {
return $accountFixture->id; return $accountFixture->id;
}; };
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.username_not_available'], $model->getErrors('field')); $this->assertNotSame(['error.username_not_available'], $model->getErrors('field'));
$this->validator->accountCallback = null; $this->validator->accountCallback = null;
$model = $this->createModel('some-unique-username'); $model = $this->createModel('some-unique-username');
$this->validator->validateAttribute($model, 'field'); $this->validator->validateAttribute($model, 'field');
$this->assertNotEquals(['error.username_not_available'], $model->getErrors('field')); $this->assertNotSame(['error.username_not_available'], $model->getErrors('field'));
} }
/** /**

View File

@ -16,7 +16,7 @@ class UuidValidatorTest extends TestCase {
$model = $this->createModel(); $model = $this->createModel();
$validator->validateAttribute($model, 'attribute'); $validator->validateAttribute($model, 'attribute');
$this->assertTrue($model->hasErrors()); $this->assertTrue($model->hasErrors());
$this->assertEquals(['Attribute must be valid uuid'], $model->getErrors('attribute')); $this->assertSame(['Attribute must be valid uuid'], $model->getErrors('attribute'));
}); });
$this->specify('expected error if passed invalid string', function() { $this->specify('expected error if passed invalid string', function() {
@ -25,7 +25,7 @@ class UuidValidatorTest extends TestCase {
$model->attribute = '123456789'; $model->attribute = '123456789';
$validator->validateAttribute($model, 'attribute'); $validator->validateAttribute($model, 'attribute');
$this->assertTrue($model->hasErrors()); $this->assertTrue($model->hasErrors());
$this->assertEquals(['Attribute must be valid uuid'], $model->getErrors('attribute')); $this->assertSame(['Attribute must be valid uuid'], $model->getErrors('attribute'));
}); });
$this->specify('no errors if passed nil uuid and allowNil is set to true', function() { $this->specify('no errors if passed nil uuid and allowNil is set to true', function() {
@ -43,7 +43,7 @@ class UuidValidatorTest extends TestCase {
$model->attribute = '00000000-0000-0000-0000-000000000000'; $model->attribute = '00000000-0000-0000-0000-000000000000';
$validator->validateAttribute($model, 'attribute'); $validator->validateAttribute($model, 'attribute');
$this->assertTrue($model->hasErrors()); $this->assertTrue($model->hasErrors());
$this->assertEquals(['Attribute must be valid uuid'], $model->getErrors('attribute')); $this->assertSame(['Attribute must be valid uuid'], $model->getErrors('attribute'));
}); });
$this->specify('no errors if passed valid uuid', function() { $this->specify('no errors if passed valid uuid', function() {
@ -61,7 +61,7 @@ class UuidValidatorTest extends TestCase {
$model->attribute = str_replace('-', '', $originalUuid); $model->attribute = str_replace('-', '', $originalUuid);
$validator->validateAttribute($model, 'attribute'); $validator->validateAttribute($model, 'attribute');
$this->assertFalse($model->hasErrors()); $this->assertFalse($model->hasErrors());
$this->assertEquals($originalUuid, $model->attribute); $this->assertSame($originalUuid, $model->attribute);
}); });
} }

View File

@ -7,6 +7,7 @@
"require": { "require": {
"php": "^7.2", "php": "^7.2",
"ext-json": "*", "ext-json": "*",
"ext-mbstring": "*",
"ext-pdo": "*", "ext-pdo": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-simplexml": "*", "ext-simplexml": "*",
@ -37,7 +38,7 @@
"codeception/verify": "*", "codeception/verify": "*",
"mockery/mockery": "^1.0.0", "mockery/mockery": "^1.0.0",
"php-mock/php-mock-mockery": "^1.2.0", "php-mock/php-mock-mockery": "^1.2.0",
"ely/php-code-style": "^0.1.0", "ely/php-code-style": "^0.3.0",
"predis/predis": "^1.1", "predis/predis": "^1.1",
"roave/security-advisories": "dev-master" "roave/security-advisories": "dev-master"
}, },

56
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "c0a5d0472eaecefbba5199888a4232ae", "content-hash": "edb3d935ad36f30c49f8a4db6132747a",
"packages": [ "packages": [
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -118,8 +118,7 @@
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5e670ad62f50c738388d4dcec78d2888505ad77b", "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5e670ad62f50c738388d4dcec78d2888505ad77b",
"reference": "5e670ad62f50c738388d4dcec78d2888505ad77b", "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b"
"shasum": null
}, },
"require": { "require": {
"bower-asset/jquery": ">=1.7" "bower-asset/jquery": ">=1.7"
@ -140,8 +139,7 @@
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/jquery/jquery-dist/zipball/77d2a51d0520d2ee44173afdf4e40a9201f5964e", "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/77d2a51d0520d2ee44173afdf4e40a9201f5964e",
"reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e"
"shasum": null
}, },
"type": "bower-asset", "type": "bower-asset",
"license": [ "license": [
@ -159,8 +157,7 @@
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3", "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3",
"reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3", "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3"
"shasum": null
}, },
"type": "bower-asset" "type": "bower-asset"
}, },
@ -175,8 +172,7 @@
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/getsentry/raven-js-bower/zipball/c8b3a6040be6928e2f57fa5eec4d7afc31750235", "url": "https://api.github.com/repos/getsentry/raven-js-bower/zipball/c8b3a6040be6928e2f57fa5eec4d7afc31750235",
"reference": "c8b3a6040be6928e2f57fa5eec4d7afc31750235", "reference": "c8b3a6040be6928e2f57fa5eec4d7afc31750235"
"shasum": null
}, },
"type": "bower-asset" "type": "bower-asset"
}, },
@ -191,8 +187,7 @@
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be", "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be",
"reference": "aef7b953107264f00234902a3880eb50dafc48be", "reference": "aef7b953107264f00234902a3880eb50dafc48be"
"shasum": null
}, },
"require": { "require": {
"bower-asset/jquery": ">=1.8" "bower-asset/jquery": ">=1.8"
@ -2398,8 +2393,7 @@
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twbs/bootstrap/zipball/68b0d231a13201eb14acd3dc84e51543d16e5f7e", "url": "https://api.github.com/repos/twbs/bootstrap/zipball/68b0d231a13201eb14acd3dc84e51543d16e5f7e",
"reference": "68b0d231a13201eb14acd3dc84e51543d16e5f7e", "reference": "68b0d231a13201eb14acd3dc84e51543d16e5f7e"
"shasum": null
}, },
"require": { "require": {
"bower-asset/jquery": ">=1.9.1,<4.0" "bower-asset/jquery": ">=1.9.1,<4.0"
@ -2814,24 +2808,24 @@
}, },
{ {
"name": "ely/php-code-style", "name": "ely/php-code-style",
"version": "0.1.0", "version": "0.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/elyby/php-code-style.git", "url": "https://github.com/elyby/php-code-style.git",
"reference": "0bb3e8082753981af4775f5b95d159c9cd9c6bf4" "reference": "2140798d0aca85f4fa3e70c77bfef066ce115d1a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/elyby/php-code-style/zipball/0bb3e8082753981af4775f5b95d159c9cd9c6bf4", "url": "https://api.github.com/repos/elyby/php-code-style/zipball/2140798d0aca85f4fa3e70c77bfef066ce115d1a",
"reference": "0bb3e8082753981af4775f5b95d159c9cd9c6bf4", "reference": "2140798d0aca85f4fa3e70c77bfef066ce115d1a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"friendsofphp/php-cs-fixer": "^2.11", "friendsofphp/php-cs-fixer": "^2.13.0",
"php": "^7.0" "php": "^7.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.0" "phpunit/phpunit": "^6.5.1"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -2859,7 +2853,7 @@
"Code style", "Code style",
"php-cs-fixer" "php-cs-fixer"
], ],
"time": "2018-04-17T18:28:51+00:00" "time": "2019-02-23T17:29:08+00:00"
}, },
{ {
"name": "facebook/webdriver", "name": "facebook/webdriver",
@ -2964,27 +2958,27 @@
}, },
{ {
"name": "friendsofphp/php-cs-fixer", "name": "friendsofphp/php-cs-fixer",
"version": "v2.12.2", "version": "v2.14.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
"reference": "dcc87d5414e9d0bd316fce81a5bedb9ce720b183" "reference": "ff401e58261ffc5934a58f795b3f95b355e276cb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/dcc87d5414e9d0bd316fce81a5bedb9ce720b183", "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/ff401e58261ffc5934a58f795b3f95b355e276cb",
"reference": "dcc87d5414e9d0bd316fce81a5bedb9ce720b183", "reference": "ff401e58261ffc5934a58f795b3f95b355e276cb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer/semver": "^1.4", "composer/semver": "^1.4",
"composer/xdebug-handler": "^1.0", "composer/xdebug-handler": "^1.2",
"doctrine/annotations": "^1.2", "doctrine/annotations": "^1.2",
"ext-json": "*", "ext-json": "*",
"ext-tokenizer": "*", "ext-tokenizer": "*",
"php": "^5.6 || >=7.0 <7.3", "php": "^5.6 || ^7.0",
"php-cs-fixer/diff": "^1.3", "php-cs-fixer/diff": "^1.3",
"symfony/console": "^3.2 || ^4.0", "symfony/console": "^3.4.17 || ^4.1.6",
"symfony/event-dispatcher": "^3.0 || ^4.0", "symfony/event-dispatcher": "^3.0 || ^4.0",
"symfony/filesystem": "^3.0 || ^4.0", "symfony/filesystem": "^3.0 || ^4.0",
"symfony/finder": "^3.0 || ^4.0", "symfony/finder": "^3.0 || ^4.0",
@ -2994,13 +2988,10 @@
"symfony/process": "^3.0 || ^4.0", "symfony/process": "^3.0 || ^4.0",
"symfony/stopwatch": "^3.0 || ^4.0" "symfony/stopwatch": "^3.0 || ^4.0"
}, },
"conflict": {
"hhvm": "*"
},
"require-dev": { "require-dev": {
"johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0",
"justinrainbow/json-schema": "^5.0", "justinrainbow/json-schema": "^5.0",
"keradus/cli-executor": "^1.1", "keradus/cli-executor": "^1.2",
"mikey179/vfsstream": "^1.6", "mikey179/vfsstream": "^1.6",
"php-coveralls/php-coveralls": "^2.1", "php-coveralls/php-coveralls": "^2.1",
"php-cs-fixer/accessible-object": "^1.0", "php-cs-fixer/accessible-object": "^1.0",
@ -3051,7 +3042,7 @@
} }
], ],
"description": "A tool to automatically fix PHP code style", "description": "A tool to automatically fix PHP code style",
"time": "2018-07-06T10:37:40+00:00" "time": "2019-02-17T17:44:13+00:00"
}, },
{ {
"name": "fzaninotto/faker", "name": "fzaninotto/faker",
@ -5876,6 +5867,7 @@
"platform": { "platform": {
"php": "^7.2", "php": "^7.2",
"ext-json": "*", "ext-json": "*",
"ext-mbstring": "*",
"ext-pdo": "*", "ext-pdo": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-simplexml": "*" "ext-simplexml": "*"

View File

@ -8,10 +8,10 @@ class m171222_200114_migrate_to_utf8md4_unicode_ci extends Migration {
$this->execute('SET FOREIGN_KEY_CHECKS=0'); $this->execute('SET FOREIGN_KEY_CHECKS=0');
$dbName = $this->db->createCommand('SELECT DATABASE()')->queryScalar(); $dbName = $this->db->createCommand('SELECT DATABASE()')->queryScalar();
$this->execute("ALTER DATABASE {{%$dbName}} CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci"); $this->execute("ALTER DATABASE {{%{$dbName}}} CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci");
$tables = $this->db->createCommand('SHOW TABLES')->queryColumn(); $tables = $this->db->createCommand('SHOW TABLES')->queryColumn();
foreach ($tables as $table) { foreach ($tables as $table) {
$this->execute("ALTER TABLE {{%$table}} CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"); $this->execute("ALTER TABLE {{%{$table}}} CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
} }
$this->execute('ALTER TABLE {{%usernames_history}} MODIFY username VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL'); $this->execute('ALTER TABLE {{%usernames_history}} MODIFY username VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL');
@ -23,10 +23,10 @@ class m171222_200114_migrate_to_utf8md4_unicode_ci extends Migration {
$this->execute('SET FOREIGN_KEY_CHECKS=0'); $this->execute('SET FOREIGN_KEY_CHECKS=0');
$dbName = $this->db->createCommand('SELECT DATABASE()')->queryScalar(); $dbName = $this->db->createCommand('SELECT DATABASE()')->queryScalar();
$this->execute("ALTER DATABASE {{%$dbName}} CHARACTER SET = utf8 COLLATE = utf8_general_ci"); $this->execute("ALTER DATABASE {{%{$dbName}}} CHARACTER SET = utf8 COLLATE = utf8_general_ci");
$tables = $this->db->createCommand('SHOW TABLES')->queryColumn(); $tables = $this->db->createCommand('SHOW TABLES')->queryColumn();
foreach ($tables as $table) { foreach ($tables as $table) {
$this->execute("ALTER TABLE {{%$table}} CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"); $this->execute("ALTER TABLE {{%{$table}}} CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
} }
$this->execute('ALTER TABLE {{%usernames_history}} MODIFY username VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL'); $this->execute('ALTER TABLE {{%usernames_history}} MODIFY username VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL');

View File

@ -1,8 +1,8 @@
<?php <?php
defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_DEBUG') || define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test'); defined('YII_ENV') || define('YII_ENV', 'test');
defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', __DIR__ . '/../../'); defined('YII_APP_BASE_PATH') || define('YII_APP_BASE_PATH', __DIR__ . '/../../');
require_once YII_APP_BASE_PATH . '/vendor/autoload.php'; require_once YII_APP_BASE_PATH . '/vendor/autoload.php';
require_once YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php'; require_once YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php';

View File

@ -30,7 +30,7 @@ class CleanupControllerTest extends TestCase {
$expiredConfirmation = $this->tester->grabFixture('emailActivations', 'deeplyExpiredConfirmation'); $expiredConfirmation = $this->tester->grabFixture('emailActivations', 'deeplyExpiredConfirmation');
$controller = new CleanupController('cleanup', Yii::$app); $controller = new CleanupController('cleanup', Yii::$app);
$this->assertEquals(0, $controller->actionEmailKeys()); $this->assertSame(0, $controller->actionEmailKeys());
$this->tester->cantSeeRecord(EmailActivation::class, ['key' => $expiredConfirmation->key]); $this->tester->cantSeeRecord(EmailActivation::class, ['key' => $expiredConfirmation->key]);
} }
@ -40,7 +40,7 @@ class CleanupControllerTest extends TestCase {
$expiredSession = $this->tester->grabFixture('minecraftSessions', 'expired-token'); $expiredSession = $this->tester->grabFixture('minecraftSessions', 'expired-token');
$controller = new CleanupController('cleanup', Yii::$app); $controller = new CleanupController('cleanup', Yii::$app);
$this->assertEquals(0, $controller->actionMinecraftSessions()); $this->assertSame(0, $controller->actionMinecraftSessions());
$this->tester->cantSeeRecord(MinecraftAccessKey::class, ['access_token' => $expiredSession->access_token]); $this->tester->cantSeeRecord(MinecraftAccessKey::class, ['access_token' => $expiredSession->access_token]);
} }
@ -53,11 +53,11 @@ class CleanupControllerTest extends TestCase {
$totalSessionsCount = AccountSession::find()->count(); $totalSessionsCount = AccountSession::find()->count();
$controller = new CleanupController('cleanup', Yii::$app); $controller = new CleanupController('cleanup', Yii::$app);
$this->assertEquals(0, $controller->actionWebSessions()); $this->assertSame(0, $controller->actionWebSessions());
$this->tester->cantSeeRecord(AccountSession::class, ['id' => $expiredSession->id]); $this->tester->cantSeeRecord(AccountSession::class, ['id' => $expiredSession->id]);
$this->tester->cantSeeRecord(AccountSession::class, ['id' => $notRefreshedSession->id]); $this->tester->cantSeeRecord(AccountSession::class, ['id' => $notRefreshedSession->id]);
$this->assertEquals($totalSessionsCount - 2, AccountSession::find()->count()); $this->assertSame($totalSessionsCount - 2, (int)AccountSession::find()->count());
} }
public function testActionOauthClients() { public function testActionOauthClients() {
@ -65,11 +65,11 @@ class CleanupControllerTest extends TestCase {
$totalClientsCount = OauthClient::find()->includeDeleted()->count(); $totalClientsCount = OauthClient::find()->includeDeleted()->count();
$controller = new CleanupController('cleanup', Yii::$app); $controller = new CleanupController('cleanup', Yii::$app);
$this->assertEquals(0, $controller->actionOauthClients()); $this->assertSame(0, $controller->actionOauthClients());
$this->assertNull(OauthClient::find()->includeDeleted()->andWhere(['id' => 'deleted-oauth-client'])->one()); $this->assertNull(OauthClient::find()->includeDeleted()->andWhere(['id' => 'deleted-oauth-client'])->one());
$this->assertNotNull(OauthClient::find()->includeDeleted()->andWhere(['id' => 'deleted-oauth-client-with-sessions'])->one()); $this->assertNotNull(OauthClient::find()->includeDeleted()->andWhere(['id' => 'deleted-oauth-client-with-sessions'])->one());
$this->assertEquals($totalClientsCount - 1, OauthClient::find()->includeDeleted()->count()); $this->assertSame($totalClientsCount - 1, (int)OauthClient::find()->includeDeleted()->count());
/** @var ClearOauthSessions $job */ /** @var ClearOauthSessions $job */
$job = $this->tester->grabLastQueuedJob(); $job = $this->tester->grabLastQueuedJob();

4
yii
View File

@ -2,8 +2,8 @@
<?php <?php
require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/vendor/autoload.php';
defined('YII_DEBUG') or define('YII_DEBUG', (boolean)getenv('YII_DEBUG')); defined('YII_DEBUG') || define('YII_DEBUG', (bool)getenv('YII_DEBUG'));
defined('YII_ENV') or define('YII_ENV', getenv('YII_ENV')); defined('YII_ENV') || define('YII_ENV', getenv('YII_ENV'));
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php'; require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/common/config/bootstrap.php'; require __DIR__ . '/common/config/bootstrap.php';