You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by st...@apache.org on 2017/09/28 23:12:40 UTC
[3/3] commons-rdf git commit: COMMONSRDF-63: parseFile fixes for OSX
COMMONSRDF-63: parseFile fixes for OSX
.. which uses /tmp symlinked to /private/tmp
Added explicit test of symlink following for base path.
Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/8adf1762
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/8adf1762
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/8adf1762
Branch: refs/heads/master
Commit: 8adf17623bff6e885e3bd1851e1ebefeb14a8050
Parents: 350cd26
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 29 00:04:53 2017 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 29 00:04:53 2017 +0100
----------------------------------------------------------------------
.../experimental/AbstractRDFParserTest.java | 33 +++++++++++++++++---
1 file changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/8adf1762/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
index 098b606..68f686b 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeNotNull;
import static org.apache.commons.rdf.api.RDFSyntax.*;
import java.io.ByteArrayInputStream;
@@ -56,14 +57,24 @@ public class AbstractRDFParserTest {
private Path testTtl;
private Path testXml;
+ private Path symlink;
+
@Before
public void createTempFile() throws IOException {
testNt = Files.createTempFile("test", ".nt");
testTtl = Files.createTempFile("test", ".ttl");
testXml = Files.createTempFile("test", ".xml");
-
// No need to populate the files as the dummy parser
// doesn't actually read anything
+
+ // If supported, we'll make a symbolic link
+ Path symlinks = Files.createTempDirectory("symlinked");
+ try {
+ symlink = Files.createSymbolicLink(
+ symlinks.resolve("linked.ttl"), testNt);
+ } catch (IOException|UnsupportedOperationException ex) {
+ symlink = null;
+ }
}
@After
@@ -117,8 +128,8 @@ public class AbstractRDFParserTest {
// includes
// international characters
assertEquals("<" + testNt.toUri().toString() + ">", firstPredicate(g, "source"));
- // Should be set to the file path
- assertEquals("<" + testNt.toUri().toString() + ">", firstPredicate(g, "base"));
+ // Should be set to the file path - after following symlinks
+ assertEquals("<" + testNt.toRealPath().toUri().toString() + ">", firstPredicate(g, "base"));
// Should NOT have guessed the content type
assertNull(firstPredicate(g, "contentType"));
@@ -126,6 +137,19 @@ public class AbstractRDFParserTest {
}
@Test
+ public void parseFileSymlink() throws Exception {
+ // This test will typically not work in Windows
+ // which requires system privileges to create symlinks
+ assumeNotNull(symlink);
+ final Graph g = factory.createGraph();
+ final RDFParser parser = dummyParser.source(symlink).target(g);
+ parser.parse().get(5, TimeUnit.SECONDS);
+ checkGraph(g);
+ assertEquals("<" + symlink.toUri().toString() + ">", firstPredicate(g, "source"));
+ assertEquals("<" + testNt.toRealPath().toUri().toString() + ">", firstPredicate(g, "base"));
+ }
+
+ @Test
public void parseNoSource() throws Exception {
thrown.expect(IllegalStateException.class);
dummyParser.parse();
@@ -162,7 +186,8 @@ public class AbstractRDFParserTest {
// includes
// international characters
assertEquals("<" + testNt.toUri().toString() + ">", firstPredicate(g, "source"));
- assertEquals("<" + testNt.toUri().toString() + ">", firstPredicate(g, "base"));
+ // Should be set to the file path - after following symlinks
+ assertEquals("<" + testNt.toRealPath().toUri().toString() + ">", firstPredicate(g, "base"));
assertEquals("\"" + RDFSyntax.NTRIPLES.name() + "\"",
firstPredicate(g, "contentTypeSyntax"));
assertEquals("\"application/n-triples\"", firstPredicate(g, "contentType"));