ReplyToGetSetClearTest: improve the conversion and enqueuing test
This commit: * Renames the `testConvertEncoding()` method to `testEnqueueAndAddIdnAddress()`. * Removes the call to `clearReplyTos()` at the start of the function as it is redundant. Each test gets a fresh instance of the PHPMailer class. * Adds a number of additional assertions to the method to test the enqueuing in more depth. Includes adding `@covers` tags for the test.
This commit is contained in:
parent
465a067017
commit
06244ad942
|
|
@ -257,27 +257,41 @@ final class ReplyToGetSetClearTest extends PreSendTestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* Tests CharSet and Unicode -> ASCII conversions for addresses with IDN.
|
||||
* Tests handling of IDN reply-to addresses.
|
||||
*
|
||||
* Verifies that:
|
||||
* - CharSet and Unicode -> ASCII conversions for addresses with IDN gets executed correctly.
|
||||
* - IDN addresses initially get enqueued.
|
||||
* - IDN addresses correctly get added during `preSend()`.
|
||||
*
|
||||
* @covers \PHPMailer\PHPMailer\PHPMailer::addReplyTo
|
||||
* @covers \PHPMailer\PHPMailer\PHPMailer::addOrEnqueueAnAddress
|
||||
* @covers \PHPMailer\PHPMailer\PHPMailer::addAnAddress
|
||||
* @covers \PHPMailer\PHPMailer\PHPMailer::preSend
|
||||
*
|
||||
* @requires extension mbstring
|
||||
* @requires function idn_to_ascii
|
||||
*/
|
||||
public function testConvertEncoding()
|
||||
public function testEnqueueAndAddIdnAddress()
|
||||
{
|
||||
$this->Mail->clearReplyTos();
|
||||
// This file is UTF-8 encoded. Create a domain encoded in "iso-8859-1".
|
||||
$letter = html_entity_decode('ç', ENT_COMPAT, PHPMailer::CHARSET_ISO88591);
|
||||
$domain = '@' . 'fran' . $letter . 'ois.ch';
|
||||
$address = 'test+replyto' . $domain;
|
||||
self::assertTrue($this->Mail->addReplyTo($address), 'Replyto Addressing failed');
|
||||
|
||||
//This file is UTF-8 encoded. Create a domain encoded in "iso-8859-1".
|
||||
$letter = html_entity_decode('ç', ENT_COMPAT, PHPMailer::CHARSET_ISO88591);
|
||||
$domain = '@' . 'fran' . $letter . 'ois.ch';
|
||||
$this->Mail->addReplyTo('test+replyto' . $domain);
|
||||
// Queued addresses are not returned by get*Addresses() before send() call.
|
||||
self::assertEmpty($this->Mail->getReplyToAddresses(), 'Unexpected "reply-to" address added');
|
||||
|
||||
//Queued addresses are not returned by get*Addresses() before send() call.
|
||||
self::assertEmpty($this->Mail->getReplyToAddresses(), 'Bad "reply-to" recipients');
|
||||
// Check that the queue has been set correctly.
|
||||
$queue = $this->getPropertyValue($this->Mail, 'ReplyToQueue');
|
||||
self::assertCount(1, $queue, 'Queue does not contain exactly 1 entry');
|
||||
self::assertArrayHasKey($address, $queue, 'Queue does not contain an entry for the IDN address');
|
||||
|
||||
$this->buildBody();
|
||||
self::assertTrue($this->Mail->preSend(), $this->Mail->ErrorInfo);
|
||||
|
||||
//Addresses with IDN are returned by get*Addresses() after send() call.
|
||||
// Addresses with IDN are returned by get*Addresses() after preSend() call.
|
||||
$domain = $this->Mail->punyencodeAddress($domain);
|
||||
self::assertSame(
|
||||
['test+replyto' . $domain => ['test+replyto' . $domain, '']],
|
||||
|
|
|
|||
Loading…
Reference in New Issue