server->getIfConditions($request); $this->assertEquals(array(),$conditions); } function testLockToken() { $request = new HTTP\Request('GET', '/path/', ['If' => '()']); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => 'path', 'tokens' => array( array( 'negate' => false, 'token' => 'opaquelocktoken:token1', 'etag' => '', ), ), ), ); $this->assertEquals($compare,$conditions); } function testNotLockToken() { $serverVars = array( 'HTTP_IF' => '(Not )', 'REQUEST_URI' => '/bla' ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => 'bla', 'tokens' => array( array( 'negate' => true, 'token' => 'opaquelocktoken:token1', 'etag' => '', ), ), ), ); $this->assertEquals($compare,$conditions); } function testLockTokenUrl() { $serverVars = array( 'HTTP_IF' => ' ()', ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => '', 'tokens' => array( array( 'negate' => false, 'token' => 'opaquelocktoken:token1', 'etag' => '', ), ), ), ); $this->assertEquals($compare,$conditions); } function test2LockTokens() { $serverVars = array( 'HTTP_IF' => '() (Not )', 'REQUEST_URI' => '/bla', ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => 'bla', 'tokens' => array( array( 'negate' => false, 'token' => 'opaquelocktoken:token1', 'etag' => '', ), array( 'negate' => true, 'token' => 'opaquelocktoken:token2', 'etag' => '', ), ), ), ); $this->assertEquals($compare,$conditions); } function test2UriLockTokens() { $serverVars = array( 'HTTP_IF' => ' () (Not )', ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => 'node1', 'tokens' => array( array( 'negate' => false, 'token' => 'opaquelocktoken:token1', 'etag' => '', ), ), ), array( 'uri' => 'node2', 'tokens' => array( array( 'negate' => true, 'token' => 'opaquelocktoken:token2', 'etag' => '', ), ), ), ); $this->assertEquals($compare,$conditions); } function test2UriMultiLockTokens() { $serverVars = array( 'HTTP_IF' => ' () () (Not )', ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => 'node1', 'tokens' => array( array( 'negate' => false, 'token' => 'opaquelocktoken:token1', 'etag' => '', ), array( 'negate' => false, 'token' => 'opaquelocktoken:token2', 'etag' => '', ), ), ), array( 'uri' => 'node2', 'tokens' => array( array( 'negate' => true, 'token' => 'opaquelocktoken:token3', 'etag' => '', ), ), ), ); $this->assertEquals($compare,$conditions); } function testEtag() { $serverVars = array( 'HTTP_IF' => '(["etag1"])', 'REQUEST_URI' => '/foo', ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => 'foo', 'tokens' => array( array( 'negate' => false, 'token' => '', 'etag' => '"etag1"', ), ), ), ); $this->assertEquals($compare,$conditions); } function test2Etags() { $serverVars = array( 'HTTP_IF' => ' (["etag1"]) (["etag2"])', ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => '', 'tokens' => array( array( 'negate' => false, 'token' => '', 'etag' => '"etag1"', ), array( 'negate' => false, 'token' => '', 'etag' => '"etag2"', ), ), ), ); $this->assertEquals($compare,$conditions); } function testComplexIf() { $serverVars = array( 'HTTP_IF' => ' ( ["etag1"]) ' . '(Not ) (["etag2"]) ' . '() (Not ) (["etag3"])', ); $request = HTTP\Sapi::createFromServerArray($serverVars); $conditions = $this->server->getIfConditions($request); $compare = array( array( 'uri' => 'node1', 'tokens' => array( array( 'negate' => false, 'token' => 'opaquelocktoken:token1', 'etag' => '"etag1"', ), array( 'negate' => true, 'token' => 'opaquelocktoken:token2', 'etag' => '', ), array( 'negate' => false, 'token' => '', 'etag' => '"etag2"', ), ), ), array( 'uri' => 'node2', 'tokens' => array( array( 'negate' => false, 'token' => 'opaquelocktoken:token3', 'etag' => '', ), array( 'negate' => true, 'token' => 'opaquelocktoken:token4', 'etag' => '', ), array( 'negate' => false, 'token' => '', 'etag' => '"etag3"', ), ), ), ); $this->assertEquals($compare,$conditions); } }