summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-05-17 15:35:27 +0200
committerCarlos Garnacho <carlosg@gnome.org>2020-05-18 21:35:34 +0200
commit3663ccf7955373b5228492dc4b5866f2bf9dc6a1 (patch)
treec61519038615532fefef7bfb1658b517be97005e /tests
parentc631637827f374fe0644fce14b34bbbaac35ffa5 (diff)
downloadtracker-3663ccf7955373b5228492dc4b5866f2bf9dc6a1.tar.gz
tests: Add some more tests around property paths
Test some (literal) edge cases in */+/?
Diffstat (limited to 'tests')
-rw-r--r--tests/libtracker-data/property-paths/data-2.ttl21
-rw-r--r--tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.out2
-rw-r--r--tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.rq1
-rw-r--r--tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.out1
-rw-r--r--tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.rq1
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.out4
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.rq1
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.out1
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.rq1
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.out3
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.rq1
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.out0
-rw-r--r--tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.rq1
-rw-r--r--tests/libtracker-data/property-paths/test.ontology17
-rw-r--r--tests/libtracker-data/tracker-sparql-test.c6
15 files changed, 61 insertions, 0 deletions
diff --git a/tests/libtracker-data/property-paths/data-2.ttl b/tests/libtracker-data/property-paths/data-2.ttl
new file mode 100644
index 000000000..15bafa93a
--- /dev/null
+++ b/tests/libtracker-data/property-paths/data-2.ttl
@@ -0,0 +1,21 @@
+@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 ex: <http://example.com/#> .
+
+_:d rdf:type ex:InformationElement ;
+ ex:isStoredAs <file:///a/b/c/d> .
+_:c rdf:type ex:InformationElement ;
+ ex:isStoredAs <file:///a/b/c> .
+_:b rdf:type ex:InformationElement ;
+ ex:isStoredAs <file:///a/b> .
+_:a rdf:type ex:InformationElement ;
+ ex:isStoredAs <file:///a> .
+
+<file:///a/b/c/d> rdf:type ex:DataObject ;
+ ex:belongsToContainer _:c .
+<file:///a/b/c> rdf:type ex:DataObject ;
+ ex:belongsToContainer _:b .
+<file:///a/b> rdf:type ex:DataObject ;
+ ex:belongsToContainer _:a .
+<file:///a> rdf:type ex:DataObject .
diff --git a/tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.out b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.out
new file mode 100644
index 000000000..772f7c8d3
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.out
@@ -0,0 +1,2 @@
+"file:///a/b/c/d"
+"file:///a/b/c"
diff --git a/tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.rq b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.rq
new file mode 100644
index 000000000..2f348958b
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-1.rq
@@ -0,0 +1 @@
+select ?u { <file:///a/b/c/d> (ex:belongsToContainer/ex:isStoredAs)? ?u } order by desc str(?u)
diff --git a/tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.out b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.out
new file mode 100644
index 000000000..ac07aa7ac
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.out
@@ -0,0 +1 @@
+"file:///a"
diff --git a/tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.rq b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.rq
new file mode 100644
index 000000000..0b3cf1142
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-optional-and-sequence-2.rq
@@ -0,0 +1 @@
+select ?u { <file:///a> (ex:belongsToContainer/ex:isStoredAs)? ?u } order by desc str(?u)
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.out b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.out
new file mode 100644
index 000000000..6161c70c4
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.out
@@ -0,0 +1,4 @@
+"file:///a/b/c/d"
+"file:///a/b/c"
+"file:///a/b"
+"file:///a"
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.rq b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.rq
new file mode 100644
index 000000000..befe48c02
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-2.rq
@@ -0,0 +1 @@
+select ?u { <file:///a/b/c/d> (ex:belongsToContainer/ex:isStoredAs)* ?u } order by desc str(?u)
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.out b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.out
new file mode 100644
index 000000000..ac07aa7ac
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.out
@@ -0,0 +1 @@
+"file:///a"
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.rq b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.rq
new file mode 100644
index 000000000..82770626b
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-3.rq
@@ -0,0 +1 @@
+select ?u { <file:///a> (ex:belongsToContainer/ex:isStoredAs)* ?u } order by STR(?u)
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.out b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.out
new file mode 100644
index 000000000..69f7287b8
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.out
@@ -0,0 +1,3 @@
+"file:///a/b/c"
+"file:///a/b"
+"file:///a"
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.rq b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.rq
new file mode 100644
index 000000000..e709761e4
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-4.rq
@@ -0,0 +1 @@
+select ?u { <file:///a/b/c/d> (ex:belongsToContainer/ex:isStoredAs)+ ?u } order by desc str(?u)
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.out b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.out
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.out
diff --git a/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.rq b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.rq
new file mode 100644
index 000000000..f10a3ac5b
--- /dev/null
+++ b/tests/libtracker-data/property-paths/mixed-recursive-and-sequence-5.rq
@@ -0,0 +1 @@
+select ?u { <file:///a> (ex:belongsToContainer/ex:isStoredAs)+ ?u } order by desc str(?u)
diff --git a/tests/libtracker-data/property-paths/test.ontology b/tests/libtracker-data/property-paths/test.ontology
index 000185060..3d3ebdb08 100644
--- a/tests/libtracker-data/property-paths/test.ontology
+++ b/tests/libtracker-data/property-paths/test.ontology
@@ -3,6 +3,7 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tracker: <http://tracker.api.gnome.org/ontology/v3/tracker#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix ex: <http://example.com/#> .
foaf: a tracker:Namespace ;
tracker:prefix "foaf" .
@@ -32,3 +33,19 @@ foaf:member a rdf:Property ;
rdfs:domain foaf:Person ;
rdfs:range foaf:Group .
+ex: a tracker:Namespace ;
+ tracker:prefix "ex" .
+
+ex:DataObject a rdfs:Class ;
+ rdfs:subClassOf rdfs:Resource .
+
+ex:InformationElement a rdfs:Class ;
+ rdfs:subClassOf rdfs:Resource .
+
+ex:belongsToContainer a rdf:Property ;
+ rdfs:domain ex:DataObject ;
+ rdfs:range ex:InformationElement .
+
+ex:isStoredAs a rdf:Property ;
+ rdfs:domain ex:InformationElement ;
+ rdfs:range ex:DataObject .
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index a378e9e94..331048ad2 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -233,11 +233,17 @@ const TestInfo tests[] = {
{ "property-paths/mixed-inverse-and-sequence-2", "property-paths/data", FALSE },
{ "property-paths/mixed-inverse-and-sequence-3", "property-paths/data", FALSE },
{ "property-paths/mixed-recursive-and-sequence-1", "property-paths/data", FALSE },
+ { "property-paths/mixed-recursive-and-sequence-2", "property-paths/data-2", FALSE },
+ { "property-paths/mixed-recursive-and-sequence-3", "property-paths/data-2", FALSE },
+ { "property-paths/mixed-recursive-and-sequence-4", "property-paths/data-2", FALSE },
+ { "property-paths/mixed-recursive-and-sequence-5", "property-paths/data-2", FALSE },
{ "property-paths/mixed-recursive-and-alternative-1", "property-paths/data", FALSE },
{ "property-paths/mixed-recursive-and-alternative-2", "property-paths/data", FALSE },
{ "property-paths/mixed-recursive-and-inverse-1", "property-paths/data", FALSE },
{ "property-paths/mixed-recursive-and-inverse-2", "property-paths/data", FALSE },
{ "property-paths/mixed-recursive-and-inverse-3", "property-paths/data", FALSE },
+ { "property-paths/mixed-optional-and-sequence-1", "property-paths/data-2", FALSE },
+ { "property-paths/mixed-optional-and-sequence-2", "property-paths/data-2", 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 },