Search in sources :

Example 11 with Transport

use of com.fsck.k9.mail.Transport in project k-9 by k9mail.

the class SmtpTransportTest method open_withXoauth2Extension_shouldThrowOnMultipleFailure.

@Test
public void open_withXoauth2Extension_shouldThrowOnMultipleFailure() 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.STATUS_400_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("334 " + XOAuth2ChallengeParserTest.STATUS_400_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("QUIT");
    server.output("221 BYE");
    SmtpTransport transport = startServerAndCreateSmtpTransport(server, AuthType.XOAUTH2, ConnectionSecurity.NONE);
    try {
        transport.open();
        fail("Exception expected");
    } catch (AuthenticationFailedException e) {
        assertEquals("5.7.1 Username and Password not accepted. Learn more at " + "5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 hx9sm5317360pbc.68", e.getMessage());
    }
    server.verifyConnectionClosed();
    server.verifyInteractionCompleted();
}
Also used : AuthenticationFailedException(com.fsck.k9.mail.AuthenticationFailedException) MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Example 12 with Transport

use of com.fsck.k9.mail.Transport in project k-9 by k9mail.

the class SmtpTransportTest method sendMessage_withSingleRecipient.

@Test
public void sendMessage_withSingleRecipient() throws Exception {
    Message message = getDefaultMessage();
    MockSmtpServer server = createServerAndSetupForPlainAuthentication();
    server.expect("MAIL FROM:<user@localhost>");
    server.output("250 OK");
    server.expect("RCPT TO:<user2@localhost>");
    server.output("250 OK");
    server.expect("DATA");
    server.output("354 End data with <CR><LF>.<CR><LF>");
    server.expect("[message data]");
    server.expect(".");
    server.output("250 OK: queued as 12345");
    server.expect("QUIT");
    server.output("221 BYE");
    server.closeConnection();
    SmtpTransport transport = startServerAndCreateSmtpTransport(server);
    transport.sendMessage(message);
    server.verifyConnectionClosed();
    server.verifyInteractionCompleted();
}
Also used : MimeMessage(com.fsck.k9.mail.internet.MimeMessage) Message(com.fsck.k9.mail.Message) MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Example 13 with Transport

use of com.fsck.k9.mail.Transport in project k-9 by k9mail.

the class SmtpTransportTest method sendMessage_with8BitEncodingExtensionNotCaseSensitive.

@Test
public void sendMessage_with8BitEncodingExtensionNotCaseSensitive() throws Exception {
    Message message = getDefaultMessage();
    MockSmtpServer server = createServerAndSetupForPlainAuthentication("8bitmime");
    server.expect("MAIL FROM:<user@localhost> BODY=8BITMIME");
    server.output("250 OK");
    server.expect("RCPT TO:<user2@localhost>");
    server.output("250 OK");
    server.expect("DATA");
    server.output("354 End data with <CR><LF>.<CR><LF>");
    server.expect("[message data]");
    server.expect(".");
    server.output("250 OK: queued as 12345");
    server.expect("QUIT");
    server.output("221 BYE");
    server.closeConnection();
    SmtpTransport transport = startServerAndCreateSmtpTransport(server);
    transport.sendMessage(message);
    server.verifyConnectionClosed();
    server.verifyInteractionCompleted();
}
Also used : MimeMessage(com.fsck.k9.mail.internet.MimeMessage) Message(com.fsck.k9.mail.Message) MockSmtpServer(com.fsck.k9.mail.transport.mockServer.MockSmtpServer) XOAuth2ChallengeParserTest(com.fsck.k9.mail.XOAuth2ChallengeParserTest) Test(org.junit.Test)

Example 14 with Transport

use of com.fsck.k9.mail.Transport in project k-9 by k9mail.

the class SmtpTransportTest method open_withXoauth2Extension_shouldInvalidateAndRetryOn400Response.

@Test
public void open_withXoauth2Extension_shouldInvalidateAndRetryOn400Response() 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.STATUS_400_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 15 with Transport

use of com.fsck.k9.mail.Transport in project k-9 by k9mail.

the class SmtpTransportTest method open_withAuthPlainExtension.

@Test
public void open_withAuthPlainExtension() 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 PLAIN LOGIN");
    server.expect("AUTH PLAIN AHVzZXIAcGFzc3dvcmQ=");
    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

Test (org.junit.Test)29 XOAuth2ChallengeParserTest (com.fsck.k9.mail.XOAuth2ChallengeParserTest)27 MockSmtpServer (com.fsck.k9.mail.transport.mockServer.MockSmtpServer)27 AuthenticationFailedException (com.fsck.k9.mail.AuthenticationFailedException)6 MessagingException (com.fsck.k9.mail.MessagingException)6 MimeMessage (com.fsck.k9.mail.internet.MimeMessage)6 Message (com.fsck.k9.mail.Message)5 InOrder (org.mockito.InOrder)5 CertificateValidationException (com.fsck.k9.mail.CertificateValidationException)3 SuppressLint (android.annotation.SuppressLint)1 VisibleForTesting (android.support.annotation.VisibleForTesting)1 FetchProfile (com.fsck.k9.mail.FetchProfile)1 Transport (com.fsck.k9.mail.Transport)1 LocalFolder (com.fsck.k9.mailstore.LocalFolder)1 LocalMessage (com.fsck.k9.mailstore.LocalMessage)1 LocalStore (com.fsck.k9.mailstore.LocalStore)1 UnavailableStorageException (com.fsck.k9.mailstore.UnavailableStorageException)1 IOException (java.io.IOException)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1