3 require_once 'Sabre/HTTP/ResponseMock.php';
4 require_once 'Sabre/DAV/AbstractServer.php';
6 class Sabre_DAV_Locks_GetIfConditionsTest extends Sabre_DAV_AbstractServer {
9 * @var Sabre_DAV_Locks_Plugin
11 protected $locksPlugin;
16 $locksPlugin = new Sabre_DAV_Locks_Plugin();
17 $this->server->addPlugin($locksPlugin);
18 $this->locksPlugin = $locksPlugin;
22 function testNoConditions() {
27 $request = new Sabre_HTTP_Request($serverVars);
28 $this->server->httpRequest = ($request);
30 $conditions = $this->locksPlugin->getIfConditions();
31 $this->assertEquals(array(),$conditions);
35 function testLockToken() {
38 'HTTP_IF' => '(<opaquelocktoken:token1>)',
41 $request = new Sabre_HTTP_Request($serverVars);
42 $this->server->httpRequest = ($request);
44 $conditions = $this->locksPlugin->getIfConditions();
53 'opaquelocktoken:token1',
62 $this->assertEquals($compare,$conditions);
66 function testNotLockToken() {
69 'HTTP_IF' => '(Not <opaquelocktoken:token1>)',
72 $request = new Sabre_HTTP_Request($serverVars);
73 $this->server->httpRequest = ($request);
75 $conditions = $this->locksPlugin->getIfConditions();
84 'opaquelocktoken:token1',
92 $this->assertEquals($compare,$conditions);
96 function testLockTokenUrl() {
99 'HTTP_IF' => '<http://www.example.com/> (<opaquelocktoken:token1>)',
102 $request = new Sabre_HTTP_Request($serverVars);
103 $this->server->httpRequest = ($request);
105 $conditions = $this->locksPlugin->getIfConditions();
110 'uri' => 'http://www.example.com/',
114 'opaquelocktoken:token1',
122 $this->assertEquals($compare,$conditions);
126 function test2LockTokens() {
129 'HTTP_IF' => '(<opaquelocktoken:token1>) (Not <opaquelocktoken:token2>)',
132 $request = new Sabre_HTTP_Request($serverVars);
133 $this->server->httpRequest = ($request);
135 $conditions = $this->locksPlugin->getIfConditions();
144 'opaquelocktoken:token1',
149 'opaquelocktoken:token2',
157 $this->assertEquals($compare,$conditions);
161 function test2UriLockTokens() {
164 'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1>) <http://www.example.org/node2> (Not <opaquelocktoken:token2>)',
167 $request = new Sabre_HTTP_Request($serverVars);
168 $this->server->httpRequest = ($request);
170 $conditions = $this->locksPlugin->getIfConditions();
175 'uri' => 'http://www.example.org/node1',
179 'opaquelocktoken:token1',
185 'uri' => 'http://www.example.org/node2',
189 'opaquelocktoken:token2',
197 $this->assertEquals($compare,$conditions);
201 function test2UriMultiLockTokens() {
204 'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1>) (<opaquelocktoken:token2>) <http://www.example.org/node2> (Not <opaquelocktoken:token3>)',
207 $request = new Sabre_HTTP_Request($serverVars);
208 $this->server->httpRequest = ($request);
210 $conditions = $this->locksPlugin->getIfConditions();
215 'uri' => 'http://www.example.org/node1',
219 'opaquelocktoken:token1',
224 'opaquelocktoken:token2',
230 'uri' => 'http://www.example.org/node2',
234 'opaquelocktoken:token3',
242 $this->assertEquals($compare,$conditions);
246 function testEtag() {
249 'HTTP_IF' => '([etag1])',
252 $request = new Sabre_HTTP_Request($serverVars);
253 $this->server->httpRequest = ($request);
255 $conditions = $this->locksPlugin->getIfConditions();
271 $this->assertEquals($compare,$conditions);
275 function test2Etags() {
278 'HTTP_IF' => '<http://www.example.org/> ([etag1]) ([etag2])',
281 $request = new Sabre_HTTP_Request($serverVars);
282 $this->server->httpRequest = ($request);
284 $conditions = $this->locksPlugin->getIfConditions();
289 'uri' => 'http://www.example.org/',
305 $this->assertEquals($compare,$conditions);
309 function testComplexIf() {
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])',
317 $request = new Sabre_HTTP_Request($serverVars);
318 $this->server->httpRequest = ($request);
320 $conditions = $this->locksPlugin->getIfConditions();
325 'uri' => 'http://www.example.org/node1',
329 'opaquelocktoken:token1',
334 'opaquelocktoken:token2',
345 'uri' => 'http://www.example.org/node2',
349 'opaquelocktoken:token3',
354 'opaquelocktoken:token4',
366 $this->assertEquals($compare,$conditions);