1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
<?php
use Egulias\EmailValidator\EmailValidator;
class Swift_Mime_MimePartAcceptanceTest extends \PHPUnit\Framework\TestCase
{
private $contentEncoder;
private $cache;
private $headers;
private $emailValidator;
private $idGenerator;
protected function setUp(): void
{
$this->cache = new Swift_KeyCache_ArrayKeyCache(
new Swift_KeyCache_SimpleKeyCacheInputStream()
);
$factory = new Swift_CharacterReaderFactory_SimpleCharacterReaderFactory();
$this->contentEncoder = new Swift_Mime_ContentEncoder_QpContentEncoder(
new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8'),
new Swift_StreamFilters_ByteArrayReplacementFilter(
[[0x0D, 0x0A], [0x0D], [0x0A]],
[[0x0A], [0x0A], [0x0D, 0x0A]]
)
);
$headerEncoder = new Swift_Mime_HeaderEncoder_QpHeaderEncoder(
new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')
);
$paramEncoder = new Swift_Encoder_Rfc2231Encoder(
new Swift_CharacterStream_ArrayCharacterStream($factory, 'utf-8')
);
$this->emailValidator = new EmailValidator();
$this->idGenerator = new Swift_Mime_IdGenerator('example.com');
$this->headers = new Swift_Mime_SimpleHeaderSet(
new Swift_Mime_SimpleHeaderFactory($headerEncoder, $paramEncoder, $this->emailValidator)
);
}
public function testCharsetIsSetInHeader()
{
$part = $this->createMimePart();
$part->setContentType('text/plain');
$part->setCharset('utf-8');
$part->setBody('foobar');
$this->assertEquals(
'Content-Type: text/plain; charset=utf-8'."\r\n".
'Content-Transfer-Encoding: quoted-printable'."\r\n".
"\r\n".
'foobar',
$part->toString()
);
}
public function testFormatIsSetInHeaders()
{
$part = $this->createMimePart();
$part->setContentType('text/plain');
$part->setFormat('flowed');
$part->setBody('> foobar');
$this->assertEquals(
'Content-Type: text/plain; format=flowed'."\r\n".
'Content-Transfer-Encoding: quoted-printable'."\r\n".
"\r\n".
'> foobar',
$part->toString()
);
}
public function testDelSpIsSetInHeaders()
{
$part = $this->createMimePart();
$part->setContentType('text/plain');
$part->setDelSp(true);
$part->setBody('foobar');
$this->assertEquals(
'Content-Type: text/plain; delsp=yes'."\r\n".
'Content-Transfer-Encoding: quoted-printable'."\r\n".
"\r\n".
'foobar',
$part->toString()
);
}
public function testAll3ParamsInHeaders()
{
$part = $this->createMimePart();
$part->setContentType('text/plain');
$part->setCharset('utf-8');
$part->setFormat('fixed');
$part->setDelSp(true);
$part->setBody('foobar');
$this->assertEquals(
'Content-Type: text/plain; charset=utf-8; format=fixed; delsp=yes'."\r\n".
'Content-Transfer-Encoding: quoted-printable'."\r\n".
"\r\n".
'foobar',
$part->toString()
);
}
public function testBodyIsCanonicalized()
{
$part = $this->createMimePart();
$part->setContentType('text/plain');
$part->setCharset('utf-8');
$part->setBody("foobar\r\rtest\ning\r");
$this->assertEquals(
'Content-Type: text/plain; charset=utf-8'."\r\n".
'Content-Transfer-Encoding: quoted-printable'."\r\n".
"\r\n".
"foobar\r\n".
"\r\n".
"test\r\n".
"ing\r\n",
$part->toString()
);
}
protected function createMimePart()
{
$entity = new Swift_Mime_MimePart(
$this->headers,
$this->contentEncoder,
$this->cache,
$this->idGenerator
);
return $entity;
}
}
|