| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- <?php
- declare(strict_types=1);
- /**
- * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
- *
- * Licensed under The MIT License
- * For full copyright and license information, please see the LICENSE
- * Redistributions of files must retain the above copyright notice
- *
- * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
- * @link https://cakephp.org CakePHP(tm) Project
- * @since 4.0.0
- * @license https://opensource.org/licenses/mit-license.php MIT License
- */
- namespace Cake\Test\TestCase\Mailer;
- use Cake\Mailer\Message;
- use Cake\TestSuite\TestCase;
- use TestApp\Mailer\TestMessage;
- /**
- * MessageTest class
- */
- class MessageTest extends TestCase
- {
- /**
- * @var \Cake\Mailer\Message
- */
- protected $message;
- public function setUp(): void
- {
- parent::setUp();
- $this->message = new Message();
- }
- /**
- * testWrap method
- *
- * @return void
- */
- public function testWrap()
- {
- $renderer = new TestMessage();
- $text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac turpis orci, non commodo odio. Morbi nibh nisi, vehicula pellentesque accumsan amet.';
- $result = $renderer->doWrap($text, Message::LINE_LENGTH_SHOULD);
- $expected = [
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac turpis orci,',
- 'non commodo odio. Morbi nibh nisi, vehicula pellentesque accumsan amet.',
- '',
- ];
- $this->assertSame($expected, $result);
- $text = 'Lorem ipsum dolor sit amet, consectetur < adipiscing elit. Donec ac turpis orci, non commodo odio. Morbi nibh nisi, vehicula > pellentesque accumsan amet.';
- $result = $renderer->doWrap($text, Message::LINE_LENGTH_SHOULD);
- $expected = [
- 'Lorem ipsum dolor sit amet, consectetur < adipiscing elit. Donec ac turpis',
- 'orci, non commodo odio. Morbi nibh nisi, vehicula > pellentesque accumsan',
- 'amet.',
- '',
- ];
- $this->assertSame($expected, $result);
- $text = '<p>Lorem ipsum dolor sit amet,<br> consectetur adipiscing elit.<br> Donec ac turpis orci, non <b>commodo</b> odio. <br /> Morbi nibh nisi, vehicula pellentesque accumsan amet.<hr></p>';
- $result = $renderer->doWrap($text, Message::LINE_LENGTH_SHOULD);
- $expected = [
- '<p>Lorem ipsum dolor sit amet,<br> consectetur adipiscing elit.<br> Donec ac',
- 'turpis orci, non <b>commodo</b> odio. <br /> Morbi nibh nisi, vehicula',
- 'pellentesque accumsan amet.<hr></p>',
- '',
- ];
- $this->assertSame($expected, $result);
- $text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac <a href="http://cakephp.org">turpis</a> orci, non commodo odio. Morbi nibh nisi, vehicula pellentesque accumsan amet.';
- $result = $renderer->doWrap($text, Message::LINE_LENGTH_SHOULD);
- $expected = [
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac',
- '<a href="http://cakephp.org">turpis</a> orci, non commodo odio. Morbi nibh',
- 'nisi, vehicula pellentesque accumsan amet.',
- '',
- ];
- $this->assertSame($expected, $result);
- $text = 'Lorem ipsum <a href="http://www.cakephp.org/controller/action/param1/param2" class="nice cool fine amazing awesome">ok</a>';
- $result = $renderer->doWrap($text, Message::LINE_LENGTH_SHOULD);
- $expected = [
- 'Lorem ipsum',
- '<a href="http://www.cakephp.org/controller/action/param1/param2" class="nice cool fine amazing awesome">',
- 'ok</a>',
- '',
- ];
- $this->assertSame($expected, $result);
- $text = 'Lorem ipsum withonewordverybigMorethanthelineshouldsizeofrfcspecificationbyieeeavailableonieeesite ok.';
- $result = $renderer->doWrap($text, Message::LINE_LENGTH_SHOULD);
- $expected = [
- 'Lorem ipsum',
- 'withonewordverybigMorethanthelineshouldsizeofrfcspecificationbyieeeavailableonieeesite',
- 'ok.',
- '',
- ];
- $this->assertSame($expected, $result);
- }
- /**
- * testHeaders method
- *
- * @return void
- */
- public function testHeaders()
- {
- $this->message->setMessageId(false);
- $this->message->setHeaders(['X-Something' => 'nice']);
- $expected = [
- 'X-Something' => 'nice',
- 'Date' => date(DATE_RFC2822),
- 'MIME-Version' => '1.0',
- 'Content-Type' => 'text/plain; charset=UTF-8',
- 'Content-Transfer-Encoding' => '8bit',
- ];
- $this->assertSame($expected, $this->message->getHeaders());
- $this->message->addHeaders(['X-Something' => 'very nice', 'X-Other' => 'cool']);
- $expected = [
- 'X-Something' => 'very nice',
- 'X-Other' => 'cool',
- 'Date' => date(DATE_RFC2822),
- 'MIME-Version' => '1.0',
- 'Content-Type' => 'text/plain; charset=UTF-8',
- 'Content-Transfer-Encoding' => '8bit',
- ];
- $this->assertSame($expected, $this->message->getHeaders());
- $this->message->setFrom('cake@cakephp.org');
- $this->assertSame($expected, $this->message->getHeaders());
- $expected = [
- 'From' => 'cake@cakephp.org',
- 'X-Something' => 'very nice',
- 'X-Other' => 'cool',
- 'Date' => date(DATE_RFC2822),
- 'MIME-Version' => '1.0',
- 'Content-Type' => 'text/plain; charset=UTF-8',
- 'Content-Transfer-Encoding' => '8bit',
- ];
- $this->assertSame($expected, $this->message->getHeaders(['from' => true]));
- $this->message->setFrom('cake@cakephp.org', 'CakePHP');
- $expected['From'] = 'CakePHP <cake@cakephp.org>';
- $this->assertSame($expected, $this->message->getHeaders(['from' => true]));
- $this->message->setTo(['cake@cakephp.org', 'php@cakephp.org' => 'CakePHP']);
- $expected = [
- 'From' => 'CakePHP <cake@cakephp.org>',
- 'To' => 'cake@cakephp.org, CakePHP <php@cakephp.org>',
- 'X-Something' => 'very nice',
- 'X-Other' => 'cool',
- 'Date' => date(DATE_RFC2822),
- 'MIME-Version' => '1.0',
- 'Content-Type' => 'text/plain; charset=UTF-8',
- 'Content-Transfer-Encoding' => '8bit',
- ];
- $this->assertSame($expected, $this->message->getHeaders(['from' => true, 'to' => true]));
- $this->message->setCharset('ISO-2022-JP');
- $expected = [
- 'From' => 'CakePHP <cake@cakephp.org>',
- 'To' => 'cake@cakephp.org, CakePHP <php@cakephp.org>',
- 'X-Something' => 'very nice',
- 'X-Other' => 'cool',
- 'Date' => date(DATE_RFC2822),
- 'MIME-Version' => '1.0',
- 'Content-Type' => 'text/plain; charset=ISO-2022-JP',
- 'Content-Transfer-Encoding' => '7bit',
- ];
- $this->assertSame($expected, $this->message->getHeaders(['from' => true, 'to' => true]));
- $result = $this->message->setHeaders([]);
- $this->assertInstanceOf(Message::class, $result);
- $this->message->setHeaders(['o:tag' => ['foo']]);
- $this->message->addHeaders(['o:tag' => ['bar']]);
- $result = $this->message->getHeaders();
- $this->assertEquals(['foo', 'bar'], $result['o:tag']);
- }
- /**
- * testHeadersString method
- *
- * @return void
- */
- public function testHeadersString()
- {
- $this->message->setMessageId(false);
- $this->message->setHeaders(['X-Something' => 'nice']);
- $expected = [
- 'X-Something: nice',
- 'Date: ' . date(DATE_RFC2822),
- 'MIME-Version: 1.0',
- 'Content-Type: text/plain; charset=UTF-8',
- 'Content-Transfer-Encoding: 8bit',
- ];
- $this->assertSame(implode("\r\n", $expected), $this->message->getHeadersString());
- }
- }
|