Skip to content

Commit 32b7cef

Browse files
Egor MartsynkovskyiText-CI
authored andcommitted
Unify test behaviour on java and android
DEVSIX-6330
1 parent 6a34fa4 commit 32b7cef

File tree

3 files changed

+52
-10
lines changed

3 files changed

+52
-10
lines changed

styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/UriResolverTest.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,13 +237,28 @@ public void uriResolverTest14() throws MalformedURLException {
237237
UriResolver resolver = new UriResolver("base/uri/index.html");
238238
String runFolder = Paths.get("").toUri().toURL().toExternalForm();
239239
Assert.assertEquals(runFolder + "base/uri/index.html", resolver.getBaseUri());
240-
Assert.assertEquals("file:/c:/test/folder/img.txt", resolver.resolveAgainstBaseUri("file:/c:/test/folder/img.txt").toExternalForm());
241-
Assert.assertEquals("file://c:/test/folder/img.txt", resolver.resolveAgainstBaseUri("file://c:/test/folder/img.txt").toExternalForm());
242-
Assert.assertEquals("file:/c:/test/folder/data.jpg", resolver.resolveAgainstBaseUri("file:///c:/test/folder/data.jpg").toExternalForm());
240+
241+
final String firstUriResolvingResult = resolver.resolveAgainstBaseUri("file:/c:/test/folder/img.txt")
242+
.toExternalForm();
243+
final String expectedUriWithSingleSlash = "file:/c:/test/folder/img.txt";
244+
final String expectedUriWithTripleSlash = "file:///c:/test/folder/img.txt";
245+
246+
// Both variants(namely with triple and single slashes) are valid.
247+
Assert.assertTrue(expectedUriWithSingleSlash.equals(firstUriResolvingResult)
248+
|| expectedUriWithTripleSlash.equals(firstUriResolvingResult));
249+
250+
Assert.assertEquals("file://c:/test/folder/img.txt",
251+
resolver.resolveAgainstBaseUri("file://c:/test/folder/img.txt").toExternalForm());
252+
253+
final String thirdUriResolvingResult = resolver.resolveAgainstBaseUri("file:///c:/test/folder/img.txt")
254+
.toExternalForm();
255+
// Result of resolving uri with triple slash should be the same as if it contained single slash.
256+
Assert.assertEquals(firstUriResolvingResult, thirdUriResolvingResult);
243257

244258
// It is windows specific to assume this to work. On unix it shall fail, as it will assume that it is
245259
// an absolute URI with scheme 'c', and will not recognize this scheme.
246-
// Assert.assertEquals("file:/c:/test/folder/data.jpg", resolver.resolveAgainstBaseUri("c:/test/folder/data.jpg").toExternalForm());
260+
// Assert.assertEquals("file:/c:/test/folder/data.jpg", resolver.resolveAgainstBaseUri("c:/test/folder/data
261+
// .jpg").toExternalForm());
247262
}
248263

249264
@Test

svg/src/test/java/com/itextpdf/svg/css/SvgStyleResolverTest.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,21 @@ public void svgCssResolverXlinkTest() {
186186
Map<String, String> attr = sr.resolveStyles(node, new SvgCssContext());
187187

188188
String fileName = baseUri + "itis.jpg";
189-
String expectedURL = UrlUtil.toNormalizedURI(fileName).toString();
189+
final String expectedUrl = UrlUtil.toNormalizedURI(fileName).toString();
190+
String expectedUrlAnotherValidVersion;
190191

191-
Assert.assertEquals(expectedURL, attr.get("xlink:href"));
192+
if (expectedUrl.startsWith("file:///")) {
193+
expectedUrlAnotherValidVersion = "file:/" + expectedUrl.substring("file:///".length());
194+
} else if (expectedUrl.startsWith("file:/")) {
195+
expectedUrlAnotherValidVersion = "file:///" + expectedUrl.substring("file:/".length());
196+
} else {
197+
expectedUrlAnotherValidVersion = expectedUrl;
198+
}
199+
200+
final String url = attr.get("xlink:href");
201+
202+
// Both variants(namely with triple and single slashes) are valid.
203+
Assert.assertTrue(expectedUrl.equals(url) || expectedUrlAnotherValidVersion.equals(url));
192204
}
193205

194206
@Test

svg/src/test/java/com/itextpdf/svg/processors/impl/DefaultSvgProcessorUnitTest.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,11 +275,14 @@ public void xLinkAttributeBaseDirDoesNotExistTest() {
275275
SvgTagSvgNodeRenderer rootActual = (SvgTagSvgNodeRenderer) processor().process(root, props).getRootRenderer();
276276

277277
String fileName = resolvedBaseUrl + "/img.png";
278-
String expectedURL = UrlUtil.toNormalizedURI(fileName).toString();
278+
final String expectedURL = UrlUtil.toNormalizedURI(fileName).toString();
279+
final String expectedURLAnotherValidVersion = createAnotherValidUrlVersion(expectedURL);
279280

280281
ISvgNodeRenderer imageRendered = rootActual.getChildren().get(0);
281282
String url = imageRendered.getAttribute(SvgConstants.Attributes.XLINK_HREF);
282-
Assert.assertEquals(expectedURL, url);
283+
284+
// Both variants(namely with triple and single slashes) are valid.
285+
Assert.assertTrue(expectedURL.equals(url) || expectedURLAnotherValidVersion.equals(url));
283286
}
284287

285288
@Test
@@ -290,12 +293,14 @@ public void xLinkAttributeResolveNonEmptyBaseUrlTest() {
290293
SvgTagSvgNodeRenderer rootActual = (SvgTagSvgNodeRenderer) processor().process(root, props).getRootRenderer();
291294

292295
String fileName = baseUrl + "/img.png";
293-
String expectedURL = UrlUtil.toNormalizedURI(fileName).toString();
296+
final String expectedURL = UrlUtil.toNormalizedURI(fileName).toString();
297+
final String expectedURLAnotherValidVersion = createAnotherValidUrlVersion(expectedURL);
294298

295299
ISvgNodeRenderer imageRendered = rootActual.getChildren().get(0);
296300
String url = imageRendered.getAttribute(SvgConstants.Attributes.XLINK_HREF);
297301

298-
Assert.assertEquals(expectedURL, url);
302+
// Both variants(namely with triple and single slashes) are valid.
303+
Assert.assertTrue(expectedURL.equals(url) || expectedURLAnotherValidVersion.equals(url));
299304
}
300305

301306
private INode createSvgContainingImage() {
@@ -308,6 +313,16 @@ private INode createSvgContainingImage() {
308313
return root;
309314
}
310315

316+
private static String createAnotherValidUrlVersion(String url) {
317+
if (url.startsWith("file:///")) {
318+
return "file:/" + url.substring("file:///".length());
319+
} else if (url.startsWith("file:/")) {
320+
return "file:///" + url.substring("file:/".length());
321+
} else {
322+
return url;
323+
}
324+
}
325+
311326
private static ISvgProcessor processor() {
312327
return new DefaultSvgProcessor();
313328
}

0 commit comments

Comments
 (0)