Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1821011
PrincipalSearchPropertySetTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
4 KB
Subscribers
None
PrincipalSearchPropertySetTest.php
View Options
<?php
namespace
Sabre\DAVACL
;
use
Sabre\DAV
;
use
Sabre\HTTP
;
require_once
'Sabre/HTTP/ResponseMock.php'
;
class
PrincipalSearchPropertySetTest
extends
\PHPUnit_Framework_TestCase
{
function
getServer
()
{
$backend
=
new
PrincipalBackend\Mock
();
$dir
=
new
DAV\SimpleCollection
(
'root'
);
$principals
=
new
PrincipalCollection
(
$backend
);
$dir
->
addChild
(
$principals
);
$fakeServer
=
new
DAV\Server
(
$dir
);
$fakeServer
->
sapi
=
new
HTTP\SapiMock
();
$fakeServer
->
httpResponse
=
new
HTTP\ResponseMock
();
$plugin
=
new
Plugin
(
$backend
,
'realm'
);
$this
->
assertTrue
(
$plugin
instanceof
Plugin
);
$fakeServer
->
addPlugin
(
$plugin
);
$this
->
assertEquals
(
$plugin
,
$fakeServer
->
getPlugin
(
'acl'
));
return
$fakeServer
;
}
function
testDepth1
()
{
$xml
=
'<?xml version="1.0"?>
<d:principal-search-property-set xmlns:d="DAV:" />'
;
$serverVars
=
array
(
'REQUEST_METHOD'
=>
'REPORT'
,
'HTTP_DEPTH'
=>
'1'
,
'REQUEST_URI'
=>
'/principals'
,
);
$request
=
HTTP\Sapi
::
createFromServerArray
(
$serverVars
);
$request
->
setBody
(
$xml
);
$server
=
$this
->
getServer
();
$server
->
httpRequest
=
$request
;
$server
->
exec
();
$this
->
assertEquals
(
400
,
$server
->
httpResponse
->
status
);
$this
->
assertEquals
(
array
(
'X-Sabre-Version'
=>
[
DAV\Version
::
VERSION
],
'Content-Type'
=>
[
'application/xml; charset=utf-8'
],
),
$server
->
httpResponse
->
getHeaders
());
}
function
testDepthIncorrectXML
()
{
$xml
=
'<?xml version="1.0"?>
<d:principal-search-property-set xmlns:d="DAV:"><d:ohell /></d:principal-search-property-set>'
;
$serverVars
=
array
(
'REQUEST_METHOD'
=>
'REPORT'
,
'HTTP_DEPTH'
=>
'0'
,
'REQUEST_URI'
=>
'/principals'
,
);
$request
=
HTTP\Sapi
::
createFromServerArray
(
$serverVars
);
$request
->
setBody
(
$xml
);
$server
=
$this
->
getServer
();
$server
->
httpRequest
=
$request
;
$server
->
exec
();
$this
->
assertEquals
(
400
,
$server
->
httpResponse
->
status
,
$server
->
httpResponse
->
body
);
$this
->
assertEquals
(
array
(
'X-Sabre-Version'
=>
[
DAV\Version
::
VERSION
],
'Content-Type'
=>
[
'application/xml; charset=utf-8'
],
),
$server
->
httpResponse
->
getHeaders
());
}
function
testCorrect
()
{
$xml
=
'<?xml version="1.0"?>
<d:principal-search-property-set xmlns:d="DAV:"/>'
;
$serverVars
=
array
(
'REQUEST_METHOD'
=>
'REPORT'
,
'HTTP_DEPTH'
=>
'0'
,
'REQUEST_URI'
=>
'/principals'
,
);
$request
=
HTTP\Sapi
::
createFromServerArray
(
$serverVars
);
$request
->
setBody
(
$xml
);
$server
=
$this
->
getServer
();
$server
->
httpRequest
=
$request
;
$server
->
exec
();
$this
->
assertEquals
(
200
,
$server
->
httpResponse
->
status
,
$server
->
httpResponse
->
body
);
$this
->
assertEquals
(
array
(
'X-Sabre-Version'
=>
[
DAV\Version
::
VERSION
],
'Content-Type'
=>
[
'application/xml; charset=utf-8'
],
),
$server
->
httpResponse
->
getHeaders
());
$check
=
array
(
'/d:principal-search-property-set'
,
'/d:principal-search-property-set/d:principal-search-property'
=>
2
,
'/d:principal-search-property-set/d:principal-search-property/d:prop'
=>
2
,
'/d:principal-search-property-set/d:principal-search-property/d:prop/d:displayname'
=>
1
,
'/d:principal-search-property-set/d:principal-search-property/d:prop/s:email-address'
=>
1
,
'/d:principal-search-property-set/d:principal-search-property/d:description'
=>
2
,
);
$xml
=
simplexml_load_string
(
$server
->
httpResponse
->
body
);
$xml
->
registerXPathNamespace
(
'd'
,
'DAV:'
);
$xml
->
registerXPathNamespace
(
's'
,
'http://sabredav.org/ns'
);
foreach
(
$check
as
$v1
=>
$v2
)
{
$xpath
=
is_int
(
$v1
)?
$v2
:
$v1
;
$result
=
$xml
->
xpath
(
$xpath
);
$count
=
1
;
if
(!
is_int
(
$v1
))
$count
=
$v2
;
$this
->
assertEquals
(
$count
,
count
(
$result
),
'we expected '
.
$count
.
' appearances of '
.
$xpath
.
' . We found '
.
count
(
$result
)
.
'. Full response body: '
.
$server
->
httpResponse
->
body
);
}
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Mon, Dec 23, 1:01 AM (2 d, 5 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
914961
Default Alt Text
PrincipalSearchPropertySetTest.php (4 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment