Changes: Separately test garbage collection query.
[qtcontacts-tracker:hasselmms-qtcontacts-tracker.git] / tests / ut_qtcontacts_trackerplugin_querybuilder / data / 202-save-request-5.rq
1 # Delete properties related objects so that we can update them.
2 # =================================================================================================
3 DELETE
4 {
5   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
6   {
7     ?subject nco:hasPostalAddress ?object .
8   }
9 }
10 WHERE
11 {
12   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
13   {
14     <contact:197632483> nco:hasAffiliation ?subject .
15     ?subject nco:hasPostalAddress ?object .
16   }
17 }
18
19 DELETE
20 {
21   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
22   {
23     ?subject ncal:dtstart ?object
24   }
25 }
26 WHERE
27 {
28   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
29   {
30     <contact:197632483> ncal:anniversary ?subject .
31     ?subject ncal:dtstart ?object
32   }
33 }
34
35 DELETE
36 {
37   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
38   {
39     ?subject nco:hasPostalAddress ?object .
40   }
41 }
42 WHERE
43 {
44   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
45   {
46     <contact:197632483> nco:hasAffiliation [ nco:org ?subject ] .
47     ?subject nco:hasPostalAddress ?object .
48   }
49 }
50
51 DELETE
52 {
53   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
54   {
55     ?subject nco:org ?object .
56   }
57 }
58 WHERE
59 {
60   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
61   {
62     <contact:197632483> nco:hasAffiliation ?subject .
63     ?subject nco:org ?object .
64   }
65 }
66
67 DELETE
68 {
69   <telepathy:/fake/account!userfake@cake.com> ?predicate ?object .
70 }
71 WHERE
72 {
73   <telepathy:/fake/account!userfake@cake.com> ?predicate ?object .
74   FILTER(?predicate IN (nao:hasProperty, nco:imProtocol, nco:imID)) .
75 }
76
77 DELETE
78 {
79   <telepathy:/fake/account!fakeuser@cake.com> ?predicate ?object .
80 }
81 WHERE
82 {
83   <telepathy:/fake/account!fakeuser@cake.com> ?predicate ?object .
84   FILTER(?predicate IN (nao:hasProperty, nco:imProtocol, nco:imID)) .
85 }
86
87 # Delete the contact's properties so that we can update them nicely.
88 # Only nco:contactLocalUID must be preserved as we assume to know the GUID of this contact
89 # and want to preserve it.
90 # =================================================================================================
91 DELETE
92 {
93   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
94   {
95     <contact:197632483> ?predicate ?object .
96   }
97 }
98 WHERE
99 {
100   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
101   {
102     <contact:197632483> ?predicate ?object .
103     FILTER(?predicate NOT IN (rdf:type, nco:belongsToGroup)) .
104   }
105 }
106
107
108 # Create shared objects referenced by foreign keys
109 # =================================================================================================
110
111 INSERT
112 {
113   # FIXME: why do we write without graph here!?
114   _:_
115     a nfo:FileDataObject, nie:DataObject ;
116     nie:url "file://home/user/.cache/avatars/square/snowball.jpg" .
117 }
118 WHERE
119 {
120   # FIXME: why do we write an optional here!?
121   OPTIONAL
122   {
123     ?resource nie:url "file://home/user/.cache/avatars/square/snowball.jpg" .
124   }
125
126   FILTER(!bound(?resource)) .
127 }
128
129 INSERT
130 {
131   _:_
132     a nfo:FileDataObject, nie:DataObject ;
133     nie:url "file://home/user/.cache/avatars/large/snowball.jpg" .
134 }
135 WHERE
136 {
137   OPTIONAL
138   {
139     ?resource nie:url "file://home/user/.cache/avatars/large/snowball.jpg" .
140   }
141
142   FILTER(!bound(?resource)) .
143 }
144
145 # Write new contact data
146 # =================================================================================================
147 INSERT
148 {
149   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
150   {
151     <contact:197632483>
152       rdf:type nco:PersonContact ;
153       nco:hasAffiliation _:Affiliation, _:Affiliation_Home, _:Affiliation_Hobby ;
154       nie:contentLastModified "2010-05-04T09:30:00Z" ;
155       nie:contentCreated "2010-04-22T05:00:00Z" ;
156       nco:contactUID "c563e9e8-1f41-4873-ba90-e1a166552fa3" .
157
158     # FIXME: where is this empty affiliation comming from!?
159     _:Affiliation
160       rdf:type nco:Affiliation .
161
162     _:Affiliation_Home
163       rdf:type nco:Affiliation ;
164       rdfs:label "Home" ;
165       nco:hasIMAddress <telepathy:/fake/account!userfake@cake.com> .
166
167     <telepathy:/fake/account!userfake@cake.com>
168       rdf:type nco:IMAddress ;
169       nco:imID "userfake@cake.com" .
170
171     # FIXME: make this update conditional?
172     <telepathy:/fake/account>
173       rdf:type nco:IMAccount ;
174       nco:hasIMContact <telepathy:/fake/account!userfake@cake.com>,
175                        <telepathy:/fake/account!fakeuser@cake.com> .
176
177     _:Affiliation_Hobby
178       rdf:type nco:Affiliation ;
179       rdfs:label "Hobby" ;
180       nco:hasIMAddress <telepathy:/fake/account!fakeuser@cake.com> .
181
182     <telepathy:/fake/account!fakeuser@cake.com>
183       rdf:type nco:IMAddress ;
184       nco:imID "fakeuser@cake.com" .
185   }
186 }
187
188 # Enforce proper sync target
189 # =================================================================================================
190 INSERT OR REPLACE
191 {
192   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
193   {
194     <contact:197632483> nie:generator "addressbook"
195   }
196 }
197 WHERE
198 {
199   FILTER((tracker:coalesce(nie:generator(<contact:197632483>), "") IN ("", "telepathy")))
200 }