'return-asynch', ]); $server = new Server(); $server->httpRequest = $httpRequest; $this->assertEquals([ 'respond-async' => true, 'return' => null, 'handling' => null, 'wait' => null, ], $server->getHTTPPrefer()); } function testParseValue() { $httpRequest = HTTP\Sapi::createFromServerArray([ 'HTTP_PREFER' => 'wait=10', ]); $server = new Server(); $server->httpRequest = $httpRequest; $this->assertEquals([ 'respond-async' => false, 'return' => null, 'handling' => null, 'wait' => '10', ], $server->getHTTPPrefer()); } function testParseMultiple() { $httpRequest = HTTP\Sapi::createFromServerArray([ 'HTTP_PREFER' => 'return-minimal, strict,lenient', ]); $server = new Server(); $server->httpRequest = $httpRequest; $this->assertEquals([ 'respond-async' => false, 'return' => 'minimal', 'handling' => 'lenient', 'wait' => null, ], $server->getHTTPPrefer()); } function testParseWeirdValue() { $httpRequest = HTTP\Sapi::createFromServerArray([ 'HTTP_PREFER' => 'BOOOH', ]); $server = new Server(); $server->httpRequest = $httpRequest; $this->assertEquals([ 'respond-async' => false, 'return' => null, 'handling' => null, 'wait' => null, 'boooh' => true, ], $server->getHTTPPrefer()); } function testBrief() { $httpRequest = HTTP\Sapi::createFromServerArray([ 'HTTP_BRIEF' => 't', ]); $server = new Server(); $server->httpRequest = $httpRequest; $this->assertEquals([ 'respond-async' => false, 'return' => 'minimal', 'handling' => null, 'wait' => null, ], $server->getHTTPPrefer()); } /** * propfindMinimal * * @return void */ function testpropfindMinimal() { $request = HTTP\Sapi::createFromServerArray([ 'REQUEST_METHOD' => 'PROPFIND', 'REQUEST_URI' => '/', 'HTTP_PREFER' => 'return-minimal', ]); $request->setBody(<< BLA ); $response = $this->request($request); $body = $response->getBodyAsString(); $this->assertEquals(207, $response->getStatus(), $body); $this->assertTrue(strpos($body, 'resourcetype') !== false, $body); $this->assertTrue(strpos($body, 'something') === false, $body); } function testproppatchMinimal() { $request = new HTTP\Request('PROPPATCH', '/', ['Prefer' => 'return-minimal']); $request->setBody(<< nope! BLA ); $this->server->on('propPatch', function($path, PropPatch $propPatch) { $propPatch->handle('{DAV:}something', function($props) { return true; }); }); $response = $this->request($request); $this->assertEquals(0, strlen($response->body), 'Expected empty body: ' . $response->body); $this->assertEquals(204, $response->status); } function testproppatchMinimalError() { $request = new HTTP\Request('PROPPATCH', '/', ['Prefer' => 'return-minimal']); $request->setBody(<< nope! BLA ); $response = $this->request($request); $body = $response->getBodyAsString(); $this->assertEquals(207, $response->status); $this->assertTrue(strpos($body, 'something') !== false); $this->assertTrue(strpos($body, '403 Forbidden') !== false, $body); } }