@@ -103,6 +103,80 @@ public function testStrict()
103103 $ this ->assertNoViolation ();
104104 }
105105
106+ /**
107+ * @dataProvider getInvalidEmailsForStrictChecks
108+ */
109+ public function testStrictWithInvalidEmails ($ email )
110+ {
111+ $ constraint = new Email (array (
112+ 'message ' => 'myMessage ' ,
113+ 'strict ' => true ,
114+ ));
115+
116+ $ this ->validator ->validate ($ email , $ constraint );
117+
118+ $ this
119+ ->buildViolation ('myMessage ' )
120+ ->setParameter ('{{ value }} ' , '" ' .$ email .'" ' )
121+ ->setCode (Email::INVALID_FORMAT_ERROR )
122+ ->assertRaised ();
123+ }
124+
125+ /**
126+ * @link https://github.com/egulias/EmailValidator/blob/1.2.8/tests/egulias/Tests/EmailValidator/EmailValidatorTest.php
127+ */
128+ public function getInvalidEmailsForStrictChecks ()
129+ {
130+ return array (
131+ array ('test@example.com test ' ),
132+ array ('user name@example.com ' ),
133+ array ('user name@example.com ' ),
134+ array ('example.@example.co.uk ' ),
135+ array ('example@example@example.co.uk ' ),
136+ array ('(test_exampel@example.fr) ' ),
137+ array ('example(example)example@example.co.uk ' ),
138+ array ('.example@localhost ' ),
139+ array ('ex\ample@localhost ' ),
140+ array ('example@local\host ' ),
141+ array ('example@localhost. ' ),
142+ array ('user name@example.com ' ),
143+ array ('username@ example . com ' ),
144+ array ('example@(fake).com ' ),
145+ array ('example@(fake.com ' ),
146+ array ('username@example,com ' ),
147+ array ('usern,ame@example.com ' ),
148+ array ('user[na]me@example.com ' ),
149+ array ('"""@iana.org ' ),
150+ array ('"\"@iana.org ' ),
151+ array ('"test"test@iana.org ' ),
152+ array ('"test""test"@iana.org ' ),
153+ array ('"test"."test"@iana.org ' ),
154+ array ('"test".test@iana.org ' ),
155+ array ('"test" ' . chr (0 ) . '@iana.org ' ),
156+ array ('"test\"@iana.org ' ),
157+ array (chr (226 ) . '@iana.org ' ),
158+ array ('test@ ' . chr (226 ) . '.org ' ),
159+ array ('\r\ntest@iana.org ' ),
160+ array ('\r\n test@iana.org ' ),
161+ array ('\r\n \r\ntest@iana.org ' ),
162+ array ('\r\n \r\ntest@iana.org ' ),
163+ array ('\r\n \r\n test@iana.org ' ),
164+ array ('test@iana.org \r\n ' ),
165+ array ('test@iana.org \r\n ' ),
166+ array ('test@iana.org \r\n \r\n ' ),
167+ array ('test@iana.org \r\n\r\n ' ),
168+ array ('test@iana.org \r\n\r\n ' ),
169+ array ('test@iana/icann.org ' ),
170+ array ('test@foo;bar.com ' ),
171+ array ('test;123@foobar.com ' ),
172+ array ('test@example..com ' ),
173+ array ('email.email@email." ' ),
174+ array ('test@email> ' ),
175+ array ('test@email< ' ),
176+ array ('test@email{ ' ),
177+ );
178+ }
179+
106180 /**
107181 * @dataProvider getDnsChecks
108182 * @requires function Symfony\Bridge\PhpUnit\DnsMock::withMockedHosts
0 commit comments