tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_text_wholeText.html (7428B)


      1 <!DOCTYPE html>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=421765
      5 -->
      6 <head>
      7  <title>Text.wholeText tests</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     10 </head>
     11 <body>
     12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=421765">Mozilla Bug 421765</a>
     13 <p id="display"></p>
     14 <div id="content" style="display: none"></div>
     15 
     16 <iframe id="xmlDocument" src="wholeTexty-helper.xml"></iframe>
     17 
     18 <pre id="test">
     19 <script class="testbody" type="text/javascript">
     20 
     21 /** Test for Bug 421765 */
     22 
     23 SimpleTest.waitForExplicitFinish();
     24 
     25 var xmlDoc;
     26 
     27 function text(t) { return document.createTextNode(t); }
     28 function element() { return document.createElement("div"); }
     29 function cdata(t)
     30 {
     31  xmlDoc = $("xmlDocument").contentDocument;
     32  // document.createCDATASection isn't implemented; clone for the win
     33  var node = xmlDoc.documentElement.firstChild.cloneNode(false);
     34  is(node.nodeType, Node.CDATA_SECTION_NODE,
     35     "er, why isn't this a CDATA section node?");
     36  node.data = t;
     37  return node;
     38 }
     39 
     40 
     41 function firstTests()
     42 {
     43  var outer = element();
     44  var first = text("first");
     45  var second = element();
     46  second.appendChild(text("element contents"));
     47  outer.appendChild(first);
     48  outer.appendChild(second);
     49 
     50  is(first.wholeText, "first", "wrong wholeText for first");
     51 
     52  var insertedText = text("-continued");
     53  outer.insertBefore(insertedText, second);
     54 
     55  is(first.wholeText, "first-continued",
     56     "wrong wholeText for first after insertedText insertion");
     57  is(insertedText.wholeText, "first-continued",
     58     "wrong wholeText for insertedText after insertedText insertion");
     59 
     60  var cdataNode = cdata("zero-")
     61  outer.insertBefore(cdataNode, first);
     62 
     63  is(first.wholeText, "zero-first-continued",
     64     "wrong wholeText for first after cdataNode insertion");
     65  is(cdataNode.wholeText, "zero-first-continued",
     66     "wrong wholeText for cdataNode after cdataNode insertion");
     67  is(insertedText.wholeText, "zero-first-continued",
     68     "wrong wholeText for insertedText after cdataNode insertion");
     69 
     70  outer.insertBefore(element(), first);
     71 
     72  is(first.wholeText, "first-continued",
     73     "wrong wholeText for first after element insertion");
     74  is(cdataNode.wholeText, "zero-",
     75     "wrong wholeText for cdataNode after element insertion");
     76  is(insertedText.wholeText, "first-continued",
     77     "wrong wholeText for insertedText after element insertion");
     78 
     79  var cdataNode2 = cdata("-interrupted");
     80  outer.insertBefore(cdataNode2, insertedText);
     81 
     82  is(first.wholeText, "first-interrupted-continued",
     83     "wrong wholeText for first after cdataNode2 insertion");
     84  is(cdataNode2.wholeText, "first-interrupted-continued",
     85     "wrong wholeText for cdataNode2 after cdataNode2 insertion");
     86  is(insertedText.wholeText, "first-interrupted-continued",
     87     "wrong wholeText for insertedText after cdataNode2 insertion");
     88 }
     89 
     90 function middleTests()
     91 {
     92  var outer = element();
     93  var first = element();
     94  var last = element();
     95  var middle = text("middle");
     96  first.appendChild(text("first element contents"));
     97  last.appendChild(text("last element contents"));
     98  outer.appendChild(first);
     99  outer.appendChild(middle);
    100  outer.appendChild(last);
    101 
    102  is(middle.wholeText, "middle", "wrong wholeText for middle");
    103 
    104  var beforeMiddle = text("before-");
    105  outer.insertBefore(beforeMiddle, middle);
    106 
    107  is(middle.wholeText, "before-middle",
    108     "wrong wholeText for middle after beforeMiddle insertion");
    109  is(beforeMiddle.wholeText, "before-middle",
    110     "wrong wholeText for beforeMiddle after beforeMiddle insertion");
    111 
    112  var midElement = element();
    113  midElement.appendChild(text("middle element"));
    114  outer.insertBefore(midElement, middle);
    115 
    116  is(middle.wholeText, "middle",
    117     "wrong wholeText for middle after midElement insertion");
    118  is(beforeMiddle.wholeText, "before-",
    119     "wrong wholeText for beforeMiddle after midElement insertion");
    120 
    121  var cdataNode = cdata("after");
    122  outer.insertBefore(cdataNode, midElement);
    123 
    124  is(cdataNode.wholeText, "before-after",
    125     "wrong wholeText for cdataNode after cdataNode insertion");
    126  is(beforeMiddle.wholeText, "before-after",
    127     "wrong wholeText for beforeMiddle after cdataNode insertion");
    128  is(middle.wholeText, "middle",
    129     "wrong wholeText for middle after cdataNode insertion");
    130 
    131  var cdataNode2 = cdata("before-");
    132  outer.insertBefore(cdataNode2, middle);
    133 
    134  is(cdataNode.wholeText, "before-after",
    135     "wrong wholeText for cdataNode after cdataNode2 insertion");
    136  is(beforeMiddle.wholeText, "before-after",
    137     "wrong wholeText for beforeMiddle after cdataNode2 insertion");
    138  is(cdataNode2.wholeText, "before-middle",
    139     "wrong wholeText for middle after cdataNode2 insertion");
    140  is(middle.wholeText, "before-middle",
    141     "wrong wholeText for middle after cdataNode2 insertion");
    142 }
    143 
    144 function lastTests()
    145 {
    146  var outer = element();
    147  var first = element();
    148  var second = text("second");
    149  first.appendChild(text("element contents"));
    150  outer.appendChild(first);
    151  outer.appendChild(second);
    152 
    153  is(second.wholeText, "second", "wrong wholeText for second");
    154 
    155  var insertedText = text("before-");
    156  outer.insertBefore(insertedText, second);
    157 
    158  is(second.wholeText, "before-second",
    159     "wrong wholeText for second after insertedText insertion");
    160  is(insertedText.wholeText, "before-second",
    161     "wrong wholeText for insertedText after insertedText insertion");
    162 
    163  var cdataNode = cdata("zero-")
    164  outer.insertBefore(cdataNode, insertedText);
    165 
    166  is(cdataNode.wholeText, "zero-before-second",
    167     "wrong wholeText for cdataNode after cdataNode insertion");
    168  is(second.wholeText, "zero-before-second",
    169     "wrong wholeText for second after cdataNode insertion");
    170  is(insertedText.wholeText, "zero-before-second",
    171     "wrong wholeText for insertedText after cdataNode insertion");
    172 
    173  outer.insertBefore(element(), second);
    174 
    175  is(second.wholeText, "second",
    176     "wrong wholeText for second after element insertion");
    177  is(cdataNode.wholeText, "zero-before-",
    178     "wrong wholeText for cdataNode after element insertion");
    179  is(insertedText.wholeText, "zero-before-",
    180     "wrong wholeText for insertedText after element insertion");
    181 
    182  var cdataNode2 = cdata("interrupted-");
    183  outer.insertBefore(cdataNode2, insertedText);
    184 
    185  is(second.wholeText, "second",
    186     "wrong wholeText for second after cdataNode2 insertion");
    187  is(cdataNode2.wholeText, "zero-interrupted-before-",
    188     "wrong wholeText for cdataNode2 after cdataNode2 insertion");
    189  is(insertedText.wholeText, "zero-interrupted-before-",
    190     "wrong wholeText for insertedText after cdataNode2 insertion");
    191 }
    192 
    193 function noParentTests()
    194 {
    195  var textNode = text("foobar");
    196  is(textNode.wholeText, textNode.data,
    197     "orphaned textNode should have wholeText == data");
    198  is(textNode.wholeText, "foobar",
    199     "orphaned textNode should have wholeText == 'foobar'");
    200 
    201  var cdataSection = cdata("baz");
    202  is(cdataSection.wholeText, cdataSection.data,
    203     "orphaned cdatasection should have wholeText == data");
    204  is(cdataSection.wholeText, "baz",
    205     "orphaned cdatasection should have wholeText == data");
    206 }
    207 
    208 function tests()
    209 {
    210  try
    211  {
    212    firstTests();
    213    middleTests();
    214    lastTests();
    215    noParentTests();
    216  }
    217  catch (e)
    218  {
    219    ok(false, "error thrown: " + e);
    220  }
    221  finally
    222  {
    223    SimpleTest.finish();
    224  }
    225 }
    226 
    227 window.addEventListener("load", tests);
    228 </script>
    229 </pre>
    230 </body>
    231 </html>