371 lines
9.1 KiB
PHP
371 lines
9.1 KiB
PHP
|
<?php
|
||
|
|
||
|
require_once 'Sabre/HTTP/ResponseMock.php';
|
||
|
require_once 'Sabre/DAV/AbstractServer.php';
|
||
|
|
||
|
class Sabre_DAV_Locks_GetIfConditionsTest extends Sabre_DAV_AbstractServer {
|
||
|
|
||
|
/**
|
||
|
* @var Sabre_DAV_Locks_Plugin
|
||
|
*/
|
||
|
protected $locksPlugin;
|
||
|
|
||
|
function setUp() {
|
||
|
|
||
|
parent::setUp();
|
||
|
$locksPlugin = new Sabre_DAV_Locks_Plugin();
|
||
|
$this->server->addPlugin($locksPlugin);
|
||
|
$this->locksPlugin = $locksPlugin;
|
||
|
|
||
|
}
|
||
|
|
||
|
function testNoConditions() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
$this->assertEquals(array(),$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function testLockToken() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '(<opaquelocktoken:token1>)',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => '',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token1',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
|
||
|
),
|
||
|
|
||
|
);
|
||
|
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function testNotLockToken() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '(Not <opaquelocktoken:token1>)',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => '',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
0,
|
||
|
'opaquelocktoken:token1',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function testLockTokenUrl() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '<http://www.example.com/> (<opaquelocktoken:token1>)',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => 'http://www.example.com/',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token1',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function test2LockTokens() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '(<opaquelocktoken:token1>) (Not <opaquelocktoken:token2>)',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => '',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token1',
|
||
|
'',
|
||
|
),
|
||
|
array(
|
||
|
0,
|
||
|
'opaquelocktoken:token2',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function test2UriLockTokens() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1>) <http://www.example.org/node2> (Not <opaquelocktoken:token2>)',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => 'http://www.example.org/node1',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token1',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
array(
|
||
|
'uri' => 'http://www.example.org/node2',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
0,
|
||
|
'opaquelocktoken:token2',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function test2UriMultiLockTokens() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1>) (<opaquelocktoken:token2>) <http://www.example.org/node2> (Not <opaquelocktoken:token3>)',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => 'http://www.example.org/node1',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token1',
|
||
|
'',
|
||
|
),
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token2',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
array(
|
||
|
'uri' => 'http://www.example.org/node2',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
0,
|
||
|
'opaquelocktoken:token3',
|
||
|
'',
|
||
|
),
|
||
|
),
|
||
|
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function testEtag() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '([etag1])',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => '',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'',
|
||
|
'etag1',
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function test2Etags() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '<http://www.example.org/> ([etag1]) ([etag2])',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => 'http://www.example.org/',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'',
|
||
|
'etag1',
|
||
|
),
|
||
|
array(
|
||
|
1,
|
||
|
'',
|
||
|
'etag2',
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
function testComplexIf() {
|
||
|
|
||
|
$serverVars = array(
|
||
|
'HTTP_IF' => '<http://www.example.org/node1> (<opaquelocktoken:token1> [etag1]) ' .
|
||
|
'(Not <opaquelocktoken:token2>) ([etag2]) <http://www.example.org/node2> ' .
|
||
|
'(<opaquelocktoken:token3>) (Not <opaquelocktoken:token4>) ([etag3])',
|
||
|
);
|
||
|
|
||
|
$request = new Sabre_HTTP_Request($serverVars);
|
||
|
$this->server->httpRequest = ($request);
|
||
|
|
||
|
$conditions = $this->locksPlugin->getIfConditions();
|
||
|
|
||
|
$compare = array(
|
||
|
|
||
|
array(
|
||
|
'uri' => 'http://www.example.org/node1',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token1',
|
||
|
'etag1',
|
||
|
),
|
||
|
array(
|
||
|
0,
|
||
|
'opaquelocktoken:token2',
|
||
|
'',
|
||
|
),
|
||
|
array(
|
||
|
1,
|
||
|
'',
|
||
|
'etag2',
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
array(
|
||
|
'uri' => 'http://www.example.org/node2',
|
||
|
'tokens' => array(
|
||
|
array(
|
||
|
1,
|
||
|
'opaquelocktoken:token3',
|
||
|
'',
|
||
|
),
|
||
|
array(
|
||
|
0,
|
||
|
'opaquelocktoken:token4',
|
||
|
'',
|
||
|
),
|
||
|
array(
|
||
|
1,
|
||
|
'',
|
||
|
'etag3',
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
|
||
|
);
|
||
|
$this->assertEquals($compare,$conditions);
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|