diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 98da305..a8d654d 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -11,7 +11,7 @@ jobs: fail-fast: false matrix: operating-system: ['ubuntu-latest'] - php-versions: ['8.1', '8.0','7.4','7.3', '7.2','7.1','7.0', '5.6'] + php-versions: ['8.1', '8.0','7.4'] services: mariadb: diff --git a/README.md b/README.md index 17aa983..664c29a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ Yii 2 Usuario Extension [![Latest Stable Version](https://poser.pugx.org/2amigos/yii2-usuario/version)](https://packagist.org/packages/2amigos/yii2-usuario) [![Total Downloads](https://poser.pugx.org/2amigos/yii2-usuario/downloads)](https://packagist.org/packages/2amigos/yii2-usuario) [![Build Status](https://github.com/2amigos/yii2-usuario/actions/workflows/php.yml/badge.svg)](https://github.com/2amigos/yii2-usuario/actions/) - [![Latest Unstable Version](https://poser.pugx.org/2amigos/yii2-usuario/v/unstable)](//packagist.org/packages/2amigos/yii2-usuario) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/?branch=master) diff --git a/composer.json b/composer.json index 365c577..8802a94 100644 --- a/composer.json +++ b/composer.json @@ -44,14 +44,17 @@ "2amigos/yii2-selectize-widget": "^1.1", "yiisoft/yii2-authclient": "^2.1", "yiisoft/yii2-httpclient": "^2.0", - "yiisoft/yii2-bootstrap": "^2.0", - "yiisoft/yii2-swiftmailer": "^2.0" + "yiisoft/yii2-bootstrap": "^2.0" }, "suggest": { + "yiisoft/yii2-symfonymailer": "A mailer driver is needed to send e-mails. Older versions use abandoned Swiftmailer which can be replaced with symfonymailer", "2amigos/2fa-library": "Needed if you want to enable 2 Factor Authentication. Require version ^1.0", "2amigos/qrcode-library": "Needed if you want to enable 2FA with QR Code generation. Require version ^1.1" }, "require-dev": { + "php": ">=7.4", + + "yiisoft/yii2-symfonymailer": "~2.0.0", "friendsofphp/php-cs-fixer": "^2.3", "squizlabs/php_codesniffer": "*", "phpmd/phpmd": "@stable", diff --git a/tests/_app/config/test.php b/tests/_app/config/test.php index 60cc458..4a1eacf 100644 --- a/tests/_app/config/test.php +++ b/tests/_app/config/test.php @@ -26,7 +26,11 @@ return [ ], 'db' => require __DIR__ . '/db.php', 'mailer' => [ - 'useFileTransport' => true, + 'messageClass' => \yii\symfonymailer\Message::class, + [ + 'class' => \yii\symfonymailer\Mailer::class, + ], + 'useFileTransport' => false ], 'urlManager' => [ 'showScriptName' => true, diff --git a/tests/functional/GdprCest.php b/tests/functional/GdprCest.php index 37b65f9..7544f09 100644 --- a/tests/functional/GdprCest.php +++ b/tests/functional/GdprCest.php @@ -97,12 +97,12 @@ class GdprCest $I->amOnRoute('/user/registration/register'); $this->register($I, 'tester@example.com', 'tester', 'tester'); $I->see('Your account has been created and a message with further instructions has been sent to your email'); - $user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']); - $token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]); - /** @var yii\swiftmailer\Message $message */ + $user = $I->grabRecord(User::class, ['email' => 'tester@example.com']); + $token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]); + /** @var \yii\mail\MessageInterface $message */ $message = $I->grabLastSentEmail(); $I->assertArrayHasKey($user->email, $message->getTo()); - $I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString()))); + $I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->toString()))); $I->assertFalse($user->isConfirmed); } @@ -118,12 +118,12 @@ class GdprCest $I->amOnRoute('/user/registration/register'); $this->register($I, 'tester@example.com', 'tester'); $I->see('Your account has been created'); - $user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']); + $user = $I->grabRecord(User::class, ['email' => 'tester@example.com']); $I->assertEquals('tester', $user->username); - /** @var yii\swiftmailer\Message $message */ + /** @var \yii\mail\MessageInterface $message */ $message = $I->grabLastSentEmail(); $I->assertArrayHasKey($user->email, $message->getTo()); - $I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString()))); + $I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->toString()))); } diff --git a/tests/functional/RecoveryCept.php b/tests/functional/RecoveryCept.php index ff61cfa..16101a6 100644 --- a/tests/functional/RecoveryCept.php +++ b/tests/functional/RecoveryCept.php @@ -36,14 +36,14 @@ $I->fillField('#recoveryform-email', $user->email); $I->click('Continue'); $I->see('An email with instructions to create a new password has been sent to ' . $user->email); -$user = $I->grabRecord(User::className(), ['email' => $user->email]); -$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_RECOVERY]); -/** @var yii\swiftmailer\Message $message */ +$user = $I->grabRecord(User::class, ['email' => $user->email]); +$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_RECOVERY]); +/** @var \yii\mail\MessageInterface $message */ $message = $I->grabLastSentEmail(); $I->assertArrayHasKey($user->email, $message->getTo()); $I->assertStringContainsString( Html::encode($token->getUrl()), - utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())) + utf8_encode(quoted_printable_decode($message->toString())) ); $I->amGoingTo('reset password with invalid token'); diff --git a/tests/functional/RegistrationCest.php b/tests/functional/RegistrationCest.php index e17dd9a..d78dceb 100644 --- a/tests/functional/RegistrationCest.php +++ b/tests/functional/RegistrationCest.php @@ -68,12 +68,12 @@ class RegistrationCest $I->amOnRoute('/user/registration/register'); $this->register($I, 'tester@example.com', 'tester', 'tester'); $I->see('Your account has been created and a message with further instructions has been sent to your email'); - $user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']); - $token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]); - /** @var yii\swiftmailer\Message $message */ + $user = $I->grabRecord(User::class, ['email' => 'tester@example.com']); + $token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]); + /** @var \yii\mail\MessageInterface $message */ $message = $I->grabLastSentEmail(); $I->assertArrayHasKey($user->email, $message->getTo()); - $I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString()))); + $I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->toString()))); $I->assertFalse($user->isConfirmed); } @@ -91,10 +91,10 @@ class RegistrationCest $I->see('Your account has been created'); $user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']); $I->assertEquals('tester', $user->username); - /** @var yii\swiftmailer\Message $message */ + /** @var \yii\mail\MessageInterface $message */ $message = $I->grabLastSentEmail(); $I->assertArrayHasKey($user->email, $message->getTo()); - $I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString()))); + $I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->toString()))); } protected function register(FunctionalTester $I, $email, $username = null, $password = null) { diff --git a/tests/functional/SettingsCept.php b/tests/functional/SettingsCept.php index fb55280..480f31d 100644 --- a/tests/functional/SettingsCept.php +++ b/tests/functional/SettingsCept.php @@ -34,12 +34,12 @@ $I->click('Save'); $I->seeRecord(User::className(), ['email' => $user->email, 'unconfirmed_email' => 'new_user@example.com']); $I->see('A confirmation message has been sent to your new email address'); -$user = $I->grabRecord(User::className(), ['id' => $user->id]); -$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRM_NEW_EMAIL]); -/** @var yii\swiftmailer\Message $message */ +$user = $I->grabRecord(User::class, ['id' => $user->id]); +$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRM_NEW_EMAIL]); +/** @var \yii\mail\MessageInterface $message */ $message = $I->grabLastSentEmail(); $I->assertArrayHasKey($user->unconfirmed_email, $message->getTo()); -$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString()))); +$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->toString()))); Yii::$app->user->logout(); $I->amGoingTo('log in using new email address before clicking the confirmation link');