Вход Регистрация
Файл: 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);
    }
}
Онлайн: 1
Реклама