@@ -83,6 +83,91 @@ public void testGetAddressWithoutSettingIt() throws Exception {
8383 assertNull ("null addressMd5 if none set" , email2 .getAddressMd5 ());
8484 }
8585
86+ @ Test
87+ public void testNormalizing () throws Exception {
88+ Email e ;
89+
90+ e = new Builder ().address ("test@maxmind.com" ).hashAddress ().build ();
91+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
92+ assertEquals ("domain" , "maxmind.com" , e .getDomain ());
93+
94+ e = new Builder ().address ("Test@maxmind.com" ).hashAddress ().build ();
95+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
96+ assertEquals ("domain" , "maxmind.com" , e .getDomain ());
97+
98+ e = new Builder (false ).address (" Test@maxmind.com" ).hashAddress ().build ();
99+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
100+ assertEquals ("domain" , "maxmind.com" , e .getDomain ());
101+
102+ e = new Builder ().address ("Test+alias@maxmind.com" ).hashAddress ().build ();
103+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
104+ assertEquals ("domain" , "maxmind.com" , e .getDomain ());
105+
106+ e = new Builder ().address ("Test+007+008@maxmind.com" ).hashAddress ().build ();
107+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
108+ assertEquals ("domain" , "maxmind.com" , e .getDomain ());
109+
110+ e = new Builder ().address ("Test+@maxmind.com" ).hashAddress ().build ();
111+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
112+ assertEquals ("domain" , "maxmind.com" , e .getDomain ());
113+
114+ e = new Builder (false ).address ("Test@maxmind.com." ).hashAddress ().build ();
115+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
116+ assertEquals ("domain" , "maxmind.com." , e .getDomain ());
117+
118+ e = new Builder ().address ("+@maxmind.com" ).hashAddress ().build ();
119+ assertEquals ("MD5" , "aa57884e48f0dda9fc6f4cb2bffb1dd2" , e .getAddress ());
120+ assertEquals ("domain" , "maxmind.com" , e .getDomain ());
121+
122+ e = new Builder (false ).address ("Test@ maxmind.com" ).hashAddress ().build ();
123+ assertEquals ("MD5" , "977577b140bfb7c516e4746204fbdb01" , e .getAddress ());
124+ assertEquals ("domain" , " maxmind.com" , e .getDomain ());
125+
126+ e = new Builder ().address ("Test+foo@yahoo.com" ).hashAddress ().build ();
127+ assertEquals ("MD5" , "a5f830c699fd71ad653aa59fa688c6d9" , e .getAddress ());
128+ assertEquals ("domain" , "yahoo.com" , e .getDomain ());
129+
130+ e = new Builder ().address ("Test-foo@yahoo.com" ).hashAddress ().build ();
131+ assertEquals ("MD5" , "88e478531ab3bc303f1b5da82c2e9bbb" , e .getAddress ());
132+ assertEquals ("domain" , "yahoo.com" , e .getDomain ());
133+
134+ e = new Builder ().address ("Test-foo-foo2@yahoo.com" ).hashAddress ().build ();
135+ assertEquals ("MD5" , "88e478531ab3bc303f1b5da82c2e9bbb" , e .getAddress ());
136+ assertEquals ("domain" , "yahoo.com" , e .getDomain ());
137+
138+ e = new Builder ().address ("Test-foo@gmail.com" ).hashAddress ().build ();
139+ assertEquals ("MD5" , "6f3ff986fa5e830dbbf08a942777a17c" , e .getAddress ());
140+ assertEquals ("domain" , "gmail.com" , e .getDomain ());
141+
142+ e = new Builder ().address ("test@gmail.com" ).hashAddress ().build ();
143+ assertEquals ("MD5" , "1aedb8d9dc4751e229a335e371db8058" , e .getAddress ());
144+ assertEquals ("domain" , "gmail.com" , e .getDomain ());
145+
146+ e = new Builder ().address ("test@gamil.com" ).hashAddress ().build ();
147+ assertEquals ("MD5" , "1aedb8d9dc4751e229a335e371db8058" , e .getAddress ());
148+ assertEquals ("domain" , "gamil.com" , e .getDomain ());
149+
150+ e = new Builder ().address ("test@bücher.com" ).hashAddress ().build ();
151+ assertEquals ("MD5" , "24948acabac551360cd510d5e5e2b464" , e .getAddress ());
152+ assertEquals ("domain" , "bücher.com" , e .getDomain ());
153+
154+ e = new Builder ().address ("Test+alias@Bücher.com" ).hashAddress ().build ();
155+ assertEquals ("MD5" , "24948acabac551360cd510d5e5e2b464" , e .getAddress ());
156+ assertEquals ("domain" , "Bücher.com" , e .getDomain ());
157+
158+ e = new Builder (false ).address ("test" ).hashAddress ().build ();
159+ assertEquals ("MD5" , "098f6bcd4621d373cade4e832627b4f6" , e .getAddress ());
160+ assertNull ("domain" , e .getDomain ());
161+
162+ e = new Builder (false ).address ("test@" ).hashAddress ().build ();
163+ assertEquals ("MD5" , "246a848af2f8394e3adbc738dbe43720" , e .getAddress ());
164+ assertNull ("domain" , e .getDomain ());
165+
166+ e = new Builder (false ).address ("test@." ).hashAddress ().build ();
167+ assertEquals ("MD5" , "246a848af2f8394e3adbc738dbe43720" , e .getAddress ());
168+ assertEquals ("domain" , "." , e .getDomain ());
169+ }
170+
86171 @ Test (expected = IllegalArgumentException .class )
87172 public void testInvalidAddress () throws Exception {
88173 new Builder ().address ("a@test@test.org" ).build ();
0 commit comments