_createEventDispatcher(); } $transport = new Swift_Transport_SendmailTransport($buf, $dispatcher); $transport->setCommand($command); return $transport; } protected function _getSendmail($buf, $dispatcher = null) { if (!$dispatcher) { $dispatcher = $this->_createEventDispatcher(); } $sendmail = new Swift_Transport_SendmailTransport($buf, $dispatcher); return $sendmail; } public function testCommandCanBeSetAndFetched() { $buf = $this->_getBuffer(); $sendmail = $this->_getSendmail($buf); $sendmail->setCommand('/usr/sbin/sendmail -bs'); $this->assertEquals('/usr/sbin/sendmail -bs', $sendmail->getCommand()); $sendmail->setCommand('/usr/sbin/sendmail -oi -t'); $this->assertEquals('/usr/sbin/sendmail -oi -t', $sendmail->getCommand()); } public function testSendingMessageIn_t_ModeUsesSimplePipe() { $buf = $this->_getBuffer(); $sendmail = $this->_getSendmail($buf); $message = $this->_createMessage(); $message->shouldReceive('getTo') ->zeroOrMoreTimes() ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); $message->shouldReceive('toByteStream') ->once() ->with($buf); $buf->shouldReceive('initialize') ->once(); $buf->shouldReceive('terminate') ->once(); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array("\r\n" => "\n", "\n." => "\n..")); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array()); $sendmail->setCommand('/usr/sbin/sendmail -t'); $this->assertEquals(2, $sendmail->send($message)); } public function testSendingIn_t_ModeWith_i_FlagDoesntEscapeDot() { $buf = $this->_getBuffer(); $sendmail = $this->_getSendmail($buf); $message = $this->_createMessage(); $message->shouldReceive('getTo') ->zeroOrMoreTimes() ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); $message->shouldReceive('toByteStream') ->once() ->with($buf); $buf->shouldReceive('initialize') ->once(); $buf->shouldReceive('terminate') ->once(); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array("\r\n" => "\n")); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array()); $sendmail->setCommand('/usr/sbin/sendmail -i -t'); $this->assertEquals(2, $sendmail->send($message)); } public function testSendingInTModeWith_oi_FlagDoesntEscapeDot() { $buf = $this->_getBuffer(); $sendmail = $this->_getSendmail($buf); $message = $this->_createMessage(); $message->shouldReceive('getTo') ->zeroOrMoreTimes() ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); $message->shouldReceive('toByteStream') ->once() ->with($buf); $buf->shouldReceive('initialize') ->once(); $buf->shouldReceive('terminate') ->once(); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array("\r\n" => "\n")); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array()); $sendmail->setCommand('/usr/sbin/sendmail -oi -t'); $this->assertEquals(2, $sendmail->send($message)); } public function testSendingMessageRegeneratesId() { $buf = $this->_getBuffer(); $sendmail = $this->_getSendmail($buf); $message = $this->_createMessage(); $message->shouldReceive('getTo') ->zeroOrMoreTimes() ->andReturn(array('foo@bar' => 'Foobar', 'zip@button' => 'Zippy')); $message->shouldReceive('generateId'); $buf->shouldReceive('initialize') ->once(); $buf->shouldReceive('terminate') ->once(); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array("\r\n" => "\n", "\n." => "\n..")); $buf->shouldReceive('setWriteTranslations') ->once() ->with(array()); $sendmail->setCommand('/usr/sbin/sendmail -t'); $this->assertEquals(2, $sendmail->send($message)); } public function testFluidInterface() { $buf = $this->_getBuffer(); $sendmail = $this->_getTransport($buf); $ref = $sendmail->setCommand('/foo'); $this->assertEquals($ref, $sendmail); } }