1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.xml.secure;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertSame;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23
24 import org.junit.jupiter.api.Test;
25 import org.w3c.dom.ls.LSException;
26 import org.w3c.dom.ls.LSInput;
27 import org.w3c.dom.ls.LSResourceResolver;
28
29 class FallbackIgnoreLSResourceResolverTest {
30
31 @Test
32 void coversDelegateFallbackAndDenyBranches() {
33 final FallbackIgnoreLSResourceResolver resolver = new FallbackIgnoreLSResourceResolver(null);
34 final LSInput fallback = resolver.resolveResource("t", "n", "p", "s", "b");
35 assertEquals("p", fallback.getPublicId());
36 assertEquals("s", fallback.getSystemId());
37 assertEquals("b", fallback.getBaseURI());
38 final LSInput expected = fallback;
39 final LSResourceResolver delegate = (type, namespace, publicId, systemId, base) -> expected;
40 resolver.setDelegate(delegate);
41 assertSame(delegate, resolver.getDelegate());
42 assertSame(expected, resolver.resolveResource("t", "n", "p", "s", "b"));
43 resolver.setDelegate(null);
44 System.setProperty(SecureException.THROW_ON_UNRESOLVED, "true");
45 try {
46 assertThrows(LSException.class, () -> resolver.resolveResource("t", "n", "p", "s", "b"));
47 } finally {
48 System.clearProperty(SecureException.THROW_ON_UNRESOLVED);
49 }
50 }
51 }