diff --git a/UPGRADE-7.2.md b/UPGRADE-7.2.md index 7c0c8064f4381..d81cab5ac96b7 100644 --- a/UPGRADE-7.2.md +++ b/UPGRADE-7.2.md @@ -47,6 +47,14 @@ Ldap * Add methods for `saslBind()` and `whoami()` to `ConnectionInterface` and `LdapInterface` +Mailer +------ + +* Deprecate `TransportFactoryTestCase`, extend `AbstractTransportFactoryTestCase` instead + + The `testIncompleteDsnException()` test is no longer provided by default. If you make use of it by implementing the `incompleteDsnProvider()` data providers, + you now need to use the `IncompleteDsnTestTrait`. + Messenger --------- diff --git a/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php index 4452c9c571fe1..b529c3c934016 100644 --- a/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Amazon/Tests/Transport/SesTransportFactoryTest.php @@ -19,12 +19,15 @@ use Symfony\Component\Mailer\Bridge\Amazon\Transport\SesHttpAsyncAwsTransport; use Symfony\Component\Mailer\Bridge\Amazon\Transport\SesSmtpTransport; use Symfony\Component\Mailer\Bridge\Amazon\Transport\SesTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class SesTransportFactoryTest extends TransportFactoryTestCase +class SesTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new SesTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json b/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json index 9002e0e0355d9..bfa2af6f3cbb5 100644 --- a/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json @@ -18,7 +18,7 @@ "require": { "php": ">=8.2", "async-aws/ses": "^1.3", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0" diff --git a/src/Symfony/Component/Mailer/Bridge/Azure/Tests/Transport/AzureTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Azure/Tests/Transport/AzureTransportFactoryTest.php index 4250ed6adfac6..00da04e7b9ed0 100644 --- a/src/Symfony/Component/Mailer/Bridge/Azure/Tests/Transport/AzureTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Azure/Tests/Transport/AzureTransportFactoryTest.php @@ -15,12 +15,15 @@ use Symfony\Component\HttpClient\MockHttpClient; use Symfony\Component\Mailer\Bridge\Azure\Transport\AzureApiTransport; use Symfony\Component\Mailer\Bridge\Azure\Transport\AzureTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class AzureTransportFactoryTest extends TransportFactoryTestCase +class AzureTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new AzureTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Azure/composer.json b/src/Symfony/Component/Mailer/Bridge/Azure/composer.json index 1adb82dfd5cbe..c8396c21913e0 100644 --- a/src/Symfony/Component/Mailer/Bridge/Azure/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Azure/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0" diff --git a/src/Symfony/Component/Mailer/Bridge/Brevo/Tests/Transport/BrevoTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Brevo/Tests/Transport/BrevoTransportFactoryTest.php index 0d0f00e0a804c..6fb762680910d 100644 --- a/src/Symfony/Component/Mailer/Bridge/Brevo/Tests/Transport/BrevoTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Brevo/Tests/Transport/BrevoTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Brevo\Transport\BrevoApiTransport; use Symfony\Component\Mailer\Bridge\Brevo\Transport\BrevoSmtpTransport; use Symfony\Component\Mailer\Bridge\Brevo\Transport\BrevoTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class BrevoTransportFactoryTest extends TransportFactoryTestCase +class BrevoTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new BrevoTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Brevo/composer.json b/src/Symfony/Component/Mailer/Bridge/Brevo/composer.json index 85bd88a462cca..441dada9ef97d 100644 --- a/src/Symfony/Component/Mailer/Bridge/Brevo/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Brevo/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.1", - "symfony/mailer": "^5.4.21|^6.2.7|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.3|^7.0", diff --git a/src/Symfony/Component/Mailer/Bridge/Google/Tests/Transport/GmailTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Google/Tests/Transport/GmailTransportFactoryTest.php index f8e58d393eddf..63553431f3d48 100644 --- a/src/Symfony/Component/Mailer/Bridge/Google/Tests/Transport/GmailTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Google/Tests/Transport/GmailTransportFactoryTest.php @@ -15,12 +15,15 @@ use Symfony\Component\HttpClient\MockHttpClient; use Symfony\Component\Mailer\Bridge\Google\Transport\GmailSmtpTransport; use Symfony\Component\Mailer\Bridge\Google\Transport\GmailTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class GmailTransportFactoryTest extends TransportFactoryTestCase +class GmailTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new GmailTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Google/composer.json b/src/Symfony/Component/Mailer/Bridge/Google/composer.json index bb7047abf768a..13ba43762d942 100644 --- a/src/Symfony/Component/Mailer/Bridge/Google/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Google/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0" diff --git a/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportFactoryTest.php index f29ada5af97c2..83bd17d1e2e38 100644 --- a/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Infobip/Tests/Transport/InfobipApiTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Infobip\Transport\InfobipApiTransport; use Symfony\Component\Mailer\Bridge\Infobip\Transport\InfobipSmtpTransport; use Symfony\Component\Mailer\Bridge\Infobip\Transport\InfobipTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class InfobipApiTransportFactoryTest extends TransportFactoryTestCase +class InfobipApiTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new InfobipTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Infobip/composer.json b/src/Symfony/Component/Mailer/Bridge/Infobip/composer.json index b6f07b53d58ee..e15a7a3d17f4a 100644 --- a/src/Symfony/Component/Mailer/Bridge/Infobip/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Infobip/composer.json @@ -21,7 +21,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0", + "symfony/mailer": "^7.2", "symfony/mime": "^6.4|^7.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceTransportFactoryTest.php index 6baf5a33b2197..7535331a8a6d3 100644 --- a/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/MailPace/Tests/Transport/MailPaceTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\MailPace\Transport\MailPaceApiTransport; use Symfony\Component\Mailer\Bridge\MailPace\Transport\MailPaceSmtpTransport; use Symfony\Component\Mailer\Bridge\MailPace\Transport\MailPaceTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -final class MailPaceTransportFactoryTest extends TransportFactoryTestCase +final class MailPaceTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new MailPaceTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/MailPace/composer.json b/src/Symfony/Component/Mailer/Bridge/MailPace/composer.json index 018f669aa83f3..9e962e28fc17f 100644 --- a/src/Symfony/Component/Mailer/Bridge/MailPace/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/MailPace/composer.json @@ -22,7 +22,7 @@ "require": { "php": ">=8.2", "psr/event-dispatcher": "^1", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0" diff --git a/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillTransportFactoryTest.php index 78ca4e3acd25f..c84fa98809c03 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailchimp/Tests/Transport/MandrillTransportFactoryTest.php @@ -17,12 +17,15 @@ use Symfony\Component\Mailer\Bridge\Mailchimp\Transport\MandrillHttpTransport; use Symfony\Component\Mailer\Bridge\Mailchimp\Transport\MandrillSmtpTransport; use Symfony\Component\Mailer\Bridge\Mailchimp\Transport\MandrillTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class MandrillTransportFactoryTest extends TransportFactoryTestCase +class MandrillTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new MandrillTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json b/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json index f104418ba3bd3..5f51051650c99 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0" diff --git a/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendTransportFactoryTest.php index 604bc42f786a9..56fbdd3ad0e9a 100644 --- a/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/MailerSend/Tests/Transport/MailerSendTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\MailerSend\Transport\MailerSendApiTransport; use Symfony\Component\Mailer\Bridge\MailerSend\Transport\MailerSendSmtpTransport; use Symfony\Component\Mailer\Bridge\MailerSend\Transport\MailerSendTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class MailerSendTransportFactoryTest extends TransportFactoryTestCase +class MailerSendTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new MailerSendTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/MailerSend/composer.json b/src/Symfony/Component/Mailer/Bridge/MailerSend/composer.json index 4a9b3946f2723..96357327da187 100644 --- a/src/Symfony/Component/Mailer/Bridge/MailerSend/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/MailerSend/composer.json @@ -21,7 +21,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0", diff --git a/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunTransportFactoryTest.php index a88f1e153a8ff..9f26f46268b93 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunTransportFactoryTest.php @@ -17,12 +17,15 @@ use Symfony\Component\Mailer\Bridge\Mailgun\Transport\MailgunHttpTransport; use Symfony\Component\Mailer\Bridge\Mailgun\Transport\MailgunSmtpTransport; use Symfony\Component\Mailer\Bridge\Mailgun\Transport\MailgunTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class MailgunTransportFactoryTest extends TransportFactoryTestCase +class MailgunTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new MailgunTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json b/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json index bdc82be4aa8b6..3a5a475e3e44b 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0", diff --git a/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetTransportFactoryTest.php index 224ef14eef907..0f05d14c6be52 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailjet/Tests/Transport/MailjetTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Mailjet\Transport\MailjetApiTransport; use Symfony\Component\Mailer\Bridge\Mailjet\Transport\MailjetSmtpTransport; use Symfony\Component\Mailer\Bridge\Mailjet\Transport\MailjetTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class MailjetTransportFactoryTest extends TransportFactoryTestCase +class MailjetTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new MailjetTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json b/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json index 686c60a023bb9..2ef1d8a5842cb 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Mailjet/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0", diff --git a/src/Symfony/Component/Mailer/Bridge/Mailomat/Tests/Transport/MailomatTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Mailomat/Tests/Transport/MailomatTransportFactoryTest.php index 8bb1e3dff0fee..bf86db414615a 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailomat/Tests/Transport/MailomatTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailomat/Tests/Transport/MailomatTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Mailomat\Transport\MailomatApiTransport; use Symfony\Component\Mailer\Bridge\Mailomat\Transport\MailomatSmtpTransport; use Symfony\Component\Mailer\Bridge\Mailomat\Transport\MailomatTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class MailomatTransportFactoryTest extends TransportFactoryTestCase +class MailomatTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new MailomatTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Mailtrap/Tests/Transport/MailtrapTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Mailtrap/Tests/Transport/MailtrapTransportFactoryTest.php index df824e150d6c9..9b3c71d351e04 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailtrap/Tests/Transport/MailtrapTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Mailtrap/Tests/Transport/MailtrapTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Mailtrap\Transport\MailtrapApiTransport; use Symfony\Component\Mailer\Bridge\Mailtrap\Transport\MailtrapSmtpTransport; use Symfony\Component\Mailer\Bridge\Mailtrap\Transport\MailtrapTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class MailtrapTransportFactoryTest extends TransportFactoryTestCase +class MailtrapTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new MailtrapTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Postal/Tests/Transport/PostalTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Postal/Tests/Transport/PostalTransportFactoryTest.php index 87f181a5e2ef9..04c918cec9a43 100644 --- a/src/Symfony/Component/Mailer/Bridge/Postal/Tests/Transport/PostalTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Postal/Tests/Transport/PostalTransportFactoryTest.php @@ -15,12 +15,15 @@ use Symfony\Component\HttpClient\MockHttpClient; use Symfony\Component\Mailer\Bridge\Postal\Transport\PostalApiTransport; use Symfony\Component\Mailer\Bridge\Postal\Transport\PostalTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class PostalTransportFactoryTest extends TransportFactoryTestCase +class PostalTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new PostalTransportFactory(null, new MockHttpClient(), new NullLogger()); @@ -45,12 +48,12 @@ public static function createProvider(): iterable yield [ new Dsn('postal+api', 'postal.localhost', null, self::PASSWORD), - (new PostalApiTransport(self::PASSWORD, 'postal.localhost', new MockHttpClient(), null, $logger)), + new PostalApiTransport(self::PASSWORD, 'postal.localhost', new MockHttpClient(), null, $logger), ]; yield [ new Dsn('postal', 'postal.localhost', null, self::PASSWORD), - (new PostalApiTransport(self::PASSWORD, 'postal.localhost', new MockHttpClient(), null, $logger)), + new PostalApiTransport(self::PASSWORD, 'postal.localhost', new MockHttpClient(), null, $logger), ]; } diff --git a/src/Symfony/Component/Mailer/Bridge/Postmark/Tests/Transport/PostmarkTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Postmark/Tests/Transport/PostmarkTransportFactoryTest.php index 33a6b66ab1d89..639494150f765 100644 --- a/src/Symfony/Component/Mailer/Bridge/Postmark/Tests/Transport/PostmarkTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Postmark/Tests/Transport/PostmarkTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Postmark\Transport\PostmarkApiTransport; use Symfony\Component\Mailer\Bridge\Postmark\Transport\PostmarkSmtpTransport; use Symfony\Component\Mailer\Bridge\Postmark\Transport\PostmarkTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class PostmarkTransportFactoryTest extends TransportFactoryTestCase +class PostmarkTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new PostmarkTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json b/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json index ee80478b967d6..0451fec7f96ce 100644 --- a/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json @@ -18,7 +18,7 @@ "require": { "php": ">=8.2", "psr/event-dispatcher": "^1", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0", diff --git a/src/Symfony/Component/Mailer/Bridge/Resend/Tests/Transport/ResendTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Resend/Tests/Transport/ResendTransportFactoryTest.php index d87cdc3a76e7c..6801781f5b873 100644 --- a/src/Symfony/Component/Mailer/Bridge/Resend/Tests/Transport/ResendTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Resend/Tests/Transport/ResendTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Resend\Transport\ResendApiTransport; use Symfony\Component\Mailer\Bridge\Resend\Transport\ResendSmtpTransport; use Symfony\Component\Mailer\Bridge\Resend\Transport\ResendTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class ResendTransportFactoryTest extends TransportFactoryTestCase +class ResendTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new ResendTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Resend/composer.json b/src/Symfony/Component/Mailer/Bridge/Resend/composer.json index b87f7a3edfce7..0fe9a6f79df3c 100644 --- a/src/Symfony/Component/Mailer/Bridge/Resend/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Resend/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.1", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0", diff --git a/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayTransportFactoryTest.php index c7c691a7be24a..dccab77640b4d 100644 --- a/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Scaleway\Transport\ScalewayApiTransport; use Symfony\Component\Mailer\Bridge\Scaleway\Transport\ScalewaySmtpTransport; use Symfony\Component\Mailer\Bridge\Scaleway\Transport\ScalewayTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class ScalewayTransportFactoryTest extends TransportFactoryTestCase +class ScalewayTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new ScalewayTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Scaleway/composer.json b/src/Symfony/Component/Mailer/Bridge/Scaleway/composer.json index 0c90bccda8fa9..1ad65e470f641 100644 --- a/src/Symfony/Component/Mailer/Bridge/Scaleway/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Scaleway/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.1", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0" diff --git a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridTransportFactoryTest.php index 433e905add6c5..c02811f566acd 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Sendgrid/Tests/Transport/SendgridTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Sendgrid\Transport\SendgridApiTransport; use Symfony\Component\Mailer\Bridge\Sendgrid\Transport\SendgridSmtpTransport; use Symfony\Component\Mailer\Bridge\Sendgrid\Transport\SendgridTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class SendgridTransportFactoryTest extends TransportFactoryTestCase +class SendgridTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new SendgridTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json b/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json index f8982a448063f..b88cd130fd5fc 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.2", - "symfony/mailer": "^6.4|^7.0" + "symfony/mailer": "^7.2" }, "require-dev": { "symfony/http-client": "^6.4|^7.0", diff --git a/src/Symfony/Component/Mailer/Bridge/Sweego/Tests/Transport/SweegoTransportFactoryTest.php b/src/Symfony/Component/Mailer/Bridge/Sweego/Tests/Transport/SweegoTransportFactoryTest.php index 7c2d75a441f9b..ad4cf6714d400 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sweego/Tests/Transport/SweegoTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Sweego/Tests/Transport/SweegoTransportFactoryTest.php @@ -16,12 +16,15 @@ use Symfony\Component\Mailer\Bridge\Sweego\Transport\SweegoApiTransport; use Symfony\Component\Mailer\Bridge\Sweego\Transport\SweegoSmtpTransport; use Symfony\Component\Mailer\Bridge\Sweego\Transport\SweegoTransportFactory; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; +use Symfony\Component\Mailer\Test\IncompleteDsnTestTrait; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class SweegoTransportFactoryTest extends TransportFactoryTestCase +class SweegoTransportFactoryTest extends AbstractTransportFactoryTestCase { + use IncompleteDsnTestTrait; + public function getFactory(): TransportFactoryInterface { return new SweegoTransportFactory(null, new MockHttpClient(), new NullLogger()); diff --git a/src/Symfony/Component/Mailer/CHANGELOG.md b/src/Symfony/Component/Mailer/CHANGELOG.md index 01fb57558f366..e77263dd27417 100644 --- a/src/Symfony/Component/Mailer/CHANGELOG.md +++ b/src/Symfony/Component/Mailer/CHANGELOG.md @@ -4,6 +4,11 @@ CHANGELOG 7.2 --- + * Deprecate `TransportFactoryTestCase`, extend `AbstractTransportFactoryTestCase` instead + + The `testIncompleteDsnException()` test is no longer provided by default. If you make use of it by implementing the `incompleteDsnProvider()` data providers, + you now need to use the `IncompleteDsnTestTrait`. + * Make `TransportFactoryTestCase` compatible with PHPUnit 10+ 7.1 diff --git a/src/Symfony/Component/Mailer/Test/AbstractTransportFactoryTestCase.php b/src/Symfony/Component/Mailer/Test/AbstractTransportFactoryTestCase.php new file mode 100644 index 0000000000000..c378948698d87 --- /dev/null +++ b/src/Symfony/Component/Mailer/Test/AbstractTransportFactoryTestCase.php @@ -0,0 +1,83 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mailer\Test; + +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\TestCase; +use Symfony\Component\Mailer\Exception\UnsupportedSchemeException; +use Symfony\Component\Mailer\Transport\Dsn; +use Symfony\Component\Mailer\Transport\TransportFactoryInterface; +use Symfony\Component\Mailer\Transport\TransportInterface; + +abstract class AbstractTransportFactoryTestCase extends TestCase +{ + protected const USER = 'u$er'; + protected const PASSWORD = 'pa$s'; + + abstract public function getFactory(): TransportFactoryInterface; + + /** + * @psalm-return iterable + */ + abstract public static function supportsProvider(): iterable; + + /** + * @psalm-return iterable + */ + abstract public static function createProvider(): iterable; + + /** + * @psalm-return iterable + */ + abstract public static function unsupportedSchemeProvider(): iterable; + + /** + * @dataProvider supportsProvider + */ + #[DataProvider('supportsProvider')] + public function testSupports(Dsn $dsn, bool $supports) + { + $factory = $this->getFactory(); + + $this->assertSame($supports, $factory->supports($dsn)); + } + + /** + * @dataProvider createProvider + */ + #[DataProvider('createProvider')] + public function testCreate(Dsn $dsn, TransportInterface $transport) + { + $factory = $this->getFactory(); + + $this->assertEquals($transport, $factory->create($dsn)); + if (str_contains('smtp', $dsn->getScheme())) { + $this->assertStringMatchesFormat($dsn->getScheme().'://%S'.$dsn->getHost().'%S', (string) $transport); + } + } + + /** + * @dataProvider unsupportedSchemeProvider + */ + #[DataProvider('unsupportedSchemeProvider')] + public function testUnsupportedSchemeException(Dsn $dsn, ?string $message = null) + { + $factory = $this->getFactory(); + + $this->expectException(UnsupportedSchemeException::class); + if (null !== $message) { + $this->expectExceptionMessage($message); + } + + $factory->create($dsn); + } +} diff --git a/src/Symfony/Component/Mailer/Test/IncompleteDsnTestTrait.php b/src/Symfony/Component/Mailer/Test/IncompleteDsnTestTrait.php new file mode 100644 index 0000000000000..fbf322af85662 --- /dev/null +++ b/src/Symfony/Component/Mailer/Test/IncompleteDsnTestTrait.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mailer\Test; + +use PHPUnit\Framework\Attributes\DataProvider; +use Symfony\Component\Mailer\Exception\IncompleteDsnException; +use Symfony\Component\Mailer\Transport\Dsn; + +trait IncompleteDsnTestTrait +{ + /** + * @psalm-return iterable + */ + abstract public static function incompleteDsnProvider(): iterable; + + /** + * @dataProvider incompleteDsnProvider + */ + #[DataProvider('incompleteDsnProvider')] + public function testIncompleteDsnException(Dsn $dsn) + { + $factory = $this->getFactory(); + + $this->expectException(IncompleteDsnException::class); + $factory->create($dsn); + } +} diff --git a/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php b/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php index d39839f267dec..782bba37c44db 100644 --- a/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php +++ b/src/Symfony/Component/Mailer/Test/TransportFactoryTestCase.php @@ -11,14 +11,8 @@ namespace Symfony\Component\Mailer\Test; -use PHPUnit\Framework\Attributes\DataProvider; -use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; -use Symfony\Component\Mailer\Exception\IncompleteDsnException; -use Symfony\Component\Mailer\Exception\UnsupportedSchemeException; use Symfony\Component\Mailer\Transport\Dsn; -use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -use Symfony\Component\Mailer\Transport\TransportInterface; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; @@ -26,28 +20,17 @@ * A test case to ease testing Transport Factory. * * @author Konstantin Myakshin + * + * @deprecated since Symfony 7.2, use AbstractTransportFactoryTestCase instead */ -abstract class TransportFactoryTestCase extends TestCase +abstract class TransportFactoryTestCase extends AbstractTransportFactoryTestCase { - protected const USER = 'u$er'; - protected const PASSWORD = 'pa$s'; + use IncompleteDsnTestTrait; protected EventDispatcherInterface $dispatcher; protected HttpClientInterface $client; protected LoggerInterface $logger; - abstract public function getFactory(): TransportFactoryInterface; - - /** - * @psalm-return iterable - */ - abstract public static function supportsProvider(): iterable; - - /** - * @psalm-return iterable - */ - abstract public static function createProvider(): iterable; - /** * @psalm-return iterable */ @@ -64,59 +47,6 @@ public static function incompleteDsnProvider(): iterable return []; } - /** - * @dataProvider supportsProvider - */ - #[DataProvider('supportsProvider')] - public function testSupports(Dsn $dsn, bool $supports) - { - $factory = $this->getFactory(); - - $this->assertSame($supports, $factory->supports($dsn)); - } - - /** - * @dataProvider createProvider - */ - #[DataProvider('createProvider')] - public function testCreate(Dsn $dsn, TransportInterface $transport) - { - $factory = $this->getFactory(); - - $this->assertEquals($transport, $factory->create($dsn)); - if (str_contains('smtp', $dsn->getScheme())) { - $this->assertStringMatchesFormat($dsn->getScheme().'://%S'.$dsn->getHost().'%S', (string) $transport); - } - } - - /** - * @dataProvider unsupportedSchemeProvider - */ - #[DataProvider('unsupportedSchemeProvider')] - public function testUnsupportedSchemeException(Dsn $dsn, ?string $message = null) - { - $factory = $this->getFactory(); - - $this->expectException(UnsupportedSchemeException::class); - if (null !== $message) { - $this->expectExceptionMessage($message); - } - - $factory->create($dsn); - } - - /** - * @dataProvider incompleteDsnProvider - */ - #[DataProvider('incompleteDsnProvider')] - public function testIncompleteDsnException(Dsn $dsn) - { - $factory = $this->getFactory(); - - $this->expectException(IncompleteDsnException::class); - $factory->create($dsn); - } - protected function getDispatcher(): EventDispatcherInterface { return $this->dispatcher ??= $this->createMock(EventDispatcherInterface::class); diff --git a/src/Symfony/Component/Mailer/Tests/Transport/NullTransportFactoryTest.php b/src/Symfony/Component/Mailer/Tests/Transport/NullTransportFactoryTest.php index b28935a75d4f5..e7383737c5766 100644 --- a/src/Symfony/Component/Mailer/Tests/Transport/NullTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Tests/Transport/NullTransportFactoryTest.php @@ -13,13 +13,13 @@ use Psr\Log\NullLogger; use Symfony\Component\HttpClient\MockHttpClient; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\NullTransport; use Symfony\Component\Mailer\Transport\NullTransportFactory; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class NullTransportFactoryTest extends TransportFactoryTestCase +class NullTransportFactoryTest extends AbstractTransportFactoryTestCase { public function getFactory(): TransportFactoryInterface { @@ -41,4 +41,9 @@ public static function createProvider(): iterable new NullTransport(null, new NullLogger()), ]; } + + public static function unsupportedSchemeProvider(): iterable + { + yield [new Dsn('smtp', 'localhost')]; + } } diff --git a/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportFactoryTest.php b/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportFactoryTest.php index a3d08f5933359..3ef9cc9f5dae5 100644 --- a/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Tests/Transport/SendmailTransportFactoryTest.php @@ -13,13 +13,13 @@ use Psr\Log\NullLogger; use Symfony\Component\HttpClient\MockHttpClient; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\SendmailTransport; use Symfony\Component\Mailer\Transport\SendmailTransportFactory; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class SendmailTransportFactoryTest extends TransportFactoryTestCase +class SendmailTransportFactoryTest extends AbstractTransportFactoryTestCase { public function getFactory(): TransportFactoryInterface { diff --git a/src/Symfony/Component/Mailer/Tests/Transport/Smtp/EsmtpTransportFactoryTest.php b/src/Symfony/Component/Mailer/Tests/Transport/Smtp/EsmtpTransportFactoryTest.php index 442583a7af179..b21e4ae0776df 100644 --- a/src/Symfony/Component/Mailer/Tests/Transport/Smtp/EsmtpTransportFactoryTest.php +++ b/src/Symfony/Component/Mailer/Tests/Transport/Smtp/EsmtpTransportFactoryTest.php @@ -13,14 +13,14 @@ use Psr\Log\NullLogger; use Symfony\Component\HttpClient\MockHttpClient; -use Symfony\Component\Mailer\Test\TransportFactoryTestCase; +use Symfony\Component\Mailer\Test\AbstractTransportFactoryTestCase; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport; use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransportFactory; use Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream; use Symfony\Component\Mailer\Transport\TransportFactoryInterface; -class EsmtpTransportFactoryTest extends TransportFactoryTestCase +class EsmtpTransportFactoryTest extends AbstractTransportFactoryTestCase { public function getFactory(): TransportFactoryInterface { @@ -181,4 +181,9 @@ public static function createProvider(): iterable $transport, ]; } + + public static function unsupportedSchemeProvider(): iterable + { + yield [new Dsn('null', '')]; + } } diff --git a/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransportFactory.php b/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransportFactory.php index 9df0b957451be..492e78a110455 100644 --- a/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransportFactory.php +++ b/src/Symfony/Component/Mailer/Transport/Smtp/EsmtpTransportFactory.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Mailer\Transport\Smtp; +use Symfony\Component\Mailer\Exception\UnsupportedSchemeException; use Symfony\Component\Mailer\Transport\AbstractTransportFactory; use Symfony\Component\Mailer\Transport\Dsn; use Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream; @@ -23,6 +24,10 @@ final class EsmtpTransportFactory extends AbstractTransportFactory { public function create(Dsn $dsn): TransportInterface { + if (!\in_array($dsn->getScheme(), $this->getSupportedSchemes(), true)) { + throw new UnsupportedSchemeException($dsn, 'smtp', $this->getSupportedSchemes()); + } + $autoTls = '' === $dsn->getOption('auto_tls') || filter_var($dsn->getOption('auto_tls', true), \FILTER_VALIDATE_BOOL); $tls = 'smtps' === $dsn->getScheme() ? true : ($autoTls ? null : false); $port = $dsn->getPort(0); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy