-
Notifications
You must be signed in to change notification settings - Fork 182
/
AuthenticationDisabledTest.java
100 lines (80 loc) · 3.59 KB
/
AuthenticationDisabledTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.icegreen.greenmail.test;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.junit.Rule;
import org.junit.Test;
import com.icegreen.greenmail.configuration.GreenMailConfiguration;
import com.icegreen.greenmail.junit.GreenMailRule;
import com.icegreen.greenmail.pop3.Pop3State;
import com.icegreen.greenmail.store.FolderException;
import com.icegreen.greenmail.user.UserException;
import com.icegreen.greenmail.user.UserImpl;
import com.icegreen.greenmail.user.UserManager;
import com.icegreen.greenmail.util.GreenMailUtil;
import com.icegreen.greenmail.util.Retriever;
import com.icegreen.greenmail.util.ServerSetup;
import com.icegreen.greenmail.util.ServerSetupTest;
public class AuthenticationDisabledTest {
@Rule
public final GreenMailRule greenMail = new GreenMailRule(
new ServerSetup[] { ServerSetupTest.SMTP, ServerSetupTest.IMAP })
.withConfiguration(GreenMailConfiguration.aConfig().withDisabledAuthentication());
@Test
public void testSendMailAndReceiveWithAuthDisabled() throws MessagingException, IOException {
final String to = "to@localhost";
final String subject = "subject";
final String body = "body";
GreenMailUtil.sendTextEmailTest(to, "from@localhost", subject, body);
MimeMessage[] emails = greenMail.getReceivedMessages();
assertThat(emails.length).isEqualTo(1);
assertThat(emails[0].getSubject()).isEqualTo(subject);
assertThat(emails[0].getContent()).isEqualTo(body);
greenMail.waitForIncomingEmail(5000, 1);
try (Retriever retriever = new Retriever(greenMail.getImap())) {
Message[] messages = retriever.getMessages(to);
assertThat(messages.length).isEqualTo(1);
assertThat(messages[0].getSubject()).isEqualTo(subject);
assertThat(messages[0].getContent()).isEqualTo(body);
}
}
@Test
public void testReceiveWithAuthDisabled() {
final String to = "to@localhost";
greenMail.waitForIncomingEmail(500, 1);
try (Retriever retriever = new Retriever(greenMail.getImap())) {
Message[] messages = retriever.getMessages(to);
assertThat(messages.length).isEqualTo(0);
}
}
@Test
public void testReceiveWithAuthDisabledAndProvisionedUser() {
final String to = "to@localhost";
greenMail.setUser(to, "to", "secret");
greenMail.waitForIncomingEmail(500, 1);
try (Retriever retriever = new Retriever(greenMail.getImap())) {
Message[] messages = retriever.getMessages(to);
assertThat(messages.length).isEqualTo(0);
}
}
@Test
public void testPop3ConnectNoAuth() throws UserException, FolderException {
UserManager userManager = greenMail.getUserManager();
Pop3State status = new Pop3State(userManager);
userManager.setAuthRequired(false);
UserImpl user = new UserImpl("email@example.com", "user", "pwd", null);
status.setUser(user);
status.authenticate("pass");
}
@Test(expected = UserException.class)
public void testPop3ConnectAuth() throws UserException, FolderException {
UserManager userManager = greenMail.getUserManager();
Pop3State status = new Pop3State(userManager);
userManager.setAuthRequired(true);
UserImpl user = new UserImpl("email@example.com", "user", "pwd", null);
status.setUser(user);
status.authenticate("pass");
}
}