ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
HTTPPreferParsingTest.php
Go to the documentation of this file.
1<?php
2
3namespace Sabre\DAV;
4
5use Sabre\HTTP;
6
8
9 function testParseSimple() {
10
12 'HTTP_PREFER' => 'return-asynch',
13 ]);
14
15 $server = new Server();
16 $server->httpRequest = $httpRequest;
17
18 $this->assertEquals([
19 'respond-async' => true,
20 'return' => null,
21 'handling' => null,
22 'wait' => null,
23 ], $server->getHTTPPrefer());
24
25 }
26
27 function testParseValue() {
28
30 'HTTP_PREFER' => 'wait=10',
31 ]);
32
33 $server = new Server();
34 $server->httpRequest = $httpRequest;
35
36 $this->assertEquals([
37 'respond-async' => false,
38 'return' => null,
39 'handling' => null,
40 'wait' => '10',
41 ], $server->getHTTPPrefer());
42
43 }
44
45 function testParseMultiple() {
46
48 'HTTP_PREFER' => 'return-minimal, strict,lenient',
49 ]);
50
51 $server = new Server();
52 $server->httpRequest = $httpRequest;
53
54 $this->assertEquals([
55 'respond-async' => false,
56 'return' => 'minimal',
57 'handling' => 'lenient',
58 'wait' => null,
59 ], $server->getHTTPPrefer());
60
61 }
62
64
66 'HTTP_PREFER' => 'BOOOH',
67 ]);
68
69 $server = new Server();
70 $server->httpRequest = $httpRequest;
71
72 $this->assertEquals([
73 'respond-async' => false,
74 'return' => null,
75 'handling' => null,
76 'wait' => null,
77 'boooh' => true,
78 ], $server->getHTTPPrefer());
79
80 }
81
82 function testBrief() {
83
85 'HTTP_BRIEF' => 't',
86 ]);
87
88 $server = new Server();
89 $server->httpRequest = $httpRequest;
90
91 $this->assertEquals([
92 'respond-async' => false,
93 'return' => 'minimal',
94 'handling' => null,
95 'wait' => null,
96 ], $server->getHTTPPrefer());
97
98 }
99
106
108 'REQUEST_METHOD' => 'PROPFIND',
109 'REQUEST_URI' => '/',
110 'HTTP_PREFER' => 'return-minimal',
111 ]);
112 $request->setBody(<<<BLA
113<?xml version="1.0"?>
114<d:propfind xmlns:d="DAV:">
115 <d:prop>
116 <d:something />
117 <d:resourcetype />
118 </d:prop>
119</d:propfind>
120BLA
121 );
122
123 $response = $this->request($request);
124
125 $body = $response->getBodyAsString();
126
127 $this->assertEquals(207, $response->getStatus(), $body);
128
129 $this->assertTrue(strpos($body, 'resourcetype') !== false, $body);
130 $this->assertTrue(strpos($body, 'something') === false, $body);
131
132 }
133
135
136 $request = new HTTP\Request('PROPPATCH', '/', ['Prefer' => 'return-minimal']);
137 $request->setBody(<<<BLA
138<?xml version="1.0"?>
139<d:propertyupdate xmlns:d="DAV:">
140 <d:set>
141 <d:prop>
142 <d:something>nope!</d:something>
143 </d:prop>
144 </d:set>
145</d:propertyupdate>
146BLA
147 );
148
149 $this->server->on('propPatch', function($path, PropPatch $propPatch) {
150
151 $propPatch->handle('{DAV:}something', function($props) {
152 return true;
153 });
154
155 });
156
157 $response = $this->request($request);
158
159 $this->assertEquals(0, strlen($response->body), 'Expected empty body: ' . $response->body);
160 $this->assertEquals(204, $response->status);
161
162 }
163
165
166 $request = new HTTP\Request('PROPPATCH', '/', ['Prefer' => 'return-minimal']);
167 $request->setBody(<<<BLA
168<?xml version="1.0"?>
169<d:propertyupdate xmlns:d="DAV:">
170 <d:set>
171 <d:prop>
172 <d:something>nope!</d:something>
173 </d:prop>
174 </d:set>
175</d:propertyupdate>
176BLA
177 );
178
179 $response = $this->request($request);
180
181 $body = $response->getBodyAsString();
182
183 $this->assertEquals(207, $response->status);
184 $this->assertTrue(strpos($body, 'something') !== false);
185 $this->assertTrue(strpos($body, '403 Forbidden') !== false, $body);
186
187 }
188}
$path
Definition: aliased.php:25
foreach($paths as $path) $request
Definition: asyncclient.php:32
An exception for terminatinating execution or to throw for unit testing.
This class may be used as a basis for other webdav-related unittests.
request($request, $expectedStatus=null)
Makes a request, and returns a response object.
This class represents a set of properties that are going to be updated.
Definition: PropPatch.php:20
handle($properties, callable $callback)
Call this function if you wish to handle updating certain properties.
Definition: PropPatch.php:87
Main DAV server class.
Definition: Server.php:23
static createFromServerArray(array $serverArray)
This static method will create a new Request object, based on a PHP $_SERVER array.
Definition: Sapi.php:107
$response