Search in sources :

Example 16 with MockSmtpServer

use of com.fsck.k9.mail.transport.mockServer.MockSmtpServer in project k-9 by k9mail.

the class SmtpTransportTest method open_withoutAuthExternalExtension_shouldThrow.

@Test
public void open_withoutAuthExternalExtension_shouldThrow() throws Exception {
    MockSmtpServer server = new MockSmtpServer();
    server.output("220 localhost Simple Mail Transfer Service Ready");
    server.expect("EHLO localhost");
    server.output("250-localhost Hello client.localhost");
    server.output("250 AUTH");
    server.expect("QUIT");
    server.output("221 BYE");
    SmtpTransport transport = startServerAndCreateSmtpTransport(server, AuthType.EXTERNAL, ConnectionSecurity.NONE);
    try {
        transport.open();
        fail("Exception expected");
    } catch (CertificateValidationException e) {
        assertEquals(CertificateValidationException.Reason.MissingCapability, e.getReason());
    }
    server.verifyConnectionClosed();
    server.verifyInteractionCompleted();
}
Also used : MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) CertificateValidationException(com.fsck.k9.mail.CertificateValidationException) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Example 17 with MockSmtpServer

use of com.fsck.k9.mail.transport.mockServer.MockSmtpServer in project k-9 by k9mail.

the class SmtpTransportTest method open_withAutomaticAuthAndNoTransportSecurityAndAuthCramMd5Extension_shouldUseAuthCramMd5.

@Test
public void open_withAutomaticAuthAndNoTransportSecurityAndAuthCramMd5Extension_shouldUseAuthCramMd5() throws Exception {
    MockSmtpServer server = new MockSmtpServer();
    server.output("220 localhost Simple Mail Transfer Service Ready");
    server.expect("EHLO localhost");
    server.output("250-localhost Hello client.localhost");
    server.output("250 AUTH CRAM-MD5");
    server.expect("AUTH CRAM-MD5");
    server.output(Base64.encode("<24609.1047914046@localhost>"));
    server.expect("dXNlciA3NmYxNWEzZmYwYTNiOGI1NzcxZmNhODZlNTcyMDk2Zg==");
    server.output("235 2.7.0 Authentication successful");
    SmtpTransport transport = startServerAndCreateSmtpTransport(server, AuthType.AUTOMATIC, ConnectionSecurity.NONE);
    transport.open();
    server.verifyConnectionStillOpen();
    server.verifyInteractionCompleted();
}
Also used : MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Example 18 with MockSmtpServer

use of com.fsck.k9.mail.transport.mockServer.MockSmtpServer in project k-9 by k9mail.

the class SmtpTransportTest method open_withXoauth2Extension_shouldInvalidateAndRetryOnMissingStatusJsonResponse.

@Test
public void open_withXoauth2Extension_shouldInvalidateAndRetryOnMissingStatusJsonResponse() throws Exception {
    MockSmtpServer server = new MockSmtpServer();
    server.output("220 localhost Simple Mail Transfer Service Ready");
    server.expect("EHLO localhost");
    server.output("250-localhost Hello client.localhost");
    server.output("250 AUTH XOAUTH2");
    server.expect("AUTH XOAUTH2 dXNlcj11c2VyAWF1dGg9QmVhcmVyIG9sZFRva2VuAQE=");
    server.output("334 " + XOAuth2ChallengeParserTest.MISSING_STATUS_RESPONSE);
    server.expect("");
    server.output("535-5.7.1 Username and Password not accepted. Learn more at");
    server.output("535 5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 hx9sm5317360pbc.68");
    server.expect("AUTH XOAUTH2 dXNlcj11c2VyAWF1dGg9QmVhcmVyIG5ld1Rva2VuAQE=");
    server.output("235 2.7.0 Authentication successful");
    SmtpTransport transport = startServerAndCreateSmtpTransport(server, AuthType.XOAUTH2, ConnectionSecurity.NONE);
    transport.open();
    InOrder inOrder = inOrder(oAuth2TokenProvider);
    inOrder.verify(oAuth2TokenProvider).getToken(eq(USERNAME), anyInt());
    inOrder.verify(oAuth2TokenProvider).invalidateToken(USERNAME);
    inOrder.verify(oAuth2TokenProvider).getToken(eq(USERNAME), anyInt());
    server.verifyConnectionStillOpen();
    server.verifyInteractionCompleted();
}
Also used : InOrder(org.mockito.InOrder) MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Example 19 with MockSmtpServer

use of com.fsck.k9.mail.transport.mockServer.MockSmtpServer in project k-9 by k9mail.

the class SmtpTransportTest method open_withCramMd5AuthExtension.

@Test
public void open_withCramMd5AuthExtension() throws Exception {
    MockSmtpServer server = new MockSmtpServer();
    server.output("220 localhost Simple Mail Transfer Service Ready");
    server.expect("EHLO localhost");
    server.output("250-localhost Hello client.localhost");
    server.output("250 AUTH CRAM-MD5");
    server.expect("AUTH CRAM-MD5");
    server.output(Base64.encode("<24609.1047914046@localhost>"));
    server.expect("dXNlciA3NmYxNWEzZmYwYTNiOGI1NzcxZmNhODZlNTcyMDk2Zg==");
    server.output("235 2.7.0 Authentication successful");
    SmtpTransport transport = startServerAndCreateSmtpTransport(server, AuthType.CRAM_MD5, ConnectionSecurity.NONE);
    transport.open();
    server.verifyConnectionStillOpen();
    server.verifyInteractionCompleted();
}
Also used : MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Example 20 with MockSmtpServer

use of com.fsck.k9.mail.transport.mockServer.MockSmtpServer in project k-9 by k9mail.

the class SmtpTransportTest method open_withAuthLoginExtension.

@Test
public void open_withAuthLoginExtension() throws Exception {
    MockSmtpServer server = new MockSmtpServer();
    server.output("220 localhost Simple Mail Transfer Service Ready");
    server.expect("EHLO localhost");
    server.output("250-localhost Hello client.localhost");
    server.output("250 AUTH LOGIN");
    server.expect("AUTH LOGIN");
    server.output("250 OK");
    server.expect("dXNlcg==");
    server.output("250 OK");
    server.expect("cGFzc3dvcmQ=");
    server.output("235 2.7.0 Authentication successful");
    SmtpTransport transport = startServerAndCreateSmtpTransport(server, AuthType.PLAIN, ConnectionSecurity.NONE);
    transport.open();
    server.verifyConnectionStillOpen();
    server.verifyInteractionCompleted();
}
Also used : MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Aggregations

MockSmtpServer (com.fsck.k9.mail.transport.mockServer.MockSmtpServer)28 XOAuth2ChallengeParserTest (com.fsck.k9.mail.XOAuth2ChallengeParserTest)27 Test (org.junit.Test)27 MimeMessage (com.fsck.k9.mail.internet.MimeMessage)6 Message (com.fsck.k9.mail.Message)5 MessagingException (com.fsck.k9.mail.MessagingException)5 InOrder (org.mockito.InOrder)5 AuthenticationFailedException (com.fsck.k9.mail.AuthenticationFailedException)4 Matchers.anyString (org.mockito.Matchers.anyString)2 CertificateValidationException (com.fsck.k9.mail.CertificateValidationException)1 ServerSettings (com.fsck.k9.mail.ServerSettings)1 StoreConfig (com.fsck.k9.mail.store.StoreConfig)1