aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/DAV/HTTPPreferParsingTest.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
committerfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
commitb35122f7a6ad42756c35bb60ba1f06c3dcd45c77 (patch)
treeccdf373ce6475d264778523259cc32899b732fe7 /vendor/sabre/dav/tests/Sabre/DAV/HTTPPreferParsingTest.php
parente3504df514d306cfe6b83e44a11f550664564af4 (diff)
downloadvolse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.gz
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.bz2
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.zip
add sabre (1.8.x) via composer in the !@#$ place it wants to be
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/DAV/HTTPPreferParsingTest.php')
-rw-r--r--vendor/sabre/dav/tests/Sabre/DAV/HTTPPreferParsingTest.php200
1 files changed, 200 insertions, 0 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/DAV/HTTPPreferParsingTest.php b/vendor/sabre/dav/tests/Sabre/DAV/HTTPPreferParsingTest.php
new file mode 100644
index 000000000..45865b2a1
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/DAV/HTTPPreferParsingTest.php
@@ -0,0 +1,200 @@
+<?php
+
+namespace Sabre\DAV;
+
+use Sabre\HTTP;
+
+class HTTPPReferParsingTest extends \Sabre\DAVServerTest {
+
+ function testParseSimple() {
+
+ $httpRequest = new HTTP\Request(array(
+ 'HTTP_PREFER' => 'return-asynch',
+ ));
+
+ $server = new Server();
+ $server->httpRequest = $httpRequest;
+
+ $this->assertEquals(array(
+ 'return-asynch' => true,
+ 'return-minimal' => false,
+ 'return-representation' => false,
+ 'strict' => false,
+ 'lenient' => false,
+ 'wait' => null,
+ ), $server->getHTTPPrefer());
+
+ }
+
+ function testParseValue() {
+
+ $httpRequest = new HTTP\Request(array(
+ 'HTTP_PREFER' => 'wait=10',
+ ));
+
+ $server = new Server();
+ $server->httpRequest = $httpRequest;
+
+ $this->assertEquals(array(
+ 'return-asynch' => false,
+ 'return-minimal' => false,
+ 'return-representation' => false,
+ 'strict' => false,
+ 'lenient' => false,
+ 'wait' => 10,
+ ), $server->getHTTPPrefer());
+
+ }
+
+ function testParseMultiple() {
+
+ $httpRequest = new HTTP\Request(array(
+ 'HTTP_PREFER' => 'return-minimal, strict,lenient',
+ ));
+
+ $server = new Server();
+ $server->httpRequest = $httpRequest;
+
+ $this->assertEquals(array(
+ 'return-asynch' => false,
+ 'return-minimal' => true,
+ 'return-representation' => false,
+ 'strict' => true,
+ 'lenient' => true,
+ 'wait' => null,
+ ), $server->getHTTPPrefer());
+
+ }
+
+ function testParseWeirdValue() {
+
+ $httpRequest = new HTTP\Request(array(
+ 'HTTP_PREFER' => 'BOOOH',
+ ));
+
+ $server = new Server();
+ $server->httpRequest = $httpRequest;
+
+ $this->assertEquals(array(
+ 'strict' => false,
+ 'lenient' => false,
+ 'wait' => null,
+ 'return-asynch' => false,
+ 'return-minimal' => false,
+ 'return-representation' => false,
+ ), $server->getHTTPPrefer());
+
+ }
+
+ function testBrief() {
+
+ $httpRequest = new HTTP\Request(array(
+ 'HTTP_BRIEF' => 't',
+ ));
+
+ $server = new Server();
+ $server->httpRequest = $httpRequest;
+
+ $this->assertEquals(array(
+ 'strict' => false,
+ 'lenient' => false,
+ 'wait' => null,
+ 'return-asynch' => false,
+ 'return-minimal' => true,
+ 'return-representation' => false,
+ ), $server->getHTTPPrefer());
+
+ }
+
+ /**
+ * propfindMinimal
+ *
+ * @return void
+ */
+ function testpropfindMinimal() {
+
+ $request = new HTTP\Request(array(
+ 'REQUEST_METHOD' => 'PROPFIND',
+ 'REQUEST_URI' => '/',
+ 'HTTP_PREFER' => 'return-minimal',
+ ));
+ $request->setBody(<<<BLA
+<?xml version="1.0"?>
+<d:propfind xmlns:d="DAV:">
+ <d:prop>
+ <d:something />
+ <d:resourcetype />
+ </d:prop>
+</d:propfind>
+BLA
+ );
+
+ $response = $this->request($request);
+
+ $this->assertTrue(strpos($response->body, 'resourcetype')!==false);
+ $this->assertTrue(strpos($response->body, 'something')===false);
+
+ }
+
+ function testproppatchMinimal() {
+
+ $request = new HTTP\Request(array(
+ 'REQUEST_METHOD' => 'PROPPATCH',
+ 'REQUEST_URI' => '/',
+ 'HTTP_PREFER' => 'return-minimal',
+ ));
+ $request->setBody(<<<BLA
+<?xml version="1.0"?>
+<d:proppatch xmlns:d="DAV:">
+ <d:set>
+ <d:prop>
+ <d:something>nope!</d:something>
+ </d:prop>
+ </d:set>
+</d:proppatch>
+BLA
+ );
+
+ $this->server->subscribeEvent('updateProperties', function(&$props, &$result) {
+
+ if (isset($props['{DAV:}something'])) {
+ unset($props['{DAV:}something']);
+ $result[200]['{DAV:}something'] = null;
+ }
+
+ });
+
+ $response = $this->request($request);
+
+ $this->assertEquals(0, strlen($response->body), 'Expected empty body: ' . $response->body);
+ $this->assertEquals('HTTP/1.1 204 No Content', $response->status);
+
+ }
+
+ function testproppatchMinimalError() {
+
+ $request = new HTTP\Request(array(
+ 'REQUEST_METHOD' => 'PROPPATCH',
+ 'REQUEST_URI' => '/',
+ 'HTTP_PREFER' => 'return-minimal',
+ ));
+ $request->setBody(<<<BLA
+<?xml version="1.0"?>
+<d:proppatch xmlns:d="DAV:">
+ <d:set>
+ <d:prop>
+ <d:something>nope!</d:something>
+ </d:prop>
+ </d:set>
+</d:proppatch>
+BLA
+ );
+
+ $response = $this->request($request);
+
+ $this->assertEquals('HTTP/1.1 207 Multi-Status', $response->status);
+ $this->assertTrue(strpos($response->body, 'something')!==false);
+ $this->assertTrue(strpos($response->body, 'HTTP/1.1 403 Forbidden')!==false);
+
+ }
+}