aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/DAV/ServerPreconditionTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/DAV/ServerPreconditionTest.php')
-rw-r--r--vendor/sabre/dav/tests/Sabre/DAV/ServerPreconditionTest.php227
1 files changed, 88 insertions, 139 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/DAV/ServerPreconditionTest.php b/vendor/sabre/dav/tests/Sabre/DAV/ServerPreconditionTest.php
index ea09852a7..1dc8d8a37 100644
--- a/vendor/sabre/dav/tests/Sabre/DAV/ServerPreconditionTest.php
+++ b/vendor/sabre/dav/tests/Sabre/DAV/ServerPreconditionTest.php
@@ -9,362 +9,311 @@ require_once 'Sabre/HTTP/ResponseMock.php';
class ServerPreconditionsTest extends \PHPUnit_Framework_TestCase {
/**
- * @covers Sabre\DAV\Server::checkPreconditions
* @expectedException Sabre\DAV\Exception\PreconditionFailed
*/
function testIfMatchNoNode() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_MATCH' => '*',
- 'REQUEST_URI' => '/bar'
- ));
- $server->httpRequest = $httpRequest;
-
- $server->checkPreconditions();
+ $httpRequest = new HTTP\Request('GET', '/bar', ['If-Match' => '*']);
+ $httpResponse = new HTTP\Response();
+ $server->checkPreconditions($httpRequest, $httpResponse);
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
function testIfMatchHasNode() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_MATCH' => '*',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $this->assertTrue($server->checkPreconditions());
+ $httpRequest = new HTTP\Request('GET', '/foo', ['If-Match' => '*']);
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
* @expectedException Sabre\DAV\Exception\PreconditionFailed
*/
function testIfMatchWrongEtag() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_MATCH' => '1234',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $server->checkPreconditions();
+ $httpRequest = new HTTP\Request('GET', '/foo', ['If-Match' => '1234']);
+ $httpResponse = new HTTP\Response();
+ $server->checkPreconditions($httpRequest, $httpResponse);
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
function testIfMatchCorrectEtag() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_MATCH' => '"abc123"',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $this->assertTrue($server->checkPreconditions());
+ $httpRequest = new HTTP\Request('GET', '/foo', ['If-Match' => '"abc123"']);
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
* Evolution sometimes uses \" instead of " for If-Match headers.
*
- * @covers \Sabre\DAV\Server::checkPreconditions
* @depends testIfMatchCorrectEtag
*/
function testIfMatchEvolutionEtag() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_MATCH' => '\\"abc123\\"',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $this->assertTrue($server->checkPreconditions());
+ $httpRequest = new HTTP\Request('GET', '/foo', ['If-Match' => '\\"abc123\\"']);
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
function testIfMatchMultiple() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_MATCH' => '"hellothere", "abc123"',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $this->assertTrue($server->checkPreconditions());
+ $httpRequest = new HTTP\Request('GET', '/foo', ['If-Match' => '"hellothere", "abc123"']);
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
function testIfNoneMatchNoNode() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_NONE_MATCH' => '*',
- 'REQUEST_URI' => '/bar'
- ));
- $server->httpRequest = $httpRequest;
-
- $this->assertTrue($server->checkPreconditions());
+ $httpRequest = new HTTP\Request('GET', '/bar', ['If-None-Match' => '*']);
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
* @expectedException Sabre\DAV\Exception\PreconditionFailed
*/
function testIfNoneMatchHasNode() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_NONE_MATCH' => '*',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $server->checkPreconditions();
+ $httpRequest = new HTTP\Request('POST', '/foo', ['If-None-Match' => '*']);
+ $httpResponse = new HTTP\Response();
+ $server->checkPreconditions($httpRequest, $httpResponse);
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
function testIfNoneMatchWrongEtag() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_NONE_MATCH' => '"1234"',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $this->assertTrue($server->checkPreconditions());
+ $httpRequest = new HTTP\Request('POST', '/foo', ['If-None-Match' => '"1234"']);
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
function testIfNoneMatchWrongEtagMultiple() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_NONE_MATCH' => '"1234", "5678"',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $this->assertTrue($server->checkPreconditions());
+ $httpRequest = new HTTP\Request('POST', '/foo', ['If-None-Match' => '"1234", "5678"']);
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
* @expectedException Sabre\DAV\Exception\PreconditionFailed
*/
public function testIfNoneMatchCorrectEtag() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_NONE_MATCH' => '"abc123"',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $server->checkPreconditions();
+ $httpRequest = new HTTP\Request('POST', '/foo', ['If-None-Match' => '"abc123"']);
+ $httpResponse = new HTTP\Response();
+ $server->checkPreconditions($httpRequest, $httpResponse);
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
* @expectedException Sabre\DAV\Exception\PreconditionFailed
*/
public function testIfNoneMatchCorrectEtagMultiple() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_NONE_MATCH' => '"1234", "abc123"',
- 'REQUEST_URI' => '/foo'
- ));
- $server->httpRequest = $httpRequest;
-
- $server->checkPreconditions();
+ $httpRequest = new HTTP\Request('POST', '/foo', ['If-None-Match' => '"1234, "abc123"']);
+ $httpResponse = new HTTP\Response();
+ $server->checkPreconditions($httpRequest, $httpResponse);
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
public function testIfNoneMatchCorrectEtagAsGet() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
- 'HTTP_IF_NONE_MATCH' => '"abc123"',
- 'REQUEST_URI' => '/foo'
- ));
+ $httpRequest = new HTTP\Request('GET', '/foo', ['If-None-Match' => '"abc123"']);
+ $server->httpResponse = new HTTP\ResponseMock();
+
+ $this->assertFalse($server->checkPreconditions($httpRequest, $server->httpResponse));
+ $this->assertEquals(304, $server->httpResponse->getStatus());
+ $this->assertEquals(['ETag' => ['"abc123"']], $server->httpResponse->getHeaders());
+
+ }
+
+ /**
+ * This was a test written for issue #515.
+ */
+ public function testNoneMatchCorrectEtagEnsureSapiSent() {
+
+ $root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
+ $server = new Server($root);
+ $server->sapi = new HTTP\SapiMock();
+ HTTP\SapiMock::$sent = 0;
+ $httpRequest = new HTTP\Request('GET', '/foo', ['If-None-Match' => '"abc123"']);
$server->httpRequest = $httpRequest;
$server->httpResponse = new HTTP\ResponseMock();
- $this->assertFalse($server->checkPreconditions(true));
- $this->assertEquals('HTTP/1.1 304 Not Modified',$server->httpResponse->status);
+ $server->exec();
+
+ $this->assertFalse($server->checkPreconditions($httpRequest, $server->httpResponse));
+ $this->assertEquals(304, $server->httpResponse->getStatus());
+ $this->assertEquals([
+ 'ETag' => ['"abc123"'],
+ 'X-Sabre-Version' => [Version::VERSION],
+ ], $server->httpResponse->getHeaders());
+ $this->assertEquals(1, HTTP\SapiMock::$sent);
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
public function testIfModifiedSinceUnModified() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
+ $httpRequest = HTTP\Sapi::createFromServerArray(array(
'HTTP_IF_MODIFIED_SINCE' => 'Sun, 06 Nov 1994 08:49:37 GMT',
'REQUEST_URI' => '/foo'
));
- $server->httpRequest = $httpRequest;
$server->httpResponse = new HTTP\ResponseMock();
- $this->assertFalse($server->checkPreconditions());
+ $this->assertFalse($server->checkPreconditions($httpRequest, $server->httpResponse));
- $this->assertEquals('HTTP/1.1 304 Not Modified',$server->httpResponse->status);
+ $this->assertEquals(304, $server->httpResponse->status);
$this->assertEquals(array(
- 'Last-Modified' => 'Sat, 06 Apr 1985 23:30:00 GMT',
- ), $server->httpResponse->headers);
+ 'Last-Modified' => ['Sat, 06 Apr 1985 23:30:00 GMT'],
+ ), $server->httpResponse->getHeaders());
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
public function testIfModifiedSinceModified() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
+ $httpRequest = HTTP\Sapi::createFromServerArray(array(
'HTTP_IF_MODIFIED_SINCE' => 'Tue, 06 Nov 1984 08:49:37 GMT',
'REQUEST_URI' => '/foo'
));
- $server->httpRequest = $httpRequest;
- $server->httpResponse = new HTTP\ResponseMock();
- $this->assertTrue($server->checkPreconditions());
+
+ $httpResponse = new HTTP\ResponseMock();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
public function testIfModifiedSinceInvalidDate() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
+ $httpRequest = HTTP\Sapi::createFromServerArray(array(
'HTTP_IF_MODIFIED_SINCE' => 'Your mother',
'REQUEST_URI' => '/foo'
));
- $server->httpRequest = $httpRequest;
- $server->httpResponse = new HTTP\ResponseMock();
+ $httpResponse = new HTTP\ResponseMock();
// Invalid dates must be ignored, so this should return true
- $this->assertTrue($server->checkPreconditions());
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
public function testIfModifiedSinceInvalidDate2() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
+ $httpRequest = HTTP\Sapi::createFromServerArray(array(
'HTTP_IF_MODIFIED_SINCE' => 'Sun, 06 Nov 1994 08:49:37 EST',
'REQUEST_URI' => '/foo'
));
- $server->httpRequest = $httpRequest;
- $server->httpResponse = new HTTP\ResponseMock();
- $this->assertTrue($server->checkPreconditions());
+ $httpResponse = new HTTP\ResponseMock();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
public function testIfUnmodifiedSinceUnModified() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
+ $httpRequest = HTTP\Sapi::createFromServerArray(array(
'HTTP_IF_UNMODIFIED_SINCE' => 'Sun, 06 Nov 1994 08:49:37 GMT',
'REQUEST_URI' => '/foo'
));
- $server->httpRequest = $httpRequest;
- $this->assertTrue($server->checkPreconditions());
+ $httpResponse = new HTTP\Response();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
* @expectedException Sabre\DAV\Exception\PreconditionFailed
*/
public function testIfUnmodifiedSinceModified() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
+ $httpRequest = HTTP\Sapi::createFromServerArray(array(
'HTTP_IF_UNMODIFIED_SINCE' => 'Tue, 06 Nov 1984 08:49:37 GMT',
'REQUEST_URI' => '/foo'
));
- $server->httpRequest = $httpRequest;
- $server->httpResponse = new HTTP\ResponseMock();
- $server->checkPreconditions();
+ $httpResponse = new HTTP\ResponseMock();
+ $server->checkPreconditions($httpRequest, $httpResponse);
}
/**
- * @covers \Sabre\DAV\Server::checkPreconditions
*/
public function testIfUnmodifiedSinceInvalidDate() {
$root = new SimpleCollection('root',array(new ServerPreconditionsNode()));
$server = new Server($root);
- $httpRequest = new HTTP\Request(array(
+ $httpRequest = HTTP\Sapi::createFromServerArray(array(
'HTTP_IF_UNMODIFIED_SINCE' => 'Sun, 06 Nov 1984 08:49:37 CET',
'REQUEST_URI' => '/foo'
));
- $server->httpRequest = $httpRequest;
- $server->httpResponse = new HTTP\ResponseMock();
- $this->assertTrue($server->checkPreconditions());
+ $httpResponse = new HTTP\ResponseMock();
+ $this->assertTrue($server->checkPreconditions($httpRequest, $httpResponse));
}