Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1820091
AbstractPDOTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
5 KB
Subscribers
None
AbstractPDOTest.php
View Options
<?php
namespace
Sabre\DAVACL\PrincipalBackend
;
use
Sabre\DAV
;
use
Sabre\HTTP
;
abstract
class
AbstractPDOTest
extends
\PHPUnit_Framework_TestCase
{
abstract
function
getPDO
();
function
testConstruct
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$this
->
assertTrue
(
$backend
instanceof
PDO
);
}
/**
* @depends testConstruct
*/
function
testGetPrincipalsByPrefix
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$expected
=
array
(
array
(
'uri'
=>
'principals/user'
,
'{http://sabredav.org/ns}email-address'
=>
'user@example.org'
,
'{DAV:}displayname'
=>
'User'
,
),
array
(
'uri'
=>
'principals/group'
,
'{http://sabredav.org/ns}email-address'
=>
'group@example.org'
,
'{DAV:}displayname'
=>
'Group'
,
),
);
$this
->
assertEquals
(
$expected
,
$backend
->
getPrincipalsByPrefix
(
'principals'
));
$this
->
assertEquals
(
array
(),
$backend
->
getPrincipalsByPrefix
(
'foo'
));
}
/**
* @depends testConstruct
*/
function
testGetPrincipalByPath
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$expected
=
array
(
'id'
=>
1
,
'uri'
=>
'principals/user'
,
'{http://sabredav.org/ns}email-address'
=>
'user@example.org'
,
'{DAV:}displayname'
=>
'User'
,
);
$this
->
assertEquals
(
$expected
,
$backend
->
getPrincipalByPath
(
'principals/user'
));
$this
->
assertEquals
(
null
,
$backend
->
getPrincipalByPath
(
'foo'
));
}
function
testGetGroupMemberSet
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$expected
=
array
(
'principals/user'
);
$this
->
assertEquals
(
$expected
,
$backend
->
getGroupMemberSet
(
'principals/group'
));
}
function
testGetGroupMembership
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$expected
=
array
(
'principals/group'
);
$this
->
assertEquals
(
$expected
,
$backend
->
getGroupMembership
(
'principals/user'
));
}
function
testSetGroupMemberSet
()
{
$pdo
=
$this
->
getPDO
();
// Start situation
$backend
=
new
PDO
(
$pdo
);
$this
->
assertEquals
(
array
(
'principals/user'
),
$backend
->
getGroupMemberSet
(
'principals/group'
));
// Removing all principals
$backend
->
setGroupMemberSet
(
'principals/group'
,
array
());
$this
->
assertEquals
(
array
(),
$backend
->
getGroupMemberSet
(
'principals/group'
));
// Adding principals again
$backend
->
setGroupMemberSet
(
'principals/group'
,
array
(
'principals/user'
));
$this
->
assertEquals
(
array
(
'principals/user'
),
$backend
->
getGroupMemberSet
(
'principals/group'
));
}
function
testSearchPrincipals
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$result
=
$backend
->
searchPrincipals
(
'principals'
,
array
(
'{DAV:}blabla'
=>
'foo'
));
$this
->
assertEquals
(
array
(),
$result
);
$result
=
$backend
->
searchPrincipals
(
'principals'
,
array
(
'{DAV:}displayname'
=>
'ou'
));
$this
->
assertEquals
(
array
(
'principals/group'
),
$result
);
$result
=
$backend
->
searchPrincipals
(
'principals'
,
array
(
'{DAV:}displayname'
=>
'UsEr'
,
'{http://sabredav.org/ns}email-address'
=>
'USER@EXAMPLE'
));
$this
->
assertEquals
(
array
(
'principals/user'
),
$result
);
$result
=
$backend
->
searchPrincipals
(
'mom'
,
array
(
'{DAV:}displayname'
=>
'UsEr'
,
'{http://sabredav.org/ns}email-address'
=>
'USER@EXAMPLE'
));
$this
->
assertEquals
(
array
(),
$result
);
}
function
testUpdatePrincipal
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$propPatch
=
new
DAV\PropPatch
([
'{DAV:}displayname'
=>
'pietje'
,
]);
$backend
->
updatePrincipal
(
'principals/user'
,
$propPatch
);
$result
=
$propPatch
->
commit
();
$this
->
assertTrue
(
$result
);
$this
->
assertEquals
(
array
(
'id'
=>
1
,
'uri'
=>
'principals/user'
,
'{DAV:}displayname'
=>
'pietje'
,
'{http://sabredav.org/ns}email-address'
=>
'user@example.org'
,
),
$backend
->
getPrincipalByPath
(
'principals/user'
));
}
function
testUpdatePrincipalUnknownField
()
{
$pdo
=
$this
->
getPDO
();
$backend
=
new
PDO
(
$pdo
);
$propPatch
=
new
DAV\PropPatch
([
'{DAV:}displayname'
=>
'pietje'
,
'{DAV:}unknown'
=>
'foo'
,
]);
$backend
->
updatePrincipal
(
'principals/user'
,
$propPatch
);
$result
=
$propPatch
->
commit
();
$this
->
assertFalse
(
$result
);
$this
->
assertEquals
(
array
(
'{DAV:}displayname'
=>
424
,
'{DAV:}unknown'
=>
403
),
$propPatch
->
getResult
());
$this
->
assertEquals
(
array
(
'id'
=>
'1'
,
'uri'
=>
'principals/user'
,
'{DAV:}displayname'
=>
'User'
,
'{http://sabredav.org/ns}email-address'
=>
'user@example.org'
,
),
$backend
->
getPrincipalByPath
(
'principals/user'
));
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Dec 21, 7:19 PM (2 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
914336
Default Alt Text
AbstractPDOTest.php (5 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment