toolkit/components/microformats/tests/test_Microformats.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/components/microformats/tests/test_Microformats.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,301 @@
     1.4 +<html>
     1.5 +<head>
     1.6 +  <title>Testing Microformats.js</title>
     1.7 +  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     1.8 +  <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
     1.9 +  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"></link>
    1.10 +  <style type="text/css">
    1.11 +    /*vcards weee! */
    1.12 +    .floated div {
    1.13 +      float:left;
    1.14 +    }
    1.15 +  </style>
    1.16 +
    1.17 +</head>
    1.18 +<body>
    1.19 +<div id="content" style="display: none">
    1.20 +  <div id="test_1">
    1.21 +    <div class="vcard" id="vcard1_node">
    1.22 +     <a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
    1.23 +     <div id="vcard1_org" class="org">Technorati</div>
    1.24 +    </div>  
    1.25 +    <div class="vcard" id="vcard2_node">
    1.26 +     <a class="url" href="http://tantek.com/">Tantek Çelik</a>
    1.27 +     <div id="vcard2_org" class="org">Technorati</div>
    1.28 +    </div>
    1.29 +  </div>
    1.30 +  <div class="vcard" id="outer_vcard">
    1.31 +    <div class="vcard" id="middle_vcard">
    1.32 +      <div class="vcard" id="inner_vcard">
    1.33 +        <span class="fn">Inner User</span>
    1.34 +      </div>
    1.35 +      <span class="fn">Middle User</span>
    1.36 +    </div>
    1.37 +    <span class="fn">Outer User</span>
    1.38 +  </div>
    1.39 +  <div class="vcard" id="outer_vcard2">
    1.40 +    <div class="vevent" id="middle_vevent2">
    1.41 +      <div class="vcard" id="inner_vcard2">
    1.42 +        <span class="fn">Inner User</span>
    1.43 +      </div>
    1.44 +      <span class="summary">Middle Event</span>
    1.45 +    </div>
    1.46 +    <span class="fn">Outer User</span>
    1.47 +  </div>
    1.48 +  <div class="vevent" id="outer_vevent3">
    1.49 +    <div class="vcard" id="middle_vcard3">
    1.50 +      <div class="vevent" id="inner_vevent3">
    1.51 +        <span class="summary">Inner Event</span>
    1.52 +      </div>
    1.53 +      <span class="fn">Middle User</span>
    1.54 +    </div>
    1.55 +    <span class="summary">Outer Event</span>
    1.56 +  </div>
    1.57 +
    1.58 +  <div class="vevent" id="outer_vevent4">
    1.59 +    <a rel="tag" id="inner_tag4" href="http://www.example.com/inner_tag">
    1.60 +      Inner tag
    1.61 +    </a>
    1.62 +    <span class="summary">Outer Event</span>
    1.63 +  </div>
    1.64 +
    1.65 +  <a rel="tag" id="outer_tag5" href="http://www.example.com/outer_tag">
    1.66 +    <div class="vevent" id="inner_vevent5">
    1.67 +      <span class="summary">Inner Event</span>
    1.68 +    </div>
    1.69 +  </a>
    1.70 +  
    1.71 +  <div class="vcard" id="value_test">
    1.72 +    <span class="fn">
    1.73 +      <span class="value">John</span>
    1.74 +      <span><span class="value">Middle</span></span>
    1.75 +      <span class="value">Doe</span>
    1.76 +    </span>
    1.77 +  </div>
    1.78 +
    1.79 +  <div class="vcard" id="nested_vcard1">
    1.80 +    <div class="agent vcard" id="nested_vcard2">
    1.81 +      <div class="agent vcard" id="nested_vcard3">
    1.82 +        <span class="fn">Bob Smith</span>
    1.83 +        <span class="title">Office Assistant</span>
    1.84 +      </div>
    1.85 +      <span class="fn">Jack Jones</span>
    1.86 +      <span class="title">Executive Assistant</span>
    1.87 +    </div>
    1.88 +    <span class="fn">John Doe</span>
    1.89 +    <span class="title">CEO</span>
    1.90 +  </div>
    1.91 +
    1.92 +  <div class="vevent" id="date_vcal">
    1.93 +    <span class="description">Mozilla's Birthday</span>
    1.94 +    <span class="dtstart">1998-01-22</span>
    1.95 +  </div>
    1.96 +
    1.97 +  <div class="vevent" id="vcal_vcard">
    1.98 +    <div class="vcard">
    1.99 +      <span class="description">
   1.100 +        <span class="fn org">Mozilla</span>'s Birthday
   1.101 +      </span>
   1.102 +    </div>
   1.103 +    <span class="dtstart">1998-01-22</span>
   1.104 +  </div>
   1.105 +
   1.106 +  <div id="geo_vcard" class="vcard">
   1.107 +    <span class="fn">John Doe</span>
   1.108 +    <span class="geo" id="ill_geo5">abc;def</span>
   1.109 +  </div>
   1.110 +  <div id="loc_vevent" class="vevent">
   1.111 +    <span class="summary">Party</span>
   1.112 +    <span class="location">The White House</span>
   1.113 +  </div>
   1.114 +  <div id="loc_vcard_vevent" class="vevent">
   1.115 +    <span class="summary">Party</span>
   1.116 +    <span class="location vcard"><span class="fn">The White House</span></span>
   1.117 +  </div>
   1.118 +  
   1.119 +  <div class="vcard" id="valuespace_1">
   1.120 +    <span class="fn">
   1.121 +      <span class="value">John</span>
   1.122 +      <span class="value"> </span>
   1.123 +      <span class="value">Doe</span>
   1.124 +    </span>
   1.125 +  </div>
   1.126 +  <div class="vcard" id="valuespace_2">
   1.127 +    <span class="fn">
   1.128 +      <span class="value">John</span>
   1.129 +      <span class="value">    </span>
   1.130 +      <span class="value">Doe</span>
   1.131 +    </span>
   1.132 +  </div>
   1.133 +  <div class="vcard" id="valuespace_3">
   1.134 +    <span class="fn">
   1.135 +      <span class="value">  John</span>
   1.136 +      <span class="value">    </span>
   1.137 +      <span class="value">Doe  </span>
   1.138 +    </span>
   1.139 +  </div>
   1.140 +  <div class="vcard" id="valuespace_4">
   1.141 +    <span class="fn">
   1.142 +      <span class="value">John    </span>
   1.143 +      <span class="value">    Doe</span>
   1.144 +    </span>
   1.145 +  </div>
   1.146 +  <div class="vcard" id="valuespace_5">
   1.147 +    <span class="fn">
   1.148 +      <span class="value">    John</span>
   1.149 +      <span class="value">    Doe    </span>
   1.150 +    </span>
   1.151 +  </div>
   1.152 +  <div class="vcard" id="valuespace_6">
   1.153 +    <span class="fn">
   1.154 +      <span class="value">John
   1.155 +      </span>
   1.156 +      <span class="value">
   1.157 +      Doe</span>
   1.158 +      </span>
   1.159 +  </div>
   1.160 +  <div class="vcard" id="valuespace_7">
   1.161 +    <span class="fn">
   1.162 +      <span class="value">John</span>
   1.163 +      <span class="value">Doe</span>
   1.164 +    </span>
   1.165 +  </div>
   1.166 + 
   1.167 +  <span id="austin" class="location">Austin - Sixth Street</span>
   1.168 +  <table summary="Timetable">
   1.169 +    <thead>
   1.170 +      <tr>
   1.171 +        <th id="location-1"><a href="#austin" class="include"></a>New York</th>
   1.172 +      </tr>
   1.173 +    </thead>
   1.174 +    <tbody>
   1.175 +      <tr>
   1.176 +        <th id="time-1"><abbr title="2008-01-01" class="dtstart">Jan 1, 2008</abbr></th>
   1.177 +        <td id="nested_header_include" class="vevent" headers="time-1 location-1"><div class="summary">New Years Party</div></td>
   1.178 +      </tr>
   1.179 +    </tbody>
   1.180 +  </table>
   1.181 +
   1.182 +</div>
   1.183 +
   1.184 +<div id="float_test">
   1.185 +  <div class="vcard floated" id="one">
   1.186 +    <div class="fn">John Doe</div>
   1.187 +  </div>
   1.188 +  <div class="vcard" id="two">
   1.189 +    <div class="fn">John Smith</div>
   1.190 +  </div>
   1.191 +</div>
   1.192 +
   1.193 +<pre id="test">
   1.194 +<script class="testbody" type="application/javascript;version=1.8">
   1.195 +
   1.196 +test_Microformats();
   1.197 +test_hCard();
   1.198 +
   1.199 +function test_Microformats() {
   1.200 +  let { Microformats, hCard, hCalendar } = SpecialPowers.Cu.import("resource://gre/modules/Microformats.js");
   1.201 +
   1.202 +  ok(Microformats, "Check global access to Microformats");
   1.203 +  var hCards = Microformats.get("hCard", document.getElementById("test_1"), {showHidden: true});
   1.204 +  is(hCards.length, 1, "Check Microformats.get");
   1.205 +  is(Microformats.count("hCard", document.getElementById("test_1"),  {showHidden: true}), 1, "Check Microformats.count");
   1.206 +  is(Microformats.count("hCard", document.getElementById("test_1"),  {showHidden: true, debug: true}), 2, "Check Microformats.count (debug)");
   1.207 +  ok(Microformats.isMicroformat(document.getElementById("vcard1_node")), "Check isMicroformat");
   1.208 +  is(SpecialPowers.unwrap(Microformats.getParent(document.getElementById("vcard1_org"))), document.getElementById("vcard1_node"), "Check getParent");
   1.209 +  is(Microformats.getNamesFromNode(document.getElementById("vcard1_node")), "hCard", "Check getNamesFromNode");
   1.210 +  
   1.211 +  var hCardArray1 = Microformats.get("hCard", document.getElementById("test_1"), {showHidden: true});
   1.212 +  is(hCardArray1.length, 1, "Check showHidden=true");
   1.213 +  var hCardArray2 = Microformats.get("hCard", document.getElementById("test_1"), {showHidden: false});
   1.214 +  is(hCardArray2.length, 0, "Check showHidden=false");
   1.215 +  
   1.216 +  var inner_parent = Microformats.getParent(document.getElementById("inner_vcard"));
   1.217 +  is(inner_parent.id, "middle_vcard", "GetParent gets correct ancestor 1");
   1.218 +
   1.219 +  var inner_parent = Microformats.getParent(document.getElementById("inner_vcard2"));
   1.220 +  is(inner_parent.id, "middle_vevent2", "GetParent gets correct ancestor 2");
   1.221 +
   1.222 +  var inner_parent = Microformats.getParent(document.getElementById("middle_vevent2"));
   1.223 +  is(inner_parent.id, "outer_vcard2", "GetParent gets correct ancestor 2a");
   1.224 +
   1.225 +  var inner_parent = Microformats.getParent(document.getElementById("inner_vevent3"));
   1.226 +  is(inner_parent.id, "middle_vcard3", "GetParent gets correct ancestor 3");
   1.227 +
   1.228 +  var inner_parent = Microformats.getParent(document.getElementById("middle_vcard3"));
   1.229 +  is(inner_parent.id, "outer_vevent3", "GetParent gets correct ancestor 3a");
   1.230 +
   1.231 +  var inner_parent = Microformats.getParent(document.getElementById("inner_tag4"));
   1.232 +  is(inner_parent.id, "outer_vevent4", "GetParent gets correct ancestor 4");
   1.233 +
   1.234 +  var inner_parent = Microformats.getParent(document.getElementById("inner_vevent5"));
   1.235 +  is(inner_parent.id, "outer_tag5", "GetParent gets correct ancestor 5");
   1.236 +  
   1.237 +  var valueCard = new hCard(document.getElementById("value_test"));
   1.238 +
   1.239 +  is(valueCard.fn, "JohnDoe", "value_test");
   1.240 +
   1.241 +  var nestCard1 = new hCard(document.getElementById("nested_vcard1"));
   1.242 +  var nestCard2 = new hCard(document.getElementById("nested_vcard2"));
   1.243 +  var nestCard3 = new hCard(document.getElementById("nested_vcard3"));
   1.244 +
   1.245 +  is(nestCard1.fn, "John Doe", "nesting (fn) 1");
   1.246 +  is(nestCard1.title, "CEO", "nesting (title) 1");
   1.247 +  is(nestCard2.fn, "Jack Jones", "nesting (fn) 2");
   1.248 +  is(nestCard2.title, "Executive Assistant", "nesting (title) 2");
   1.249 +  is(nestCard3.fn, "Bob Smith", "nesting (fn) 3");
   1.250 +  is(nestCard3.title, "Office Assistant", "nesting (title) 3");
   1.251 +  is(nestCard1.agent[0].agent[0].fn, "Bob Smith", "nesting all");
   1.252 +  
   1.253 +  var dateCal = new hCalendar(document.getElementById("date_vcal"));
   1.254 +  jsdate = Microformats.dateFromISO8601(dateCal.dtstart);
   1.255 +  origdate = Microformats.iso8601FromDate(jsdate, true);
   1.256 +  is(dateCal.dtstart, origdate, "date round trip");
   1.257 +
   1.258 +  var dateCal = new hCalendar(document.getElementById("vcal_vcard"));
   1.259 +  is(dateCal.description, "Mozilla's Birthday", "vcard in vcal");
   1.260 +
   1.261 +  is(Microformats.count("hCard", document.getElementById("float_test")), 2, "Check Microformats.count for floated div");
   1.262 +
   1.263 +  var hcard = new hCard(document.getElementById("geo_vcard"));
   1.264 +  ok(!hcard.geo, "Check if invalid geo does not exist");
   1.265 +  var hcal = new hCalendar(document.getElementById("loc_vevent"));
   1.266 +  is(hcal.location, "The White House", "Check if non vcard location works");
   1.267 +  var hcal = new hCalendar(document.getElementById("loc_vcard_vevent"));
   1.268 +  is(hcal.location.fn, "The White House", "Check if vcard location works");
   1.269 +
   1.270 +  var nestedCal = new hCalendar(document.getElementById("nested_header_include"));
   1.271 +  is(nestedCal.dtstart, "2008-01-01", "nested_header_include - dtstart");
   1.272 +  is(nestedCal.location, "Austin - Sixth Street", "nested_header_include - location");
   1.273 +  is(nestedCal.summary, "New Years Party", "nested_header_include - summary");
   1.274 +
   1.275 +  var valueCard = new hCard(document.getElementById("valuespace_1"));
   1.276 +  is(valueCard.fn, "John Doe", "valuespace_1");
   1.277 +  var valueCard = new hCard(document.getElementById("valuespace_2"));
   1.278 +  is(valueCard.fn, "John Doe", "valuespace_2");
   1.279 +  var valueCard = new hCard(document.getElementById("valuespace_3"));
   1.280 +  is(valueCard.fn, "John Doe", "valuespace_3");
   1.281 +  var valueCard = new hCard(document.getElementById("valuespace_4"));
   1.282 +  is(valueCard.fn, "John Doe", "valuespace_4");
   1.283 +  var valueCard = new hCard(document.getElementById("valuespace_5"));
   1.284 +  is(valueCard.fn, "John Doe", "valuespace_5");
   1.285 +  var valueCard = new hCard(document.getElementById("valuespace_6"));
   1.286 +  is(valueCard.fn, "John Doe", "valuespace_6");
   1.287 +  var valueCard = new hCard(document.getElementById("valuespace_7"));
   1.288 +  is(valueCard.fn, "JohnDoe", "valuespace_7");
   1.289 +
   1.290 +}
   1.291 +
   1.292 +function test_hCard() {
   1.293 +  var Microformats = SpecialPowers.Cu.import("resource://gre/modules/Microformats.js").Microformats;
   1.294 +  
   1.295 +  var hCards = Microformats.get("hCard", document.getElementById("test_1"),  {showHidden: true}); 
   1.296 +  
   1.297 +  is(hCards[0].fn, "Tantek Çelik", "Check for fn on test vcard");
   1.298 +  is(hCards[0].url, "http://tantek.com/", "Check for url on test vcard");
   1.299 +}
   1.300 +
   1.301 +</script>
   1.302 +</pre>
   1.303 +</body>
   1.304 +</html>

mercurial