toolkit/components/microformats/tests/test_Microformats.html

Fri, 16 Jan 2015 18:13:44 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 18:13:44 +0100
branch
TOR_BUG_9701
changeset 14
925c144e1f1f
permissions
-rw-r--r--

Integrate suggestion from review to improve consistency with existing code.

     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>
    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>
    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>
    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>
    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>
    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>
    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>
    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>
   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>
   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>
   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>
   179 </div>
   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>
   190 <pre id="test">
   191 <script class="testbody" type="application/javascript;version=1.8">
   193 test_Microformats();
   194 test_hCard();
   196 function test_Microformats() {
   197   let { Microformats, hCard, hCalendar } = SpecialPowers.Cu.import("resource://gre/modules/Microformats.js");
   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");
   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");
   213   var inner_parent = Microformats.getParent(document.getElementById("inner_vcard"));
   214   is(inner_parent.id, "middle_vcard", "GetParent gets correct ancestor 1");
   216   var inner_parent = Microformats.getParent(document.getElementById("inner_vcard2"));
   217   is(inner_parent.id, "middle_vevent2", "GetParent gets correct ancestor 2");
   219   var inner_parent = Microformats.getParent(document.getElementById("middle_vevent2"));
   220   is(inner_parent.id, "outer_vcard2", "GetParent gets correct ancestor 2a");
   222   var inner_parent = Microformats.getParent(document.getElementById("inner_vevent3"));
   223   is(inner_parent.id, "middle_vcard3", "GetParent gets correct ancestor 3");
   225   var inner_parent = Microformats.getParent(document.getElementById("middle_vcard3"));
   226   is(inner_parent.id, "outer_vevent3", "GetParent gets correct ancestor 3a");
   228   var inner_parent = Microformats.getParent(document.getElementById("inner_tag4"));
   229   is(inner_parent.id, "outer_vevent4", "GetParent gets correct ancestor 4");
   231   var inner_parent = Microformats.getParent(document.getElementById("inner_vevent5"));
   232   is(inner_parent.id, "outer_tag5", "GetParent gets correct ancestor 5");
   234   var valueCard = new hCard(document.getElementById("value_test"));
   236   is(valueCard.fn, "JohnDoe", "value_test");
   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"));
   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");
   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");
   255   var dateCal = new hCalendar(document.getElementById("vcal_vcard"));
   256   is(dateCal.description, "Mozilla's Birthday", "vcard in vcal");
   258   is(Microformats.count("hCard", document.getElementById("float_test")), 2, "Check Microformats.count for floated div");
   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");
   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");
   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");
   287 }
   289 function test_hCard() {
   290   var Microformats = SpecialPowers.Cu.import("resource://gre/modules/Microformats.js").Microformats;
   292   var hCards = Microformats.get("hCard", document.getElementById("test_1"),  {showHidden: true}); 
   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 }
   298 </script>
   299 </pre>
   300 </body>
   301 </html>

mercurial