]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAV/XMLUtilTest.php
Merge branch '3.6-release'
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAV / XMLUtilTest.php
1 <?php
2
3 class Sabre_DAV_XMLUtilTest extends PHPUnit_Framework_TestCase {
4
5     function testToClarkNotation() {
6
7         $dom = new DOMDocument();
8         $dom->loadXML('<?xml version="1.0"?><test1 xmlns="http://www.example.org/">Testdoc</test1>');
9
10         $this->assertEquals(
11             '{http://www.example.org/}test1',
12             Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild)
13         );
14
15     }
16
17     function testToClarkNotation2() {
18
19         $dom = new DOMDocument();
20         $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="http://www.example.org/">Testdoc</s:test1>');
21
22         $this->assertEquals(
23             '{http://www.example.org/}test1',
24             Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild)
25         );
26
27     }
28
29     function testToClarkNotationDAVNamespace() {
30
31         $dom = new DOMDocument();
32         $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="DAV:">Testdoc</s:test1>');
33
34         $this->assertEquals(
35             '{DAV:}test1',
36             Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild)
37         );
38
39     }
40
41     function testToClarkNotationNoElem() {
42
43         $dom = new DOMDocument();
44         $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="DAV:">Testdoc</s:test1>');
45
46         $this->assertNull(
47             Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild->firstChild)
48         );
49
50     }
51
52     function testLoadDOMDocument() {
53
54         $xml='<?xml version="1.0"?><document></document>';
55         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
56         $this->assertTrue($dom instanceof DOMDocument);
57
58     }
59
60     /**
61      * @depends testLoadDOMDocument
62      * @expectedException Sabre_DAV_Exception_BadRequest
63      */
64     function testLoadDOMDocumentEmpty() {
65
66         Sabre_DAV_XMLUtil::loadDOMDocument('');
67
68     }
69
70     /**
71      * @expectedException Sabre_DAV_Exception_BadRequest
72      */
73     function testLoadDOMDocumentInvalid() {
74
75         $xml='<?xml version="1.0"?><document></docu';
76         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
77
78     }
79
80     /**
81      * @depends testLoadDOMDocument
82      */
83     function testLoadDOMDocumentUTF16() {
84
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);
89
90     }
91
92
93     function testParseProperties() {
94
95         $xml='<?xml version="1.0"?>
96 <root xmlns="DAV:">
97   <prop>
98     <displayname>Calendars</displayname>
99   </prop>
100 </root>';
101
102         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
103         $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
104
105         $this->assertEquals(array(
106             '{DAV:}displayname' => 'Calendars',
107         ), $properties);
108
109
110
111     }
112
113     /**
114      * @depends testParseProperties
115      */
116     function testParsePropertiesEmpty() {
117
118         $xml='<?xml version="1.0"?>
119 <root xmlns="DAV:" xmlns:s="http://www.rooftopsolutions.nl/example">
120   <prop>
121     <displayname>Calendars</displayname>
122   </prop>
123   <prop>
124     <s:example />
125   </prop>
126 </root>';
127
128         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
129         $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
130
131         $this->assertEquals(array(
132             '{DAV:}displayname' => 'Calendars',
133             '{http://www.rooftopsolutions.nl/example}example' => null
134         ), $properties);
135
136     }
137
138
139     /**
140      * @depends testParseProperties
141      */
142     function testParsePropertiesComplex() {
143
144         $xml='<?xml version="1.0"?>
145 <root xmlns="DAV:">
146   <prop>
147     <displayname>Calendars</displayname>
148   </prop>
149   <prop>
150     <someprop>Complex value <b>right here</b></someprop>
151   </prop>
152 </root>';
153
154         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
155         $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
156
157         $this->assertEquals(array(
158             '{DAV:}displayname' => 'Calendars',
159             '{DAV:}someprop'    => 'Complex value right here',
160         ), $properties);
161
162     }
163
164
165     /**
166      * @depends testParseProperties
167      */
168     function testParsePropertiesNoProperties() {
169
170         $xml='<?xml version="1.0"?>
171 <root xmlns="DAV:">
172   <prop>
173   </prop>
174 </root>';
175
176         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
177         $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild);
178
179         $this->assertEquals(array(), $properties);
180
181     }
182
183     function testParsePropertiesMapHref() {
184
185         $xml='<?xml version="1.0"?>
186 <root xmlns="DAV:">
187   <prop>
188     <displayname>Calendars</displayname>
189   </prop>
190   <prop>
191     <someprop><href>http://sabredav.org/</href></someprop>
192   </prop>
193 </root>';
194
195         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
196         $properties = Sabre_DAV_XMLUtil::parseProperties($dom->firstChild,array('{DAV:}someprop'=>'Sabre_DAV_Property_Href'));
197
198         $this->assertEquals(array(
199             '{DAV:}displayname' => 'Calendars',
200             '{DAV:}someprop'    => new Sabre_DAV_Property_Href('http://sabredav.org/',false),
201         ), $properties);
202
203     }
204
205     function testParseClarkNotation() {
206
207         $this->assertEquals(array(
208             'DAV:',
209             'foo',
210         ), Sabre_DAV_XMLUtil::parseClarkNotation('{DAV:}foo'));
211
212         $this->assertEquals(array(
213             'http://example.org/ns/bla',
214             'bar-soap',
215         ), Sabre_DAV_XMLUtil::parseClarkNotation('{http://example.org/ns/bla}bar-soap'));
216     }
217
218     /**
219      * @expectedException InvalidArgumentException
220      */
221     function testParseClarkNotationFail() {
222
223         Sabre_DAV_XMLUtil::parseClarkNotation('}foo');
224
225     }
226
227 }
228