content/base/test/test_bug415860.html

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 <!DOCTYPE HTML>
     2 <html>
     3 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=415860
     5 -->
     6 <head>
     7   <title>Test for Bug 415860</title>
     8   <script type="text/javascript" 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=415860">Mozilla Bug 415860</a>
    13 <p id="display"></p>
    14 <div id="content" style="display: none">
    16 </div>
    17 <div id="testdata"> </div>
    18 <pre id="test">
    19 <script class="testbody" type="text/javascript">
    21 /** Test for Bug 415860 **/
    23 function tests() {
    24   // #text node
    25   n = document.getElementById('testdata').firstChild;
    26   s = getSelection();
    28   // Initial text..
    29   n.textContent = "Hello!";
    31   // select the second last character
    32   r = document.createRange();
    33   r.setStart(n, 4);
    34   r.setEnd(n, 5);
    35   s.addRange(r);
    37   ok(s == "o", "Should have selected 'o'");
    38   ok(r.toString() == "o", "Range should be 'o'");
    39   ok(r.collapsed == false, "Range shouldn't be collapsed");
    40   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
    42   // Update the text
    43   n.textContent = "Hello!";
    45   ok(s == "", "Should have selected ''");
    46   ok(r.toString() == "", "Range should be ''");
    47   ok(r.collapsed == true, "Range should be collapsed");
    48   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
    50   // select the last character
    51   r = document.createRange();
    52   r.setStart(n, 5);
    53   r.setEnd(n, 6);
    54   s.addRange(r);
    56   ok(s == "!", "Should have selected '!'");
    57   ok(r.toString() == "!", "Range should be '!'");
    58   ok(r.collapsed == false, "Range shouldn't be collapsed");
    59   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
    61   // Update the text
    62   n.textContent = "Hello!";
    63   ok(s == "", "Should have selected ''");
    64   ok(r.toString() == "", "Range should be ''");
    65   ok(r.collapsed == true, "Range should be collapsed");
    66   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
    68   r = document.createRange();
    69   r.setStart(n, 5);
    70   r.setEnd(n, 6);
    71   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
    72   ok(r.toString() == "!", "Range should be '!'");
    73   ok(r.collapsed == false, "Range shouldn't be collapsed");
    75   r.setStart(n, 0);
    76   r.setEnd(n, 6);
    77   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
    78   ok(r.toString() == "Hello!", "Range should be 'Hello!'");
    79   ok(r.collapsed == false, "Range shouldn't be collapsed");
    81   n.deleteData(0, 1);
    82   ok(n.nodeValue == "ello!", "Node value should be 'ello!'");
    83   ok(r.toString() == "ello!", "Range should be 'ello!'");
    84   ok(r.collapsed == false, "Range shouldn't be collapsed");
    86   n.deleteData(0, 4);
    87   ok(n.nodeValue == "!", "Node value should be '!'");
    88   ok(r.toString() == "!", "Range should be '!'");
    89   ok(r.collapsed == false, "Range shouldn't be collapsed");
    91   n.textContent = "Hello!";
    92   r.setStart(n, 0);
    93   r.setEnd(n, 6);
    94   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
    95   ok(r.toString() == "Hello!", "Range should be 'Hello!'");
    96   ok(r.collapsed == false, "Range shouldn't be collapsed");
    98   n.replaceData(0, 6, "hELLO?");
    99   ok(n.nodeValue == "hELLO?", "Node value should be 'hELLO?'");
   100   ok(r.toString() == "", "Range should be ''");
   101   ok(r.collapsed == true, "Range should be collapsed");
   103   n.textContent = "Hello!";
   104   r.setStart(n, 1);
   105   r.setEnd(n, 3);
   106   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   107   ok(r.toString() == "el", "Range should be 'el'");
   108   ok(r.collapsed == false, "Range shouldn't be collapsed");
   110   n.replaceData(2, 6, "END");
   111   ok(n.nodeValue == "HeEND", "Node value should be 'HeEND!'");
   112   ok(r.toString() == "e", "Range should be 'e'");
   113   ok(r.collapsed == false, "Range shouldn't be collapsed");
   115   n.textContent = "Hello!";
   116   r.setStart(n, 1);
   117   r.setEnd(n, 5);
   118   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   119   ok(r.toString() == "ello", "Range should be 'ello'");
   120   ok(r.collapsed == false, "Range shouldn't be collapsed");
   122   n.replaceData(2, 1, "MID");
   123   ok(n.nodeValue == "HeMIDlo!", "Node value should be 'HeMIDlo!'");
   124   ok(r.toString() == "eMIDlo", "Range should be 'eMIDlo'");
   125   ok(r.collapsed == false, "Range shouldn't be collapsed");
   127   n.textContent = "Hello!";
   128   r.setStart(n, 0);
   129   r.setEnd(n, 6);
   130   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   131   ok(r.toString() == "Hello!", "Range should be 'Hello!'");
   132   ok(r.collapsed == false, "Range shouldn't be collapsed");
   134   n.textContent = "hELLO?...";
   135   ok(n.nodeValue == "hELLO?...", "Node value should be 'hELLO?...'");
   136   ok(r.toString() == "", "Range should be ''");
   137   ok(r.collapsed == true, "Range should be collapsed");
   139   n.textContent = "Hello!";
   140   r.setStart(n, 1);
   141   r.setEnd(n, 6);
   142   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   143   ok(r.toString() == "ello!", "Range should be 'ello!'");
   144   ok(r.collapsed == false, "Range shouldn't be collapsed");
   146   n.textContent = "Hello!";
   147   r.setStart(n, 0);
   148   r.setEnd(n, 5);
   149   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   150   ok(r.toString() == "Hello", "Range should be 'Hello'");
   151   ok(r.collapsed == false, "Range shouldn't be collapsed");
   153   n.textContent = "hELLO?...";
   154   ok(n.nodeValue == "hELLO?...", "Node value should be 'hELLO?...'");
   155   ok(r.toString() == "", "Range should be ''");
   156   ok(r.collapsed == true, "Range should be collapsed");
   158   n.textContent = "Hello!";
   159   r.setStart(n, 0);
   160   r.setEnd(n, 5);
   161   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   162   ok(r.toString() == "Hello", "Range should be 'Hello'");
   163   ok(r.collapsed == false, "Range shouldn't be collapsed");
   165   n.textContent = "...";
   166   ok(n.nodeValue == "...", "Node value should be '...'");
   167   ok(r.toString() == "", "Range should be ''");
   168   ok(r.collapsed == true, "Range should be collapsed");
   170   n.textContent = "Hello!";
   171   r.setStart(n, 1);
   172   r.setEnd(n, 5);
   173   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   174   ok(r.toString() == "ello", "Range should be 'ello'");
   175   ok(r.collapsed == false, "Range shouldn't be collapsed");
   177   n.textContent = "...";
   178   ok(n.nodeValue == "...", "Node value should be '...'");
   179   ok(r.toString() == "", "Range should be ''");
   180   ok(r.collapsed == true, "Range should be collapsed");
   182   n.textContent = "$";
   183   r.setStart(n, 0);
   184   r.setEnd(n, 1);
   185   ok(n.nodeValue == "$", "Node value should be $'");
   186   ok(r.toString() == "$", "Range should be '$'");
   187   ok(r.collapsed == false, "Range shouldn't be collapsed");
   189   n.textContent = "?";
   190   ok(n.nodeValue == "?", "Node value should be '?'");
   191   ok(r.toString() == "", "Range should be ''");
   192   ok(r.collapsed == true, "Range should be collapsed");
   194   n.textContent = "Hello!";
   195   r.setStart(n, 3);
   196   r.setEnd(n, 6);
   197   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   198   ok(r.toString() == "lo!", "Range should be 'lo!'");
   199   ok(r.collapsed == false, "Range shouldn't be collapsed");
   201   n.replaceData(1, 4, "MID");
   202   ok(n.nodeValue == "HMID!", "Node value should be 'HMID!'");
   203   ok(r.toString() == "MID!", "Range should be 'MID!'");
   204   ok(r.collapsed == false, "Range shouldn't be collapsed");
   206   n.textContent = "Hello!";
   207   r.setStart(n, 3);
   208   r.setEnd(n, 6);
   209   ok(n.nodeValue == "Hello!", "Node value should be 'Hello!'");
   210   ok(r.toString() == "lo!", "Range should be 'lo!'");
   211   ok(r.collapsed == false, "Range shouldn't be collapsed");
   213   n.replaceData(1, 2, "MID");
   214   ok(n.nodeValue == "HMIDlo!", "Node value should be 'HMIDlo!'");
   215   ok(r.toString() == "MIDlo!", "Range should be 'MIDlo!'");
   216   ok(r.collapsed == false, "Range shouldn't be collapsed");
   218   n.textContent = "Hello!";
   219   r = document.createRange();
   220   r.setStart(n, 6);
   221   r.setEnd(n, 6);
   222   ok(n.nodeValue == "Hello!", " Node value should be 'Hello!'");
   223   ok(r.toString() == "", " Range should be ''");
   224   ok(r.startOffset == 6, "Start offset should be 6");
   225   ok(r.endOffset == 6, "End offset should be 6");
   227   n.textContent = "Hello!";
   228   ok(n.nodeValue == "Hello!", " Node value should be 'Hello!'");
   229   ok(r.toString() == "", " Range should be ''");
   230   ok(r.startOffset == 0, "Start offset should be 0");
   231   ok(r.endOffset == 0, "End offset should be 0");
   232 }
   234 tests();
   236 </script>
   237 </pre>
   238 </body>
   239 </html>

mercurial