|
1 <html> |
|
2 <head> |
|
3 <title>Testing Microformats.js</title> |
|
4 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> |
|
5 <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script> |
|
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"></link> |
|
7 <style type="text/css"> |
|
8 /*vcards weee! */ |
|
9 .floated div { |
|
10 float:left; |
|
11 } |
|
12 </style> |
|
13 |
|
14 </head> |
|
15 <body> |
|
16 <div id="content" style="display: none"> |
|
17 <div id="test_1"> |
|
18 <div class="vcard" id="vcard1_node"> |
|
19 <a class="url fn" href="http://tantek.com/">Tantek Çelik</a> |
|
20 <div id="vcard1_org" class="org">Technorati</div> |
|
21 </div> |
|
22 <div class="vcard" id="vcard2_node"> |
|
23 <a class="url" href="http://tantek.com/">Tantek Çelik</a> |
|
24 <div id="vcard2_org" class="org">Technorati</div> |
|
25 </div> |
|
26 </div> |
|
27 <div class="vcard" id="outer_vcard"> |
|
28 <div class="vcard" id="middle_vcard"> |
|
29 <div class="vcard" id="inner_vcard"> |
|
30 <span class="fn">Inner User</span> |
|
31 </div> |
|
32 <span class="fn">Middle User</span> |
|
33 </div> |
|
34 <span class="fn">Outer User</span> |
|
35 </div> |
|
36 <div class="vcard" id="outer_vcard2"> |
|
37 <div class="vevent" id="middle_vevent2"> |
|
38 <div class="vcard" id="inner_vcard2"> |
|
39 <span class="fn">Inner User</span> |
|
40 </div> |
|
41 <span class="summary">Middle Event</span> |
|
42 </div> |
|
43 <span class="fn">Outer User</span> |
|
44 </div> |
|
45 <div class="vevent" id="outer_vevent3"> |
|
46 <div class="vcard" id="middle_vcard3"> |
|
47 <div class="vevent" id="inner_vevent3"> |
|
48 <span class="summary">Inner Event</span> |
|
49 </div> |
|
50 <span class="fn">Middle User</span> |
|
51 </div> |
|
52 <span class="summary">Outer Event</span> |
|
53 </div> |
|
54 |
|
55 <div class="vevent" id="outer_vevent4"> |
|
56 <a rel="tag" id="inner_tag4" href="http://www.example.com/inner_tag"> |
|
57 Inner tag |
|
58 </a> |
|
59 <span class="summary">Outer Event</span> |
|
60 </div> |
|
61 |
|
62 <a rel="tag" id="outer_tag5" href="http://www.example.com/outer_tag"> |
|
63 <div class="vevent" id="inner_vevent5"> |
|
64 <span class="summary">Inner Event</span> |
|
65 </div> |
|
66 </a> |
|
67 |
|
68 <div class="vcard" id="value_test"> |
|
69 <span class="fn"> |
|
70 <span class="value">John</span> |
|
71 <span><span class="value">Middle</span></span> |
|
72 <span class="value">Doe</span> |
|
73 </span> |
|
74 </div> |
|
75 |
|
76 <div class="vcard" id="nested_vcard1"> |
|
77 <div class="agent vcard" id="nested_vcard2"> |
|
78 <div class="agent vcard" id="nested_vcard3"> |
|
79 <span class="fn">Bob Smith</span> |
|
80 <span class="title">Office Assistant</span> |
|
81 </div> |
|
82 <span class="fn">Jack Jones</span> |
|
83 <span class="title">Executive Assistant</span> |
|
84 </div> |
|
85 <span class="fn">John Doe</span> |
|
86 <span class="title">CEO</span> |
|
87 </div> |
|
88 |
|
89 <div class="vevent" id="date_vcal"> |
|
90 <span class="description">Mozilla's Birthday</span> |
|
91 <span class="dtstart">1998-01-22</span> |
|
92 </div> |
|
93 |
|
94 <div class="vevent" id="vcal_vcard"> |
|
95 <div class="vcard"> |
|
96 <span class="description"> |
|
97 <span class="fn org">Mozilla</span>'s Birthday |
|
98 </span> |
|
99 </div> |
|
100 <span class="dtstart">1998-01-22</span> |
|
101 </div> |
|
102 |
|
103 <div id="geo_vcard" class="vcard"> |
|
104 <span class="fn">John Doe</span> |
|
105 <span class="geo" id="ill_geo5">abc;def</span> |
|
106 </div> |
|
107 <div id="loc_vevent" class="vevent"> |
|
108 <span class="summary">Party</span> |
|
109 <span class="location">The White House</span> |
|
110 </div> |
|
111 <div id="loc_vcard_vevent" class="vevent"> |
|
112 <span class="summary">Party</span> |
|
113 <span class="location vcard"><span class="fn">The White House</span></span> |
|
114 </div> |
|
115 |
|
116 <div class="vcard" id="valuespace_1"> |
|
117 <span class="fn"> |
|
118 <span class="value">John</span> |
|
119 <span class="value"> </span> |
|
120 <span class="value">Doe</span> |
|
121 </span> |
|
122 </div> |
|
123 <div class="vcard" id="valuespace_2"> |
|
124 <span class="fn"> |
|
125 <span class="value">John</span> |
|
126 <span class="value"> </span> |
|
127 <span class="value">Doe</span> |
|
128 </span> |
|
129 </div> |
|
130 <div class="vcard" id="valuespace_3"> |
|
131 <span class="fn"> |
|
132 <span class="value"> John</span> |
|
133 <span class="value"> </span> |
|
134 <span class="value">Doe </span> |
|
135 </span> |
|
136 </div> |
|
137 <div class="vcard" id="valuespace_4"> |
|
138 <span class="fn"> |
|
139 <span class="value">John </span> |
|
140 <span class="value"> Doe</span> |
|
141 </span> |
|
142 </div> |
|
143 <div class="vcard" id="valuespace_5"> |
|
144 <span class="fn"> |
|
145 <span class="value"> John</span> |
|
146 <span class="value"> Doe </span> |
|
147 </span> |
|
148 </div> |
|
149 <div class="vcard" id="valuespace_6"> |
|
150 <span class="fn"> |
|
151 <span class="value">John |
|
152 </span> |
|
153 <span class="value"> |
|
154 Doe</span> |
|
155 </span> |
|
156 </div> |
|
157 <div class="vcard" id="valuespace_7"> |
|
158 <span class="fn"> |
|
159 <span class="value">John</span> |
|
160 <span class="value">Doe</span> |
|
161 </span> |
|
162 </div> |
|
163 |
|
164 <span id="austin" class="location">Austin - Sixth Street</span> |
|
165 <table summary="Timetable"> |
|
166 <thead> |
|
167 <tr> |
|
168 <th id="location-1"><a href="#austin" class="include"></a>New York</th> |
|
169 </tr> |
|
170 </thead> |
|
171 <tbody> |
|
172 <tr> |
|
173 <th id="time-1"><abbr title="2008-01-01" class="dtstart">Jan 1, 2008</abbr></th> |
|
174 <td id="nested_header_include" class="vevent" headers="time-1 location-1"><div class="summary">New Years Party</div></td> |
|
175 </tr> |
|
176 </tbody> |
|
177 </table> |
|
178 |
|
179 </div> |
|
180 |
|
181 <div id="float_test"> |
|
182 <div class="vcard floated" id="one"> |
|
183 <div class="fn">John Doe</div> |
|
184 </div> |
|
185 <div class="vcard" id="two"> |
|
186 <div class="fn">John Smith</div> |
|
187 </div> |
|
188 </div> |
|
189 |
|
190 <pre id="test"> |
|
191 <script class="testbody" type="application/javascript;version=1.8"> |
|
192 |
|
193 test_Microformats(); |
|
194 test_hCard(); |
|
195 |
|
196 function test_Microformats() { |
|
197 let { Microformats, hCard, hCalendar } = SpecialPowers.Cu.import("resource://gre/modules/Microformats.js"); |
|
198 |
|
199 ok(Microformats, "Check global access to Microformats"); |
|
200 var hCards = Microformats.get("hCard", document.getElementById("test_1"), {showHidden: true}); |
|
201 is(hCards.length, 1, "Check Microformats.get"); |
|
202 is(Microformats.count("hCard", document.getElementById("test_1"), {showHidden: true}), 1, "Check Microformats.count"); |
|
203 is(Microformats.count("hCard", document.getElementById("test_1"), {showHidden: true, debug: true}), 2, "Check Microformats.count (debug)"); |
|
204 ok(Microformats.isMicroformat(document.getElementById("vcard1_node")), "Check isMicroformat"); |
|
205 is(SpecialPowers.unwrap(Microformats.getParent(document.getElementById("vcard1_org"))), document.getElementById("vcard1_node"), "Check getParent"); |
|
206 is(Microformats.getNamesFromNode(document.getElementById("vcard1_node")), "hCard", "Check getNamesFromNode"); |
|
207 |
|
208 var hCardArray1 = Microformats.get("hCard", document.getElementById("test_1"), {showHidden: true}); |
|
209 is(hCardArray1.length, 1, "Check showHidden=true"); |
|
210 var hCardArray2 = Microformats.get("hCard", document.getElementById("test_1"), {showHidden: false}); |
|
211 is(hCardArray2.length, 0, "Check showHidden=false"); |
|
212 |
|
213 var inner_parent = Microformats.getParent(document.getElementById("inner_vcard")); |
|
214 is(inner_parent.id, "middle_vcard", "GetParent gets correct ancestor 1"); |
|
215 |
|
216 var inner_parent = Microformats.getParent(document.getElementById("inner_vcard2")); |
|
217 is(inner_parent.id, "middle_vevent2", "GetParent gets correct ancestor 2"); |
|
218 |
|
219 var inner_parent = Microformats.getParent(document.getElementById("middle_vevent2")); |
|
220 is(inner_parent.id, "outer_vcard2", "GetParent gets correct ancestor 2a"); |
|
221 |
|
222 var inner_parent = Microformats.getParent(document.getElementById("inner_vevent3")); |
|
223 is(inner_parent.id, "middle_vcard3", "GetParent gets correct ancestor 3"); |
|
224 |
|
225 var inner_parent = Microformats.getParent(document.getElementById("middle_vcard3")); |
|
226 is(inner_parent.id, "outer_vevent3", "GetParent gets correct ancestor 3a"); |
|
227 |
|
228 var inner_parent = Microformats.getParent(document.getElementById("inner_tag4")); |
|
229 is(inner_parent.id, "outer_vevent4", "GetParent gets correct ancestor 4"); |
|
230 |
|
231 var inner_parent = Microformats.getParent(document.getElementById("inner_vevent5")); |
|
232 is(inner_parent.id, "outer_tag5", "GetParent gets correct ancestor 5"); |
|
233 |
|
234 var valueCard = new hCard(document.getElementById("value_test")); |
|
235 |
|
236 is(valueCard.fn, "JohnDoe", "value_test"); |
|
237 |
|
238 var nestCard1 = new hCard(document.getElementById("nested_vcard1")); |
|
239 var nestCard2 = new hCard(document.getElementById("nested_vcard2")); |
|
240 var nestCard3 = new hCard(document.getElementById("nested_vcard3")); |
|
241 |
|
242 is(nestCard1.fn, "John Doe", "nesting (fn) 1"); |
|
243 is(nestCard1.title, "CEO", "nesting (title) 1"); |
|
244 is(nestCard2.fn, "Jack Jones", "nesting (fn) 2"); |
|
245 is(nestCard2.title, "Executive Assistant", "nesting (title) 2"); |
|
246 is(nestCard3.fn, "Bob Smith", "nesting (fn) 3"); |
|
247 is(nestCard3.title, "Office Assistant", "nesting (title) 3"); |
|
248 is(nestCard1.agent[0].agent[0].fn, "Bob Smith", "nesting all"); |
|
249 |
|
250 var dateCal = new hCalendar(document.getElementById("date_vcal")); |
|
251 jsdate = Microformats.dateFromISO8601(dateCal.dtstart); |
|
252 origdate = Microformats.iso8601FromDate(jsdate, true); |
|
253 is(dateCal.dtstart, origdate, "date round trip"); |
|
254 |
|
255 var dateCal = new hCalendar(document.getElementById("vcal_vcard")); |
|
256 is(dateCal.description, "Mozilla's Birthday", "vcard in vcal"); |
|
257 |
|
258 is(Microformats.count("hCard", document.getElementById("float_test")), 2, "Check Microformats.count for floated div"); |
|
259 |
|
260 var hcard = new hCard(document.getElementById("geo_vcard")); |
|
261 ok(!hcard.geo, "Check if invalid geo does not exist"); |
|
262 var hcal = new hCalendar(document.getElementById("loc_vevent")); |
|
263 is(hcal.location, "The White House", "Check if non vcard location works"); |
|
264 var hcal = new hCalendar(document.getElementById("loc_vcard_vevent")); |
|
265 is(hcal.location.fn, "The White House", "Check if vcard location works"); |
|
266 |
|
267 var nestedCal = new hCalendar(document.getElementById("nested_header_include")); |
|
268 is(nestedCal.dtstart, "2008-01-01", "nested_header_include - dtstart"); |
|
269 is(nestedCal.location, "Austin - Sixth Street", "nested_header_include - location"); |
|
270 is(nestedCal.summary, "New Years Party", "nested_header_include - summary"); |
|
271 |
|
272 var valueCard = new hCard(document.getElementById("valuespace_1")); |
|
273 is(valueCard.fn, "John Doe", "valuespace_1"); |
|
274 var valueCard = new hCard(document.getElementById("valuespace_2")); |
|
275 is(valueCard.fn, "John Doe", "valuespace_2"); |
|
276 var valueCard = new hCard(document.getElementById("valuespace_3")); |
|
277 is(valueCard.fn, "John Doe", "valuespace_3"); |
|
278 var valueCard = new hCard(document.getElementById("valuespace_4")); |
|
279 is(valueCard.fn, "John Doe", "valuespace_4"); |
|
280 var valueCard = new hCard(document.getElementById("valuespace_5")); |
|
281 is(valueCard.fn, "John Doe", "valuespace_5"); |
|
282 var valueCard = new hCard(document.getElementById("valuespace_6")); |
|
283 is(valueCard.fn, "John Doe", "valuespace_6"); |
|
284 var valueCard = new hCard(document.getElementById("valuespace_7")); |
|
285 is(valueCard.fn, "JohnDoe", "valuespace_7"); |
|
286 |
|
287 } |
|
288 |
|
289 function test_hCard() { |
|
290 var Microformats = SpecialPowers.Cu.import("resource://gre/modules/Microformats.js").Microformats; |
|
291 |
|
292 var hCards = Microformats.get("hCard", document.getElementById("test_1"), {showHidden: true}); |
|
293 |
|
294 is(hCards[0].fn, "Tantek Çelik", "Check for fn on test vcard"); |
|
295 is(hCards[0].url, "http://tantek.com/", "Check for url on test vcard"); |
|
296 } |
|
297 |
|
298 </script> |
|
299 </pre> |
|
300 </body> |
|
301 </html> |