Skip to content

Commit

Permalink
Fix #3454 - when transport is set using ::configTransport, make sure …
Browse files Browse the repository at this point in the history
…same instance is used for sending
  • Loading branch information
joerx committed May 9, 2014
1 parent da99f2b commit 2f00a45
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/Network/Email/Email.php
Expand Up @@ -947,6 +947,11 @@ protected function _constructTransport($name) {
}

$config = static::$_transportConfig[$name];

if (is_object($config['className'])) {
return $config['className'];
};

$className = App::className($config['className'], 'Network/Email', 'Transport');
if (!$className) {
throw new Exception(sprintf('Transport class "%s" not found.', $name));
Expand Down
16 changes: 16 additions & 0 deletions tests/TestCase/Network/Email/EmailTest.php
Expand Up @@ -2364,6 +2364,22 @@ public function testWrapForJapaneseEncoding() {
$this->assertEquals($expected, $result['message']);
}


/**
* CakeEmailTest::testMockTransport()
*/
public function testMockTransport() {
$mock = $this->getMock('\Cake\Network\Email\AbstractTransport');
$config = array('from' => 'tester@example.org', 'transport' => 'default');

Email::config('default', $config);
Email::configTransport('default', $mock);

$em = new Email('default');

$this->assertSame($mock, $em->transport());
}

/**
* CakeEmailTest::assertLineLengths()
*
Expand Down

0 comments on commit 2f00a45

Please sign in to comment.