Skip to content

Commit 427b34e

Browse files
sean.fabriseanfabs
authored andcommitted
restore original test - no need to rewrite it
1 parent c35c88c commit 427b34e

File tree

1 file changed

+84
-36
lines changed

1 file changed

+84
-36
lines changed

commons-email2-jakarta/src/test/java/org/apache/commons/mail2/jakarta/ImageHtmlEmailTest.java

Lines changed: 84 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -131,43 +131,90 @@ public void testEmail127() throws Exception {
131131
email.getBccAddresses(), true);
132132
}
133133

134-
@ParameterizedTest
135-
@MethodSource
136-
public void testImgRegex(String inputHtml, List<String> srcMatches) {
137-
Matcher matcher = imgSrcPattern.matcher(inputHtml);
138-
for (String expectedMatch : srcMatches) {
139-
assertTrue(matcher.find());
140-
assertEquals(expectedMatch, matcher.group(2));
141-
}
134+
@Test
135+
public void testRegex() {
136+
final Pattern pattern = Pattern.compile(ImageHtmlEmail.REGEX_IMG_SRC);
137+
138+
// ensure that the regex that we use is catching the cases correctly
139+
Matcher matcher = pattern.matcher("<html><body><img src=\"h\"/></body></html>");
140+
assertTrue(matcher.find());
141+
assertEquals("h", matcher.group(2));
142+
143+
matcher = pattern.matcher("<html><body><img id=\"laskdasdkj\" src=\"h\"/></body></html>");
144+
assertTrue(matcher.find());
145+
assertEquals("h", matcher.group(2));
146+
147+
// uppercase
148+
matcher = pattern.matcher("<html><body><IMG id=\"laskdasdkj\" SRC=\"h\"/></body></html>");
149+
assertTrue(matcher.find());
150+
assertEquals("h", matcher.group(2));
151+
152+
// matches twice
153+
matcher = pattern.matcher(
154+
"<html><body><img id=\"laskdasdkj\" src=\"http://dstadler1.org/\"/><img id=\"laskdasdkj\" src=\"http://dstadler2.org/\"/></body></html>");
155+
assertTrue(matcher.find());
156+
assertEquals("http://dstadler1.org/", matcher.group(2));
157+
assertTrue(matcher.find());
158+
assertEquals("http://dstadler2.org/", matcher.group(2));
159+
160+
// what about newlines
161+
matcher = pattern.matcher(
162+
"<html><body><img\n \rid=\"laskdasdkj\"\n \rsrc=\"http://dstadler1.org/\"/><img id=\"laskdasdkj\" src=\"http://dstadler2.org/\"/></body></html>");
163+
assertTrue(matcher.find());
164+
assertEquals("http://dstadler1.org/", matcher.group(2));
165+
assertTrue(matcher.find());
166+
assertEquals("http://dstadler2.org/", matcher.group(2));
167+
168+
// what about newlines and other whitespaces
169+
matcher = pattern.matcher(
170+
"<html><body><img\n \t\rid=\"laskdasdkj\"\n \rsrc \n =\r \"http://dstadler1.org/\"/><img \r id=\" laskdasdkj\" src = \"http://dstadler2.org/\"/></body></html>");
171+
assertTrue(matcher.find());
172+
assertEquals("http://dstadler1.org/", matcher.group(2));
173+
assertTrue(matcher.find());
174+
assertEquals("http://dstadler2.org/", matcher.group(2));
175+
176+
// what about some real markup
177+
matcher = pattern.matcher(
178+
"<img alt=\"Chart?ck=xradar&amp;w=120&amp;h=120&amp;c=7fff00|7fff00&amp;m=4&amp;g=0\" src=\"/chart?ck=xradar&amp;w=120&amp;h=120&amp;c=7fff00|7fff00&amp;m=4&amp;g=0.2&amp;l=A,C,S,T&amp;v=3.0,3.0,2.0,2.0\"");
179+
assertTrue(matcher.find());
180+
assertEquals("/chart?ck=xradar&amp;w=120&amp;h=120&amp;c=7fff00|7fff00&amp;m=4&amp;g=0.2&amp;l=A,C,S,T&amp;v=3.0,3.0,2.0,2.0", matcher.group(2));
181+
182+
// had a problem with multiple img-source tags
183+
matcher = pattern.matcher("<img src=\"file1\"/><img src=\"file2\"/>");
184+
assertTrue(matcher.find());
185+
assertEquals("file1", matcher.group(2));
186+
assertTrue(matcher.find());
187+
assertEquals("file2", matcher.group(2));
188+
189+
matcher = pattern.matcher("<img src=\"file1\"/><img src=\"file2\"/><img src=\"file3\"/><img src=\"file4\"/><img src=\"file5\"/>");
190+
assertTrue(matcher.find());
191+
assertEquals("file1", matcher.group(2));
192+
assertTrue(matcher.find());
193+
assertEquals("file2", matcher.group(2));
194+
assertTrue(matcher.find());
195+
assertEquals("file3", matcher.group(2));
196+
assertTrue(matcher.find());
197+
assertEquals("file4", matcher.group(2));
198+
assertTrue(matcher.find());
199+
assertEquals("file5", matcher.group(2));
200+
201+
// try with invalid HTML that is seems sometimes, i.e. without closing "/" or "</img>"
202+
matcher = pattern.matcher("<img src=\"file1\"><img src=\"file2\">");
203+
assertTrue(matcher.find());
204+
assertEquals("file1", matcher.group(2));
205+
assertTrue(matcher.find());
206+
assertEquals("file2", matcher.group(2));
207+
208+
// should not match any other tags
209+
matcher = pattern.matcher("<nomatch src=\"s\" />");
142210
assertFalse(matcher.find());
143-
}
144211

145-
private static Stream<Arguments> testImgRegex() {
146-
Stream<Arguments> argumentsStream = Stream.of(
147-
// ensure that the regex that we use is catching the cases correctly
148-
Arguments.of("<html><body><img src=\"h\"/></body></html>", Arrays.asList("h")),
149-
Arguments.of("<html><body><img id=\"laskdasdkj\" src=\"h\"/></body></html>", Arrays.asList("h")),
150-
// uppercase
151-
Arguments.of("<html><body><IMG id=\"laskdasdkj\" SRC=\"h\"/></body></html>", Arrays.asList("h")),
152-
// matches twice
153-
Arguments.of("<html><body><img id=\"laskdasdkj\" src=\"http://dstadler1.org/\"/><img id=\"laskdasdkj\" src=\"http://dstadler2.org/\"/></body></html>", Arrays.asList("http://dstadler1.org/", "http://dstadler2.org/")),
154-
// what about newlines
155-
Arguments.of("<html><body><img\n \rid=\"laskdasdkj\"\n \rsrc=\"http://dstadler1.org/\"/><img id=\"laskdasdkj\" src=\"http://dstadler2.org/\"/></body></html>", Arrays.asList("http://dstadler1.org/", "http://dstadler2.org/")),
156-
// what about newlines and other whitespaces
157-
Arguments.of("<html><body><img\n \t\rid=\"laskdasdkj\"\n \rsrc \n =\r \"http://dstadler1.org/\"/><img \r id=\" laskdasdkj\" src = \"http://dstadler2.org/\"/></body></html>", Arrays.asList("http://dstadler1.org/", "http://dstadler2.org/")),
158-
// what about some real markup
159-
Arguments.of("<img alt=\"Chart?ck=xradar&amp;w=120&amp;h=120&amp;c=7fff00|7fff00&amp;m=4&amp;g=0\" src=\"/chart?ck=xradar&amp;w=120&amp;h=120&amp;c=7fff00|7fff00&amp;m=4&amp;g=0.2&amp;l=A,C,S,T&amp;v=3.0,3.0,2.0,2.0\"", Arrays.asList("/chart?ck=xradar&amp;w=120&amp;h=120&amp;c=7fff00|7fff00&amp;m=4&amp;g=0.2&amp;l=A,C,S,T&amp;v=3.0,3.0,2.0,2.0")),
160-
// had a problem with multiple img-source tags
161-
Arguments.of("<img src=\"file1\"/><img src=\"file2\"/>", Arrays.asList("file1", "file2")),
162-
Arguments.of("<img src=\"file1\"/><img src=\"file2\"/><img src=\"file3\"/><img src=\"file4\"/><img src=\"file5\"/>", Arrays.asList("file1", "file2", "file3", "file4", "file5")),
163-
// try with invalid HTML that is seen sometimes, i.e. without closing "/" or "</img>"
164-
Arguments.of("<img src=\"file1\"><img src=\"file2\">", Arrays.asList("file1", "file2")),
165-
// should not match some other tag
166-
Arguments.of("<nomatch src=\"s\" />", Arrays.asList()),
167-
Arguments.of("<imgx src=\"file1\">", Arrays.asList()),
168-
Arguments.of("<img xsrc=\"file1\">", Arrays.asList())
169-
);
170-
return argumentsStream;
212+
matcher = pattern.matcher("<imgx src=\"file1\">");
213+
assertFalse(matcher.find());
214+
215+
// should not match any other attribute
216+
matcher = pattern.matcher("<img xsrc=\"file1\">");
217+
assertFalse(matcher.find());
171218
}
172219

173220
@ParameterizedTest
@@ -201,9 +248,10 @@ private static Stream<Arguments> testScriptRegex() {
201248
// try with invalid scripts
202249
Arguments.of("<script src=\"s\" />", Arrays.asList("s")),
203250
Arguments.of("<script src=\"s\">", Arrays.asList("s")),
204-
// should not match some other tag
251+
// should not match any other tags
205252
Arguments.of("<nomatch src=\"s\" />", Arrays.asList()),
206253
Arguments.of("<scriptx src=\"s\" />", Arrays.asList()),
254+
// should not match any other attribute
207255
Arguments.of("<script xsrc=\"s\" />", Arrays.asList())
208256
);
209257
return argumentsStream;

0 commit comments

Comments
 (0)