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