From 0f50e8b187d03dcd45e29c158e16b2e596f80466 Mon Sep 17 00:00:00 2001 From: Yegor Bugayenko Date: Mon, 16 Dec 2024 12:57:40 +0300 Subject: [PATCH 1/2] #3677: failed to reproduce --- .../java/org/eolang/parser/StrictXmirTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/eo-parser/src/test/java/org/eolang/parser/StrictXmirTest.java b/eo-parser/src/test/java/org/eolang/parser/StrictXmirTest.java index d893dcca79..d1535c73d2 100644 --- a/eo-parser/src/test/java/org/eolang/parser/StrictXmirTest.java +++ b/eo-parser/src/test/java/org/eolang/parser/StrictXmirTest.java @@ -30,6 +30,7 @@ import com.yegor256.MktmpResolver; import com.yegor256.WeAreOnline; import java.nio.file.Path; +import java.nio.file.Paths; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; import org.junit.jupiter.api.Assertions; @@ -64,6 +65,22 @@ void validatesXmir(@Mktmp final Path tmp) { ); } + @Test + @ExtendWith(MktmpResolver.class) + @ExtendWith(WeAreOnline.class) + void refersToAbsoluteFileName(@Mktmp final Path tmp) { + MatcherAssert.assertThat( + "XSD location must be absolute", + Paths.get( + new StrictXmir(StrictXmirTest.xmir("https://www.eolang.org/XMIR.xsd"), tmp) + .xpath("/program/@xsi:noNamespaceSchemaLocation") + .get(0) + .substring("file:///".length()) + ).isAbsolute(), + Matchers.is(true) + ); + } + @Test @ExtendWith(MktmpResolver.class) void validatesXmirWithLocalSchema(@Mktmp final Path tmp) { From e73273d6c6ebc30f66b8829eb720f658f1578056 Mon Sep 17 00:00:00 2001 From: Yegor Bugayenko Date: Mon, 16 Dec 2024 12:59:37 +0300 Subject: [PATCH 2/2] #3677: absolute file name --- eo-parser/src/main/java/org/eolang/parser/StrictXmir.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-parser/src/main/java/org/eolang/parser/StrictXmir.java b/eo-parser/src/main/java/org/eolang/parser/StrictXmir.java index 2061c82db8..b860cd4cd0 100644 --- a/eo-parser/src/main/java/org/eolang/parser/StrictXmir.java +++ b/eo-parser/src/main/java/org/eolang/parser/StrictXmir.java @@ -155,7 +155,7 @@ private static XML reset(final XML xml, final Path tmp) { tmp.resolve( uri.substring(uri.lastIndexOf('/') + 1) ) - ).toString().replace("\\", "/") + ).getAbsoluteFile().toString().replace("\\", "/") ); } new Xembler(