]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAV/Locks/GetIfConditionsTest.php
Merge branch 'master' of ../../save/merge/frio_hovercard into frio
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAV / Locks / GetIfConditionsTest.php
1 <?php
2
3 require_once 'Sabre/HTTP/ResponseMock.php';
4 require_once 'Sabre/DAV/AbstractServer.php';
5
6 class Sabre_DAV_Locks_GetIfConditionsTest extends Sabre_DAV_AbstractServer {
7
8     /**
9      * @var Sabre_DAV_Locks_Plugin
10      */
11     protected $locksPlugin;
12
13     function setUp() {
14
15         parent::setUp();
16         $locksPlugin = new Sabre_DAV_Locks_Plugin();
17         $this->server->addPlugin($locksPlugin);
18         $this->locksPlugin = $locksPlugin;
19
20     }
21
22     function testNoConditions() {
23
24         $serverVars = array(
25         );
26
27         $request = new Sabre_HTTP_Request($serverVars);
28         $this->server->httpRequest = ($request);
29
30         $conditions = $this->locksPlugin->getIfConditions();
31         $this->assertEquals(array(),$conditions);
32
33     }
34
35     function testLockToken() {
36
37         $serverVars = array(
38             'HTTP_IF' => '(<opaquelocktoken:token1>)',
39         );
40
41         $request = new Sabre_HTTP_Request($serverVars);
42         $this->server->httpRequest = ($request);
43
44         $conditions = $this->locksPlugin->getIfConditions();
45
46         $compare = array(
47
48             array(
49                 'uri' => '',
50                 'tokens' => array(
51                     array(
52                         1,
53                         'opaquelocktoken:token1',
54                         '',
55                     ),
56                 ),
57
58             ),
59
60         );
61
62         $this->assertEquals($compare,$conditions);
63
64     }
65
66     function testNotLockToken() {
67
68         $serverVars = array(
69             'HTTP_IF' => '(Not <opaquelocktoken:token1>)',
70         );
71
72         $request = new Sabre_HTTP_Request($serverVars);
73         $this->server->httpRequest = ($request);
74
75         $conditions = $this->locksPlugin->getIfConditions();
76
77         $compare = array(
78
79             array(
80                 'uri' => '',
81                 'tokens' => array(
82                     array(
83                         0,
84                         'opaquelocktoken:token1',
85                         '',
86                     ),
87                 ),
88
89             ),
90
91         );
92         $this->assertEquals($compare,$conditions);
93
94     }
95
96     function testLockTokenUrl() {
97
98         $serverVars = array(
99             'HTTP_IF' => '<http://www.example.com/> (<opaquelocktoken:token1>)',
100         );
101
102         $request = new Sabre_HTTP_Request($serverVars);
103         $this->server->httpRequest = ($request);
104
105         $conditions = $this->locksPlugin->getIfConditions();
106
107         $compare = array(
108
109             array(
110                 'uri' => 'http://www.example.com/',
111                 'tokens' => array(
112                     array(
113                         1,
114                         'opaquelocktoken:token1',
115                         '',
116                     ),
117                 ),
118
119             ),
120
121         );
122         $this->assertEquals($compare,$conditions);
123
124     }
125
126     function test2LockTokens() {
127
128         $serverVars = array(
129             'HTTP_IF' => '(<opaquelocktoken:token1>) (Not <opaquelocktoken:token2>)',
130         );
131
132         $request = new Sabre_HTTP_Request($serverVars);
133         $this->server->httpRequest = ($request);
134
135         $conditions = $this->locksPlugin->getIfConditions();
136
137         $compare = array(
138
139             array(
140                 'uri' => '',
141                 'tokens' => array(
142                     array(
143                         1,
144                         'opaquelocktoken:token1',
145                         '',
146                     ),
147                     array(
148                         0,
149                         'opaquelocktoken:token2',
150                         '',
151                     ),
152                 ),
153
154             ),
155
156         );
157         $this->assertEquals($compare,$conditions);
158
159     }
160
161     function test2UriLockTokens() {
162
163         $serverVars = array(
164             'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1>) <http://www.example.org/node2> (Not <opaquelocktoken:token2>)',
165         );
166
167         $request = new Sabre_HTTP_Request($serverVars);
168         $this->server->httpRequest = ($request);
169
170         $conditions = $this->locksPlugin->getIfConditions();
171
172         $compare = array(
173
174             array(
175                 'uri' => 'http://www.example.org/node1',
176                 'tokens' => array(
177                     array(
178                         1,
179                         'opaquelocktoken:token1',
180                         '',
181                     ),
182                  ),
183             ),
184             array(
185                 'uri' => 'http://www.example.org/node2',
186                 'tokens' => array(
187                     array(
188                         0,
189                         'opaquelocktoken:token2',
190                         '',
191                     ),
192                 ),
193
194             ),
195
196         );
197         $this->assertEquals($compare,$conditions);
198
199     }
200
201     function test2UriMultiLockTokens() {
202
203         $serverVars = array(
204             'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1>) (<opaquelocktoken:token2>) <http://www.example.org/node2> (Not <opaquelocktoken:token3>)',
205         );
206
207         $request = new Sabre_HTTP_Request($serverVars);
208         $this->server->httpRequest = ($request);
209
210         $conditions = $this->locksPlugin->getIfConditions();
211
212         $compare = array(
213
214             array(
215                 'uri' => 'http://www.example.org/node1',
216                 'tokens' => array(
217                     array(
218                         1,
219                         'opaquelocktoken:token1',
220                         '',
221                     ),
222                     array(
223                         1,
224                         'opaquelocktoken:token2',
225                         '',
226                     ),
227                  ),
228             ),
229             array(
230                 'uri' => 'http://www.example.org/node2',
231                 'tokens' => array(
232                     array(
233                         0,
234                         'opaquelocktoken:token3',
235                         '',
236                     ),
237                 ),
238
239             ),
240
241         );
242         $this->assertEquals($compare,$conditions);
243
244     }
245
246     function testEtag() {
247
248         $serverVars = array(
249             'HTTP_IF' => '([etag1])',
250         );
251
252         $request = new Sabre_HTTP_Request($serverVars);
253         $this->server->httpRequest = ($request);
254
255         $conditions = $this->locksPlugin->getIfConditions();
256
257         $compare = array(
258
259             array(
260                 'uri' => '',
261                 'tokens' => array(
262                     array(
263                         1,
264                         '',
265                         'etag1',
266                     ),
267                  ),
268             ),
269
270         );
271         $this->assertEquals($compare,$conditions);
272
273     }
274
275     function test2Etags() {
276
277         $serverVars = array(
278             'HTTP_IF' => '<http://www.example.org/> ([etag1]) ([etag2])',
279         );
280
281         $request = new Sabre_HTTP_Request($serverVars);
282         $this->server->httpRequest = ($request);
283
284         $conditions = $this->locksPlugin->getIfConditions();
285
286         $compare = array(
287
288             array(
289                 'uri' => 'http://www.example.org/',
290                 'tokens' => array(
291                     array(
292                         1,
293                         '',
294                         'etag1',
295                     ),
296                     array(
297                         1,
298                         '',
299                         'etag2',
300                     ),
301                  ),
302             ),
303
304         );
305         $this->assertEquals($compare,$conditions);
306
307     }
308
309     function testComplexIf() {
310
311         $serverVars = array(
312             'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1> [etag1]) ' .
313                          '(Not <opaquelocktoken:token2>) ([etag2]) <http://www.example.org/node2> ' .
314                          '(<opaquelocktoken:token3>) (Not <opaquelocktoken:token4>) ([etag3])',
315         );
316
317         $request = new Sabre_HTTP_Request($serverVars);
318         $this->server->httpRequest = ($request);
319
320         $conditions = $this->locksPlugin->getIfConditions();
321
322         $compare = array(
323
324             array(
325                 'uri' => 'http://www.example.org/node1',
326                 'tokens' => array(
327                     array(
328                         1,
329                         'opaquelocktoken:token1',
330                         'etag1',
331                     ),
332                     array(
333                         0,
334                         'opaquelocktoken:token2',
335                         '',
336                     ),
337                     array(
338                         1,
339                         '',
340                         'etag2',
341                     ),
342                  ),
343             ),
344             array(
345                 'uri' => 'http://www.example.org/node2',
346                 'tokens' => array(
347                     array(
348                         1,
349                         'opaquelocktoken:token3',
350                         '',
351                     ),
352                     array(
353                         0,
354                         'opaquelocktoken:token4',
355                         '',
356                     ),
357                     array(
358                         1,
359                         '',
360                         'etag3',
361                     ),
362                  ),
363             ),
364
365         );
366         $this->assertEquals($compare,$conditions);
367
368     }
369
370 }