Remove default swiftmailer dependency (#448)

* replace swiftmailer references with generic interface references
* replace swiftmailer dependency with suggested symfonymailer (option to also use old swiftmailer)
* remove getSwiftMailer fro mtests
* adjuts config to skip yii2 coded swiftmailer
* dev and test only until php 7.4 (synphonymailer)
This commit is contained in:
Tõnis Ormisson
2022-08-11 09:13:10 +03:00
committed by GitHub
parent 78bfbd43b5
commit 8bef4d41cc
8 changed files with 32 additions and 26 deletions

View File

@ -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,

View File

@ -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())));
}

View File

@ -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');

View File

@ -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) {

View File

@ -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');