xref: /plugin/davcal/vendor/sabre/dav/tests/Sabre/DAVACL/Exception/NeedPrivilegesExceptionTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\DAVACL\Exception;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehleruse Sabre\DAV;
6*a1a3b679SAndreas Boehler
7*a1a3b679SAndreas Boehlerclass NeedPrivilegesTest extends \PHPUnit_Framework_TestCase {
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehler    function testSerialize() {
10*a1a3b679SAndreas Boehler
11*a1a3b679SAndreas Boehler        $uri = 'foo';
12*a1a3b679SAndreas Boehler        $privileges = array(
13*a1a3b679SAndreas Boehler            '{DAV:}read',
14*a1a3b679SAndreas Boehler            '{DAV:}write',
15*a1a3b679SAndreas Boehler        );
16*a1a3b679SAndreas Boehler        $ex = new NeedPrivileges($uri, $privileges);
17*a1a3b679SAndreas Boehler
18*a1a3b679SAndreas Boehler        $server = new DAV\Server();
19*a1a3b679SAndreas Boehler        $dom = new \DOMDocument('1.0','utf-8');
20*a1a3b679SAndreas Boehler        $root = $dom->createElementNS('DAV:','d:root');
21*a1a3b679SAndreas Boehler        $dom->appendChild($root);
22*a1a3b679SAndreas Boehler
23*a1a3b679SAndreas Boehler        $ex->serialize($server, $root);
24*a1a3b679SAndreas Boehler
25*a1a3b679SAndreas Boehler        $xpaths = array(
26*a1a3b679SAndreas Boehler            '/d:root' => 1,
27*a1a3b679SAndreas Boehler            '/d:root/d:need-privileges' => 1,
28*a1a3b679SAndreas Boehler            '/d:root/d:need-privileges/d:resource' => 2,
29*a1a3b679SAndreas Boehler            '/d:root/d:need-privileges/d:resource/d:href' => 2,
30*a1a3b679SAndreas Boehler            '/d:root/d:need-privileges/d:resource/d:privilege' => 2,
31*a1a3b679SAndreas Boehler            '/d:root/d:need-privileges/d:resource/d:privilege/d:read' => 1,
32*a1a3b679SAndreas Boehler            '/d:root/d:need-privileges/d:resource/d:privilege/d:write' => 1,
33*a1a3b679SAndreas Boehler        );
34*a1a3b679SAndreas Boehler
35*a1a3b679SAndreas Boehler        // Reloading because PHP DOM sucks
36*a1a3b679SAndreas Boehler        $dom2 = new \DOMDocument('1.0', 'utf-8');
37*a1a3b679SAndreas Boehler        $dom2->loadXML($dom->saveXML());
38*a1a3b679SAndreas Boehler
39*a1a3b679SAndreas Boehler        $dxpath = new \DOMXPath($dom2);
40*a1a3b679SAndreas Boehler        $dxpath->registerNamespace('d','DAV:');
41*a1a3b679SAndreas Boehler        foreach($xpaths as $xpath=>$count) {
42*a1a3b679SAndreas Boehler
43*a1a3b679SAndreas Boehler            $this->assertEquals($count, $dxpath->query($xpath)->length, 'Looking for : ' . $xpath . ', we could only find ' . $dxpath->query($xpath)->length . ' elements, while we expected ' . $count);
44*a1a3b679SAndreas Boehler
45*a1a3b679SAndreas Boehler        }
46*a1a3b679SAndreas Boehler
47*a1a3b679SAndreas Boehler    }
48*a1a3b679SAndreas Boehler
49*a1a3b679SAndreas Boehler}
50