Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1841986
ClientTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
6 KB
Subscribers
None
ClientTest.php
View Options
<?php
namespace
Sabre\DAV
;
use
Sabre\HTTP\Request
;
use
Sabre\HTTP\Response
;
require_once
'Sabre/DAV/ClientMock.php'
;
class
ClientTest
extends
\PHPUnit_Framework_TestCase
{
function
testConstruct
()
{
$client
=
new
ClientMock
(
array
(
'baseUri'
=>
'/'
,
));
$this
->
assertInstanceOf
(
'Sabre
\D
AV
\C
lientMock'
,
$client
);
}
/**
* @expectedException InvalidArgumentException
*/
function
testConstructNoBaseUri
()
{
$client
=
new
ClientMock
(
array
());
}
function
testAuth
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
'userName'
=>
'foo'
,
'password'
=>
'bar'
,
]);
$this
->
assertEquals
(
"foo:bar"
,
$client
->
curlSettings
[
CURLOPT_USERPWD
]);
$this
->
assertEquals
(
CURLAUTH_BASIC
|
CURLAUTH_DIGEST
,
$client
->
curlSettings
[
CURLOPT_HTTPAUTH
]);
}
function
testBasicAuth
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
'userName'
=>
'foo'
,
'password'
=>
'bar'
,
'authType'
=>
Client
::
AUTH_BASIC
]);
$this
->
assertEquals
(
"foo:bar"
,
$client
->
curlSettings
[
CURLOPT_USERPWD
]);
$this
->
assertEquals
(
CURLAUTH_BASIC
,
$client
->
curlSettings
[
CURLOPT_HTTPAUTH
]);
}
function
testDigestAuth
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
'userName'
=>
'foo'
,
'password'
=>
'bar'
,
'authType'
=>
Client
::
AUTH_DIGEST
]);
$this
->
assertEquals
(
"foo:bar"
,
$client
->
curlSettings
[
CURLOPT_USERPWD
]);
$this
->
assertEquals
(
CURLAUTH_DIGEST
,
$client
->
curlSettings
[
CURLOPT_HTTPAUTH
]);
}
function
testNTLMAuth
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
'userName'
=>
'foo'
,
'password'
=>
'bar'
,
'authType'
=>
Client
::
AUTH_NTLM
]);
$this
->
assertEquals
(
"foo:bar"
,
$client
->
curlSettings
[
CURLOPT_USERPWD
]);
$this
->
assertEquals
(
CURLAUTH_NTLM
,
$client
->
curlSettings
[
CURLOPT_HTTPAUTH
]);
}
function
testProxy
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
'proxy'
=>
'localhost:8888'
,
]);
$this
->
assertEquals
(
"localhost:8888"
,
$client
->
curlSettings
[
CURLOPT_PROXY
]);
}
function
testEncoding
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
'encoding'
=>
Client
::
ENCODING_IDENTITY
|
Client
::
ENCODING_GZIP
|
Client
::
ENCODING_DEFLATE
,
]);
$this
->
assertEquals
(
"identity,deflate,gzip"
,
$client
->
curlSettings
[
CURLOPT_ENCODING
]);
}
function
testPropFind
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
]);
$responseBody
=
<<<XML
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
<response>
<href>/foo</href>
<propstat>
<prop>
<displayname>bar</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>
XML;
$client
->
response
=
new
Response
(
207
,
[],
$responseBody
);
$result
=
$client
->
propfind
(
'foo'
,
[
'{DAV:}displayname'
,
'{urn:zim}gir'
]);
$this
->
assertEquals
([
'{DAV:}displayname'
=>
'bar'
],
$result
);
$request
=
$client
->
request
;
$this
->
assertEquals
(
'PROPFIND'
,
$request
->
getMethod
());
$this
->
assertEquals
(
'/foo'
,
$request
->
getUrl
());
$this
->
assertEquals
([
'Depth'
=>
[
'0'
],
'Content-Type'
=>
[
'application/xml'
],
],
$request
->
getHeaders
());
}
/**
* @expectedException \Sabre\DAV\Exception
*/
function
testPropFindError
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
]);
$client
->
response
=
new
Response
(
405
,
[]);
$client
->
propfind
(
'foo'
,
[
'{DAV:}displayname'
,
'{urn:zim}gir'
]);
}
function
testPropFindDepth1
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
]);
$responseBody
=
<<<XML
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
<response>
<href>/foo</href>
<propstat>
<prop>
<displayname>bar</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>
XML;
$client
->
response
=
new
Response
(
207
,
[],
$responseBody
);
$result
=
$client
->
propfind
(
'foo'
,
[
'{DAV:}displayname'
,
'{urn:zim}gir'
],
1
);
$this
->
assertEquals
([
'/foo'
=>
[
'{DAV:}displayname'
=>
'bar'
],
],
$result
);
$request
=
$client
->
request
;
$this
->
assertEquals
(
'PROPFIND'
,
$request
->
getMethod
());
$this
->
assertEquals
(
'/foo'
,
$request
->
getUrl
());
$this
->
assertEquals
([
'Depth'
=>
[
'1'
],
'Content-Type'
=>
[
'application/xml'
],
],
$request
->
getHeaders
());
}
function
testPropPatch
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
]);
$responseBody
=
<<<XML
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
<response>
<href>/foo</href>
<propstat>
<prop>
<displayname>bar</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>
XML;
$client
->
response
=
new
Response
(
207
,
[],
$responseBody
);
$result
=
$client
->
propPatch
(
'foo'
,
[
'{DAV:}displayname'
=>
'hi'
,
'{urn:zim}gir'
=>
null
],
1
);
$request
=
$client
->
request
;
$this
->
assertEquals
(
'PROPPATCH'
,
$request
->
getMethod
());
$this
->
assertEquals
(
'/foo'
,
$request
->
getUrl
());
$this
->
assertEquals
([
'Content-Type'
=>
[
'application/xml'
],
],
$request
->
getHeaders
());
}
function
testOPTIONS
()
{
$client
=
new
ClientMock
([
'baseUri'
=>
'/'
,
]);
$client
->
response
=
new
Response
(
207
,
[
'DAV'
=>
'calendar-access, extended-mkcol'
,
]);
$result
=
$client
->
options
();
$this
->
assertEquals
(
[
'calendar-access'
,
'extended-mkcol'
],
$result
);
$request
=
$client
->
request
;
$this
->
assertEquals
(
'OPTIONS'
,
$request
->
getMethod
());
$this
->
assertEquals
(
'/'
,
$request
->
getUrl
());
$this
->
assertEquals
([
],
$request
->
getHeaders
());
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Jan 7, 10:08 PM (1 d, 8 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
914359
Default Alt Text
ClientTest.php (6 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment