You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
1.8 KiB
97 lines
1.8 KiB
<?php |
|
|
|
namespace yiiunit\framework\email; |
|
|
|
use Yii; |
|
use yii\base\View; |
|
use yii\email\BaseMailer; |
|
use yii\email\BaseMessage; |
|
use yiiunit\TestCase; |
|
|
|
/** |
|
* @group email |
|
*/ |
|
class BaseMailerTest extends TestCase |
|
{ |
|
public function setUp() |
|
{ |
|
$this->mockApplication(); |
|
Yii::$app->setComponent('email', $this->createTestEmailComponent()); |
|
} |
|
|
|
/** |
|
* @return Mailer test email component instance. |
|
*/ |
|
protected function createTestEmailComponent() |
|
{ |
|
$component = new Mailer(); |
|
return $component; |
|
} |
|
|
|
// Tests : |
|
|
|
public function testSetupView() |
|
{ |
|
$mailer = new Mailer(); |
|
|
|
$view = new View(); |
|
$mailer->setView($view); |
|
$this->assertEquals($view, $mailer->getView(), 'Unable to setup view!'); |
|
} |
|
|
|
public function testGetDefaultView() |
|
{ |
|
$mailer = new Mailer(); |
|
$view = $mailer->getView(); |
|
$this->assertTrue(is_object($view), 'Unable to get default view!'); |
|
} |
|
|
|
public function testDefaultMessageConfig() |
|
{ |
|
$defaultMessageConfig = array( |
|
'id' => 'test-id', |
|
'encoding' => 'test-encoding', |
|
); |
|
Yii::$app->getComponent('email')->setDefaultMessageConfig($defaultMessageConfig); |
|
|
|
$message = new Message(); |
|
|
|
foreach ($defaultMessageConfig as $name => $value) { |
|
$this->assertEquals($value, $message->$name); |
|
} |
|
} |
|
} |
|
|
|
/** |
|
* Test Mailer class |
|
*/ |
|
class Mailer extends BaseMailer |
|
{ |
|
public $sentMessages = array(); |
|
|
|
public function send($message) |
|
{ |
|
$this->sentMessages[] = $message; |
|
} |
|
} |
|
|
|
/** |
|
* Test Message class |
|
*/ |
|
class Message extends BaseMessage |
|
{ |
|
public $id; |
|
public $encoding; |
|
|
|
public function setFrom($from) {} |
|
|
|
public function setTo($to) {} |
|
|
|
public function setSubject($subject) {} |
|
|
|
public function setText($text) {} |
|
|
|
public function setHtml($html) {} |
|
|
|
public function createAttachment($content, $fileName, $contentType = 'application/octet-stream') {} |
|
} |