1515import static org .mockito .Mockito .when ;
1616import static org .simplejavamail .mailer .config .TransportStrategy .SMTP ;
1717import static org .simplejavamail .mailer .config .TransportStrategy .SMTPS ;
18+ import static org .simplejavamail .mailer .config .TransportStrategy .SMTP_TLS ;
1819
1920public class MailSenderTest {
2021
@@ -24,7 +25,7 @@ public class MailSenderTest {
2425
2526 @ Before
2627 public void setup () {
27- session = Session .getDefaultInstance (new Properties ());
28+ session = Session .getInstance (new Properties ());
2829 }
2930
3031 @ Nonnull
@@ -34,41 +35,72 @@ private ProxyConfig createEmptyProxyConfig() {
3435
3536 @ Test
3637 public void trustAllHosts_PLAIN () {
37- new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , true ), createEmptyProxyConfig (), SMTP );
38+ new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , true , false ), createEmptyProxyConfig (), SMTP );
3839 assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.trust" )).isEqualTo ("*" );
39- new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , false ), createEmptyProxyConfig (), SMTP );
40+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
41+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
42+ new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , false , true ), createEmptyProxyConfig (), SMTP );
4043 assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.trust" )).isNull ();
44+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
45+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
4146 }
4247
4348 @ Test
4449 public void trustAllHosts_SMTPS () {
4550 ProxyConfig proxyBypassingMock = mock (ProxyConfig .class );
4651 when (proxyBypassingMock .requiresProxy ()).thenReturn (false );
47- new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , true ), proxyBypassingMock , SMTPS );
52+ new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , true , false ), proxyBypassingMock , SMTPS );
4853 assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.trust" )).isEqualTo ("*" );
49- new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , false ), proxyBypassingMock , SMTPS );
54+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
55+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isEqualTo ("false" );
56+ new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , false , true ), proxyBypassingMock , SMTPS );
5057 assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.trust" )).isNull ();
58+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
59+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isEqualTo ("true" );
60+ }
61+
62+ @ Test
63+ public void trustAllHosts_SMTP_TLS () {
64+ ProxyConfig proxyBypassingMock = mock (ProxyConfig .class );
65+ when (proxyBypassingMock .requiresProxy ()).thenReturn (false );
66+ new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , true , false ), proxyBypassingMock , SMTP_TLS );
67+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.trust" )).isEqualTo ("*" );
68+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isEqualTo ("false" );
69+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
70+ new MailSender (session , createDummyOperationalConfig (EMPTY_LIST , false , true ), proxyBypassingMock , SMTP_TLS );
71+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.trust" )).isNull ();
72+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isEqualTo ("true" );
73+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
5174 }
5275
5376 @ Test
5477 public void trustHosts () {
55- new MailSender (session , createDummyOperationalConfig (asList (), false ), createEmptyProxyConfig (), SMTP );
78+ new MailSender (session , createDummyOperationalConfig (asList (), false , false ), createEmptyProxyConfig (), SMTP );
5679 assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.trust" )).isNull ();
57- new MailSender (session , createDummyOperationalConfig (asList ("a" ), false ), createEmptyProxyConfig (), SMTP );
80+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
81+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
82+ new MailSender (session , createDummyOperationalConfig (asList ("a" ), false , false ), createEmptyProxyConfig (), SMTP );
5883 assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.trust" )).isEqualTo ("a" );
59- new MailSender (session , createDummyOperationalConfig (asList ("a" , "b" ), false ), createEmptyProxyConfig (), SMTP );
84+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
85+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
86+ new MailSender (session , createDummyOperationalConfig (asList ("a" , "b" ), false , false ), createEmptyProxyConfig (), SMTP );
6087 assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.trust" )).isEqualTo ("a b" );
61- new MailSender (session , createDummyOperationalConfig (asList ("a" , "b" , "c" ), false ), createEmptyProxyConfig (), SMTP );
88+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
89+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
90+ new MailSender (session , createDummyOperationalConfig (asList ("a" , "b" , "c" ), false , true ), createEmptyProxyConfig (), SMTP );
6291 assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.trust" )).isEqualTo ("a b c" );
92+ assertThat (session .getProperties ().getProperty ("mail.smtp.ssl.checkserveridentity" )).isNull ();
93+ assertThat (session .getProperties ().getProperty ("mail.smtps.ssl.checkserveridentity" )).isNull ();
6394 }
6495
6596 @ Nonnull
6697 private List <String > asList (String ... args ) {
6798 return Arrays .asList (args );
6899 }
69100
101+ @ SuppressWarnings ("SameParameterValue" )
70102 @ Nonnull
71- private OperationalConfig createDummyOperationalConfig (List <String > hostsToTrust , boolean trustAllSSLHost ) {
72- return new OperationalConfig (new Properties (), 0 , 0 , false , false , hostsToTrust , trustAllSSLHost );
103+ private OperationalConfig createDummyOperationalConfig (List <String > hostsToTrust , boolean trustAllSSLHost , boolean verifyServerIdentity ) {
104+ return new OperationalConfig (new Properties (), 0 , 0 , false , false , hostsToTrust , trustAllSSLHost , verifyServerIdentity );
73105 }
74106}
0 commit comments