3 class Sabre_DAV_XMLUtilTest extends PHPUnit_Framework_TestCase {
5 function testToClarkNotation() {
7 $dom = new DOMDocument();
8 $dom->loadXML('<?xml version="1.0"?><test1 xmlns="http://www.example.org/">Testdoc</test1>');
11 '{http://www.example.org/}test1',
12 Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild)
17 function testToClarkNotation2() {
19 $dom = new DOMDocument();
20 $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="http://www.example.org/">Testdoc</s:test1>');
23 '{http://www.example.org/}test1',
24 Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild)
29 function testToClarkNotationDAVNamespace() {
31 $dom = new DOMDocument();
32 $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="DAV:">Testdoc</s:test1>');
36 Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild)
41 function testToClarkNotationNoElem() {
43 $dom = new DOMDocument();
44 $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="DAV:">Testdoc</s:test1>');
47 Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild->firstChild)
52 function testLoadDOMDocument() {
54 $xml='<?xml version="1.0"?><document></document>';
55 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
56 $this->assertTrue($dom instanceof DOMDocument);
61 * @depends testLoadDOMDocument
62 * @expectedException Sabre_DAV_Exception_BadRequest
64 function testLoadDOMDocumentEmpty() {
66 Sabre_DAV_XMLUtil::loadDOMDocument('');
71 * @expectedException Sabre_DAV_Exception_BadRequest
73 function testLoadDOMDocumentInvalid() {
75 $xml='<?xml version="1.0"?><document></docu';
76 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
81 * @depends testLoadDOMDocument
83 function testLoadDOMDocumentUTF16() {
85 $xml='<?xml version="1.0" encoding="UTF-16"?><root xmlns="DAV:">blabla</root>';
86 $xml = iconv('UTF-8','UTF-16LE',$xml);
87 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
88 $this->assertEquals('blabla',$dom->firstChild->nodeValue);
93 function testParseProperties() {
95 $xml='<?xml version="1.0"?>
98 <displayname>Calendars</displayname>
102 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
103 $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
105 $this->assertEquals(array(
106 '{DAV:}displayname' => 'Calendars',
114 * @depends testParseProperties
116 function testParsePropertiesEmpty() {
118 $xml='<?xml version="1.0"?>
119 <root xmlns="DAV:" xmlns:s="http://www.rooftopsolutions.nl/example">
121 <displayname>Calendars</displayname>
128 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
129 $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
131 $this->assertEquals(array(
132 '{DAV:}displayname' => 'Calendars',
133 '{http://www.rooftopsolutions.nl/example}example' => null
140 * @depends testParseProperties
142 function testParsePropertiesComplex() {
144 $xml='<?xml version="1.0"?>
147 <displayname>Calendars</displayname>
150 <someprop>Complex value <b>right here</b></someprop>
154 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
155 $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
157 $this->assertEquals(array(
158 '{DAV:}displayname' => 'Calendars',
159 '{DAV:}someprop' => 'Complex value right here',
166 * @depends testParseProperties
168 function testParsePropertiesNoProperties() {
170 $xml='<?xml version="1.0"?>
176 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
177 $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
179 $this->assertEquals(array(), $properties);
183 function testParsePropertiesMapHref() {
185 $xml='<?xml version="1.0"?>
188 <displayname>Calendars</displayname>
191 <someprop><href>http://sabredav.org/</href></someprop>
195 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
196 $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild,array('{DAV:}someprop'=>'Sabre_DAV_Property_Href'));
198 $this->assertEquals(array(
199 '{DAV:}displayname' => 'Calendars',
200 '{DAV:}someprop' => new Sabre_DAV_Property_Href('http://sabredav.org/',false),
205 function testParseClarkNotation() {
207 $this->assertEquals(array(
210 ), Sabre_DAV_XMLUtil::parseClarkNotation('{DAV:}foo'));
212 $this->assertEquals(array(
213 'http://example.org/ns/bla',
215 ), Sabre_DAV_XMLUtil::parseClarkNotation('{http://example.org/ns/bla}bar-soap'));
219 * @expectedException InvalidArgumentException
221 function testParseClarkNotationFail() {
223 Sabre_DAV_XMLUtil::parseClarkNotation('}foo');