/
home
/
obinna
/
html
/
cravings
/
vendor
/
swiftmailer
/
swiftmailer
/
tests
/
unit
/
Swift
/
Transport
/
Esmtp
/
Auth
/
Upload File
HOME
<?php class Swift_Transport_Esmtp_Auth_PlainAuthenticatorTest extends \SwiftMailerTestCase { private $agent; protected function setUp() { $this->agent = $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing(); } public function testKeywordIsPlain() { /* -- RFC 4616, 1. The name associated with this mechanism is "PLAIN". */ $login = $this->getAuthenticator(); $this->assertEquals('PLAIN', $login->getAuthKeyword()); } public function testSuccessfulAuthentication() { /* -- RFC 4616, 2. The client presents the authorization identity (identity to act as), followed by a NUL (U+0000) character, followed by the authentication identity (identity whose password will be used), followed by a NUL (U+0000) character, followed by the clear-text password. */ $plain = $this->getAuthenticator(); $this->agent->shouldReceive('executeCommand') ->once() ->with('AUTH PLAIN '.base64_encode( 'jack'.chr(0).'jack'.chr(0).'pass' )."\r\n", [235]); $this->assertTrue($plain->authenticate($this->agent, 'jack', 'pass'), '%s: The buffer accepted all commands authentication should succeed' ); } /** * @expectedException \Swift_TransportException */ public function testAuthenticationFailureSendRset() { $plain = $this->getAuthenticator(); $this->agent->shouldReceive('executeCommand') ->once() ->with('AUTH PLAIN '.base64_encode( 'jack'.chr(0).'jack'.chr(0).'pass' )."\r\n", [235]) ->andThrow(new Swift_TransportException('')); $this->agent->shouldReceive('executeCommand') ->once() ->with("RSET\r\n", [250]); $plain->authenticate($this->agent, 'jack', 'pass'); } private function getAuthenticator() { return new Swift_Transport_Esmtp_Auth_PlainAuthenticator(); } }