@@ -119,12 +119,25 @@ public class NodeTest extends ExtendedITextTest {
119
119
Assert .assertEquals ("odd" , el .attr ("abs:href" ));
120
120
}
121
121
122
- @ Test public void handleAbsOnFileUris () {
122
+ @ Test
123
+ public void handleAbsOnFileUris () {
123
124
Document doc = Jsoup .parse ("<a href='password'>One/a><a href='/var/log/messages'>Two</a>" , "file:/etc/" );
125
+ String expectedUrl = "file:/etc/password" ;
126
+ String expectedUrlAnotherValidVersion = createAnotherValidUrlVersion (expectedUrl );
127
+
124
128
Element one = doc .select ("a" ).first ();
125
- Assert .assertEquals ("file:/etc/password" , one .absUrl ("href" ));
129
+ final String firstUrl = one .absUrl ("href" );
130
+ // Both variants(namely with triple and single slashes) are valid.
131
+
132
+ Assert .assertTrue (expectedUrl .equals (firstUrl ) || expectedUrlAnotherValidVersion .equals (firstUrl ));
133
+
134
+ expectedUrl = "file:/var/log/messages" ;
135
+ expectedUrlAnotherValidVersion = createAnotherValidUrlVersion (expectedUrl );
136
+
126
137
Element two = doc .select ("a" ).get (1 );
127
- Assert .assertEquals ("file:/var/log/messages" , two .absUrl ("href" ));
138
+ final String secondUrl = two .absUrl ("href" );
139
+ // Both variants(namely with triple and single slashes) are valid.
140
+ Assert .assertTrue (expectedUrl .equals (secondUrl ) || expectedUrlAnotherValidVersion .equals (secondUrl ));
128
141
}
129
142
130
143
@ Test
@@ -353,4 +366,16 @@ private Attributes singletonAttributes() {
353
366
attributes .put ("value" , "bar" );
354
367
return attributes ;
355
368
}
369
+
370
+ private static String createAnotherValidUrlVersion (String url ) {
371
+ if (url .startsWith ("file:///" )) {
372
+ return "file:/" + url .substring ("file:///" .length ());
373
+ } else {
374
+ if (url .startsWith ("file:/" )) {
375
+ return "file:///" + url .substring ("file:/" .length ());
376
+ } else {
377
+ return url ;
378
+ }
379
+ }
380
+ }
356
381
}
0 commit comments