[tracker/wip/carlosg/property-path-fixes: 4/4] tests: Add some more tests around property paths



commit 3663ccf7955373b5228492dc4b5866f2bf9dc6a1
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun May 17 15:35:27 2020 +0200

    tests: Add some more tests around property paths
    
    Test some (literal) edge cases in */+/?

 tests/libtracker-data/property-paths/data-2.ttl     | 21 +++++++++++++++++++++
 .../mixed-optional-and-sequence-1.out               |  2 ++
 .../property-paths/mixed-optional-and-sequence-1.rq |  1 +
 .../mixed-optional-and-sequence-2.out               |  1 +
 .../property-paths/mixed-optional-and-sequence-2.rq |  1 +
 .../mixed-recursive-and-sequence-2.out              |  4 ++++
 .../mixed-recursive-and-sequence-2.rq               |  1 +
 .../mixed-recursive-and-sequence-3.out              |  1 +
 .../mixed-recursive-and-sequence-3.rq               |  1 +
 .../mixed-recursive-and-sequence-4.out              |  3 +++
 .../mixed-recursive-and-sequence-4.rq               |  1 +
 .../mixed-recursive-and-sequence-5.out              |  0
 .../mixed-recursive-and-sequence-5.rq               |  1 +
 tests/libtracker-data/property-paths/test.ontology  | 17 +++++++++++++++++
 tests/libtracker-data/tracker-sparql-test.c         |  6 ++++++
 15 files changed, 61 insertions(+)
---
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
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 },


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]