summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2018-11-04 15:22:21 +0100
committerCarlos Garnacho <carlosg@gnome.org>2018-11-13 11:17:31 +0100
commit15784105df51cb02d3df5c6527119565762ee650 (patch)
tree1e1a3f757cd06afecb2ecccbaec8a2ec468dbfb9
parent7cfeade1e1257325645e77f0b187c734fafefa85 (diff)
downloadtracker-15784105df51cb02d3df5c6527119565762ee650.tar.gz
tests: Add some tests for the supported property paths
Inverse and sequence paths are tested thus far.
-rw-r--r--tests/libtracker-data/property-paths/data.ttl32
-rw-r--r--tests/libtracker-data/property-paths/inverse-path-1.out3
-rw-r--r--tests/libtracker-data/property-paths/inverse-path-1.rq1
-rw-r--r--tests/libtracker-data/property-paths/inverse-path-2.out6
-rw-r--r--tests/libtracker-data/property-paths/inverse-path-2.rq1
-rw-r--r--tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.out1
-rw-r--r--tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.rq1
-rw-r--r--tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.out1
-rw-r--r--tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.rq1
-rw-r--r--tests/libtracker-data/property-paths/query-1.rq0
-rw-r--r--tests/libtracker-data/property-paths/sequence-path-1.out2
-rw-r--r--tests/libtracker-data/property-paths/sequence-path-1.rq1
-rw-r--r--tests/libtracker-data/property-paths/sequence-path-2.out4
-rw-r--r--tests/libtracker-data/property-paths/sequence-path-2.rq1
-rw-r--r--tests/libtracker-data/property-paths/sequence-path-3.out1
-rw-r--r--tests/libtracker-data/property-paths/sequence-path-3.rq1
-rw-r--r--tests/libtracker-data/property-paths/test.ontology34
-rw-r--r--tests/libtracker-data/tracker-sparql-test.c8
18 files changed, 99 insertions, 0 deletions
diff --git a/tests/libtracker-data/property-paths/data.ttl b/tests/libtracker-data/property-paths/data.ttl
new file mode 100644
index 000000000..5088a80d3
--- /dev/null
+++ b/tests/libtracker-data/property-paths/data.ttl
@@ -0,0 +1,32 @@
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+_:alice
+ rdf:type foaf:Person ;
+ foaf:name "Alice" ;
+ foaf:mbox <mailto:alice@work> ;
+ foaf:knows _:bob ;
+ foaf:member [ a foaf:Group ; foaf:name "Foo" ] ;
+ .
+
+_:bob
+ rdf:type foaf:Person ;
+ foaf:name "Bob" ;
+ foaf:knows _:alice ;
+ foaf:mbox <mailto:bob@work> ;
+ foaf:mbox <mailto:bob@home> ;
+ foaf:member [ a foaf:Group ; foaf:name "Foo" ] ;
+ .
+
+
+_:eve
+ rdf:type foaf:Person ;
+ foaf:name "Eve" ;
+ foaf:knows _:fred ;
+ .
+
+_:fred
+ rdf:type foaf:Person ;
+ foaf:name "Fred" ;
+ foaf:mbox <mailto:fred@edu> .
diff --git a/tests/libtracker-data/property-paths/inverse-path-1.out b/tests/libtracker-data/property-paths/inverse-path-1.out
new file mode 100644
index 000000000..0a9f74d4f
--- /dev/null
+++ b/tests/libtracker-data/property-paths/inverse-path-1.out
@@ -0,0 +1,3 @@
+"Bob" "Alice"
+"Alice" "Bob"
+"Fred" "Eve"
diff --git a/tests/libtracker-data/property-paths/inverse-path-1.rq b/tests/libtracker-data/property-paths/inverse-path-1.rq
new file mode 100644
index 000000000..1aaf070ce
--- /dev/null
+++ b/tests/libtracker-data/property-paths/inverse-path-1.rq
@@ -0,0 +1 @@
+select foaf:name(?a) foaf:name(?b) { ?a ^foaf:knows ?b } \ No newline at end of file
diff --git a/tests/libtracker-data/property-paths/inverse-path-2.out b/tests/libtracker-data/property-paths/inverse-path-2.out
new file mode 100644
index 000000000..b74164513
--- /dev/null
+++ b/tests/libtracker-data/property-paths/inverse-path-2.out
@@ -0,0 +1,6 @@
+"1" "Alice" "Bob"
+"1" "Bob" "Alice"
+"1" "Fred" "Eve"
+"2" "Alice" "Bob"
+"2" "Bob" "Alice"
+"2" "Fred" "Eve"
diff --git a/tests/libtracker-data/property-paths/inverse-path-2.rq b/tests/libtracker-data/property-paths/inverse-path-2.rq
new file mode 100644
index 000000000..e886c8761
--- /dev/null
+++ b/tests/libtracker-data/property-paths/inverse-path-2.rq
@@ -0,0 +1 @@
+select ?s foaf:name(?a) foaf:name(?b) { { select ('1' as ?s) ?a ?b { ?a ^foaf:knows ?b } } union { select ('2' as ?s) ?a ?b { ?b foaf:knows ?a } } } order by ?s foaf:name(?a) foaf:name(?b) \ No newline at end of file
diff --git a/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.out b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.out
new file mode 100644
index 000000000..52c90ceee
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.out
@@ -0,0 +1 @@
+"Fred"
diff --git a/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.rq b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.rq
new file mode 100644
index 000000000..a77629f6a
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-1.rq
@@ -0,0 +1 @@
+select foaf:name(?u) { ?u ^foaf:knows/foaf:name 'Eve' } \ No newline at end of file
diff --git a/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.out b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.out
new file mode 100644
index 000000000..0686dec37
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.out
@@ -0,0 +1 @@
+"Eve"
diff --git a/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.rq b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.rq
new file mode 100644
index 000000000..f862af007
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-inverse-and-sequence-2.rq
@@ -0,0 +1 @@
+select foaf:name(?u) { ?u foaf:knows/^foaf:knows/foaf:name 'Eve' } \ No newline at end of file
diff --git a/tests/libtracker-data/property-paths/query-1.rq b/tests/libtracker-data/property-paths/query-1.rq
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/libtracker-data/property-paths/query-1.rq
diff --git a/tests/libtracker-data/property-paths/sequence-path-1.out b/tests/libtracker-data/property-paths/sequence-path-1.out
new file mode 100644
index 000000000..d12a7b1c3
--- /dev/null
+++ b/tests/libtracker-data/property-paths/sequence-path-1.out
@@ -0,0 +1,2 @@
+"Alice" "Alice"
+"Bob" "Bob"
diff --git a/tests/libtracker-data/property-paths/sequence-path-1.rq b/tests/libtracker-data/property-paths/sequence-path-1.rq
new file mode 100644
index 000000000..8900f9d99
--- /dev/null
+++ b/tests/libtracker-data/property-paths/sequence-path-1.rq
@@ -0,0 +1 @@
+select foaf:name(?a) foaf:name(?b) { ?a foaf:knows/foaf:knows ?b } \ No newline at end of file
diff --git a/tests/libtracker-data/property-paths/sequence-path-2.out b/tests/libtracker-data/property-paths/sequence-path-2.out
new file mode 100644
index 000000000..312a17008
--- /dev/null
+++ b/tests/libtracker-data/property-paths/sequence-path-2.out
@@ -0,0 +1,4 @@
+"1" "Alice" "Alice"
+"1" "Bob" "Bob"
+"2" "Alice" "Alice"
+"2" "Bob" "Bob"
diff --git a/tests/libtracker-data/property-paths/sequence-path-2.rq b/tests/libtracker-data/property-paths/sequence-path-2.rq
new file mode 100644
index 000000000..2fbc0642f
--- /dev/null
+++ b/tests/libtracker-data/property-paths/sequence-path-2.rq
@@ -0,0 +1 @@
+select ?s foaf:name(?a) foaf:name(?b) { { select ('1' as ?s) ?a ?b { ?a foaf:knows/foaf:knows ?b } } union { select ('2' as ?s) ?a ?b { ?a foaf:knows ?y . ?y foaf:knows ?b } } } order by ?s foaf:name(?a) foaf:name(?b) \ No newline at end of file
diff --git a/tests/libtracker-data/property-paths/sequence-path-3.out b/tests/libtracker-data/property-paths/sequence-path-3.out
new file mode 100644
index 000000000..0686dec37
--- /dev/null
+++ b/tests/libtracker-data/property-paths/sequence-path-3.out
@@ -0,0 +1 @@
+"Eve"
diff --git a/tests/libtracker-data/property-paths/sequence-path-3.rq b/tests/libtracker-data/property-paths/sequence-path-3.rq
new file mode 100644
index 000000000..3cdee92a9
--- /dev/null
+++ b/tests/libtracker-data/property-paths/sequence-path-3.rq
@@ -0,0 +1 @@
+select foaf:name(?u) { ?u foaf:knows/foaf:name 'Fred' } \ No newline at end of file
diff --git a/tests/libtracker-data/property-paths/test.ontology b/tests/libtracker-data/property-paths/test.ontology
new file mode 100644
index 000000000..de0a07b06
--- /dev/null
+++ b/tests/libtracker-data/property-paths/test.ontology
@@ -0,0 +1,34 @@
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix tracker: <http://www.tracker-project.org/ontologies/tracker#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+foaf: a tracker:Namespace ;
+ tracker:prefix "foaf" .
+
+foaf:Agent a rdfs:Class ;
+ rdfs:subClassOf rdfs:Resource .
+
+foaf:Person a rdfs:Class ;
+ rdfs:subClassOf foaf:Agent .
+
+foaf:Group a rdfs:Class ;
+ rdfs:subClassOf foaf:Agent .
+
+foaf:knows a rdf:Property ;
+ rdfs:domain foaf:Person ;
+ rdfs:range foaf:Person .
+
+foaf:mbox a rdf:Property ;
+ rdfs:domain foaf:Person ;
+ rdfs:range rdfs:Resource .
+
+foaf:name a rdf:Property ;
+ rdfs:domain foaf:Agent ;
+ rdfs:range xsd:string .
+
+foaf:member a rdf:Property ;
+ rdfs:domain foaf:Person ;
+ rdfs:range foaf:Group .
+
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index f52b9106a..1bfb5a4a4 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -146,6 +146,14 @@ const TestInfo tests[] = {
{ "bind/bind2", "bind/data", FALSE },
{ "bind/bind3", "bind/data", FALSE },
{ "bind/bind4", "bind/data", FALSE },
+ /* Property paths */
+ { "property-paths/inverse-path-1", "property-paths/data", FALSE },
+ { "property-paths/inverse-path-2", "property-paths/data", FALSE },
+ { "property-paths/sequence-path-1", "property-paths/data", FALSE },
+ { "property-paths/sequence-path-2", "property-paths/data", FALSE },
+ { "property-paths/sequence-path-3", "property-paths/data", FALSE },
+ { "property-paths/mixed-inverse-and-sequence-1", "property-paths/data", FALSE },
+ { "property-paths/mixed-inverse-and-sequence-2", "property-paths/data", FALSE },
/* Update tests */
{ "update/insert-data-query-1", "update/insert-data-1", FALSE, FALSE },
{ "update/insert-data-query-2", "update/insert-data-2", FALSE, TRUE },