Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1820753
HTTPPreferParsingTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
4 KB
Subscribers
None
HTTPPreferParsingTest.php
View Options
<?php
namespace
Sabre\DAV
;
use
Sabre\HTTP
;
class
HTTPPreferParsingTest
extends
\Sabre\DAVServerTest
{
function
testParseSimple
()
{
$httpRequest
=
HTTP\Sapi
::
createFromServerArray
([
'HTTP_PREFER'
=>
'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
<?xml version="1.0"?>
<d:propfind xmlns:d="DAV:">
<d:prop>
<d:something />
<d:resourcetype />
</d:prop>
</d:propfind>
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
(
<<<BLA
<?xml version="1.0"?>
<d:propertyupdate xmlns:d="DAV:">
<d:set>
<d:prop>
<d:something>nope!</d:something>
</d:prop>
</d:set>
</d:propertyupdate>
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
(
<<<BLA
<?xml version="1.0"?>
<d:propertyupdate xmlns:d="DAV:">
<d:set>
<d:prop>
<d:something>nope!</d:something>
</d:prop>
</d:set>
</d:propertyupdate>
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
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sun, Dec 22, 12:09 PM (3 d, 18 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
913650
Default Alt Text
HTTPPreferParsingTest.php (4 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment