Klimov Paul
11 years ago
3 changed files with 129 additions and 3 deletions
@ -0,0 +1,127 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit\framework\mail; |
||||
|
||||
use Yii; |
||||
use yii\mail\BaseMailer; |
||||
use yii\mail\BaseMessage; |
||||
use yiiunit\TestCase; |
||||
|
||||
/** |
||||
* @group mail |
||||
*/ |
||||
class BaseMessageTest extends TestCase |
||||
{ |
||||
public function setUp() |
||||
{ |
||||
$this->mockApplication([ |
||||
'components' => [ |
||||
'mail' => $this->createTestEmailComponent() |
||||
] |
||||
]); |
||||
} |
||||
|
||||
/** |
||||
* @return Mailer test email component instance. |
||||
*/ |
||||
protected function createTestEmailComponent() |
||||
{ |
||||
$component = new TestMailer(); |
||||
return $component; |
||||
} |
||||
|
||||
/** |
||||
* @return TestMailer mailer instance. |
||||
*/ |
||||
protected function getMailer() |
||||
{ |
||||
return Yii::$app->getComponent('mail'); |
||||
} |
||||
|
||||
// Tests : |
||||
|
||||
public function testRender() |
||||
{ |
||||
$mailer = $this->getMailer(); |
||||
$message = $mailer->createMessage(); |
||||
|
||||
$viewName = 'test/text/view'; |
||||
$message->renderText($viewName); |
||||
$expectedText = 'view=' . $viewName . ' layout=' . $mailer->textLayout; |
||||
$this->assertEquals($expectedText, $message->text, 'Unable to render text!'); |
||||
|
||||
$viewName = 'test/html/view'; |
||||
$message->renderHtml($viewName); |
||||
$expectedHtml = 'view=' . $viewName . ' layout=' . $mailer->htmlLayout; |
||||
$this->assertEquals($expectedHtml, $message->html, 'Unable to render text!'); |
||||
} |
||||
|
||||
public function testSend() |
||||
{ |
||||
$mailer = $this->getMailer(); |
||||
$message = $mailer->createMessage(); |
||||
$message->send(); |
||||
$this->assertEquals($message, $mailer->sentMessages[0], 'Unable to send message!'); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Test Mailer class |
||||
*/ |
||||
class TestMailer extends BaseMailer |
||||
{ |
||||
public $messageClass = 'yiiunit\framework\mail\TestMessage'; |
||||
public $sentMessages = array(); |
||||
|
||||
public function render($view, $params = [], $layout = false) |
||||
{ |
||||
return 'view=' . $view . ' layout=' . $layout; |
||||
} |
||||
|
||||
public function send($message) |
||||
{ |
||||
$this->sentMessages[] = $message; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Test Message class |
||||
*/ |
||||
class TestMessage extends BaseMessage |
||||
{ |
||||
public $text; |
||||
public $html; |
||||
|
||||
public function setCharset($charset) {} |
||||
|
||||
public function setFrom($from) {} |
||||
|
||||
public function setTo($to) {} |
||||
|
||||
public function setCc($cc) {} |
||||
|
||||
public function setBcc($bcc) {} |
||||
|
||||
public function setSubject($subject) {} |
||||
|
||||
public function setText($text) { |
||||
$this->text = $text; |
||||
} |
||||
|
||||
public function setHtml($html) { |
||||
$this->html = $html; |
||||
} |
||||
|
||||
public function attachContent($content, array $options = []) {} |
||||
|
||||
public function attachFile($fileName, array $options = []) {} |
||||
|
||||
public function embedFile($fileName, array $options = []) {} |
||||
|
||||
public function embedContent($content, array $options = []) {} |
||||
|
||||
public function __toString() |
||||
{ |
||||
return get_class($this); |
||||
} |
||||
} |
Loading…
Reference in new issue