Файл: gapps/vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug38Test.php
Строк: 257
<?php
class Swift_Bug38Test extends PHPUnit_Framework_TestCase
{
private $_attFile;
private $_attFileName;
private $_attFileType;
protected function setUp()
{
$this->_attFileName = 'data.txt';
$this->_attFileType = 'text/plain';
$this->_attFile = __DIR__.'/../../_samples/files/data.txt';
Swift_Preferences::getInstance()->setCharset('utf-8');
}
public function testWritingMessageToByteStreamProducesCorrectStructure()
{
$message = new Swift_Message();
$message->setSubject('test subject');
$message->setTo('user@domain.tld');
$message->setCc('other@domain.tld');
$message->setFrom('user@domain.tld');
$image = new Swift_Image('<data>', 'image.gif', 'image/gif');
$cid = $message->embed($image);
$message->setBody('HTML part', 'text/html');
$id = $message->getId();
$date = preg_quote(date('r', $message->getDate()), '~');
$boundary = $message->getBoundary();
$imgId = $image->getId();
$stream = new Swift_ByteStream_ArrayByteStream();
$message->toByteStream($stream);
$this->assertPatternInStream(
'~^'.
'Message-ID: <'.$id.'>'."rn".
'Date: '.$date."rn".
'Subject: test subject'."rn".
'From: user@domain.tld'."rn".
'To: user@domain.tld'."rn".
'Cc: other@domain.tld'."rn".
'MIME-Version: 1.0'."rn".
'Content-Type: multipart/related;'."rn".
' boundary="'.$boundary.'"'."rn".
"rnrn".
'--'.$boundary."rn".
'Content-Type: text/html; charset=utf-8'."rn".
'Content-Transfer-Encoding: quoted-printable'."rn".
"rn".
'HTML part'.
"rnrn".
'--'.$boundary."rn".
'Content-Type: image/gif; name=image.gif'."rn".
'Content-Transfer-Encoding: base64'."rn".
'Content-ID: <'.preg_quote($imgId, '~').'>'."rn".
'Content-Disposition: inline; filename=image.gif'."rn".
"rn".
preg_quote(base64_encode('<data>'), '~').
"rnrn".
'--'.$boundary.'--'."rn".
'$~D',
$stream
);
}
public function testWritingMessageToByteStreamTwiceProducesCorrectStructure()
{
$message = new Swift_Message();
$message->setSubject('test subject');
$message->setTo('user@domain.tld');
$message->setCc('other@domain.tld');
$message->setFrom('user@domain.tld');
$image = new Swift_Image('<data>', 'image.gif', 'image/gif');
$cid = $message->embed($image);
$message->setBody('HTML part', 'text/html');
$id = $message->getId();
$date = preg_quote(date('r', $message->getDate()), '~');
$boundary = $message->getBoundary();
$imgId = $image->getId();
$pattern = '~^'.
'Message-ID: <'.$id.'>'."rn".
'Date: '.$date."rn".
'Subject: test subject'."rn".
'From: user@domain.tld'."rn".
'To: user@domain.tld'."rn".
'Cc: other@domain.tld'."rn".
'MIME-Version: 1.0'."rn".
'Content-Type: multipart/related;'."rn".
' boundary="'.$boundary.'"'."rn".
"rnrn".
'--'.$boundary."rn".
'Content-Type: text/html; charset=utf-8'."rn".
'Content-Transfer-Encoding: quoted-printable'."rn".
"rn".
'HTML part'.
"rnrn".
'--'.$boundary."rn".
'Content-Type: image/gif; name=image.gif'."rn".
'Content-Transfer-Encoding: base64'."rn".
'Content-ID: <'.preg_quote($imgId, '~').'>'."rn".
'Content-Disposition: inline; filename=image.gif'."rn".
"rn".
preg_quote(base64_encode('<data>'), '~').
"rnrn".
'--'.$boundary.'--'."rn".
'$~D'
;
$streamA = new Swift_ByteStream_ArrayByteStream();
$streamB = new Swift_ByteStream_ArrayByteStream();
$message->toByteStream($streamA);
$message->toByteStream($streamB);
$this->assertPatternInStream($pattern, $streamA);
$this->assertPatternInStream($pattern, $streamB);
}
public function testWritingMessageToByteStreamTwiceUsingAFileAttachment()
{
$message = new Swift_Message();
$message->setSubject('test subject');
$message->setTo('user@domain.tld');
$message->setCc('other@domain.tld');
$message->setFrom('user@domain.tld');
$attachment = Swift_Attachment::fromPath($this->_attFile);
$message->attach($attachment);
$message->setBody('HTML part', 'text/html');
$id = $message->getId();
$date = preg_quote(date('r', $message->getDate()), '~');
$boundary = $message->getBoundary();
$streamA = new Swift_ByteStream_ArrayByteStream();
$streamB = new Swift_ByteStream_ArrayByteStream();
$pattern = '~^'.
'Message-ID: <'.$id.'>'."rn".
'Date: '.$date."rn".
'Subject: test subject'."rn".
'From: user@domain.tld'."rn".
'To: user@domain.tld'."rn".
'Cc: other@domain.tld'."rn".
'MIME-Version: 1.0'."rn".
'Content-Type: multipart/mixed;'."rn".
' boundary="'.$boundary.'"'."rn".
"rnrn".
'--'.$boundary."rn".
'Content-Type: text/html; charset=utf-8'."rn".
'Content-Transfer-Encoding: quoted-printable'."rn".
"rn".
'HTML part'.
"rnrn".
'--'.$boundary."rn".
'Content-Type: '.$this->_attFileType.'; name='.$this->_attFileName."rn".
'Content-Transfer-Encoding: base64'."rn".
'Content-Disposition: attachment; filename='.$this->_attFileName."rn".
"rn".
preg_quote(base64_encode(file_get_contents($this->_attFile)), '~').
"rnrn".
'--'.$boundary.'--'."rn".
'$~D'
;
$message->toByteStream($streamA);
$message->toByteStream($streamB);
$this->assertPatternInStream($pattern, $streamA);
$this->assertPatternInStream($pattern, $streamB);
}
public function assertPatternInStream($pattern, $stream, $message = '%s')
{
$string = '';
while (false !== $bytes = $stream->read(8192)) {
$string .= $bytes;
}
$this->assertRegExp($pattern, $string, $message);
}
}