content/base/test/test_bug372964.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=372964
     5 -->
     6 <head>
     7   <title>Test for Bug 372964</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=372964">Mozilla Bug 372964</a>
    13 <p id="display"></p>
    14 <div id="content" style="display: none">
    16 </div>
    17 <pre id="test">
    18 <script class="testbody" type="text/javascript">
    20 /** Test for Bug 372964 **/
    22 var expectedEventType = "";
    23 var shouldBeTrusted = false;
    24 var eventHandlerCallCount = 0;
    26 function eventHandler(evt) {
    27   ++eventHandlerCallCount;
    28   is(evt.type, expectedEventType, "Wrong event type");
    29   is(evt.isTrusted, shouldBeTrusted, "Wrong .isTrusted");
    30 }
    32 function test(trusted, type, removeAddedListener, removeSetListener, allowUntrusted) {
    33   if (trusted) {
    34     var x1 = SpecialPowers.wrap(new XMLHttpRequest());
    35   } else {
    36     x1 = new XMLHttpRequest();
    37   }
    39   var handlerCount = 0;
    40   if (trusted || allowUntrusted || allowUntrusted == undefined) {
    41     ++handlerCount;
    42   }
    44   if (allowUntrusted == undefined) {
    45     // Test .addEventListener with 3 parameters.
    46     x1.addEventListener(type, eventHandler, false);
    47   } else {
    48     // Test .addEventListener with 4 parameters.
    49     x1.addEventListener(type, eventHandler, false, allowUntrusted);
    50   }
    52   if (("on" + type) in x1) {
    53     ++handlerCount;
    54     x1["on" + type] = eventHandler;
    55   }
    57   if (removeAddedListener) {
    58     x1.removeEventListener(type, eventHandler, false);
    59     if (trusted || allowUntrusted || allowUntrusted == undefined) {
    60       --handlerCount;
    61     }
    62   }
    64   if (removeSetListener) {
    65     if (("on" + type) in x1) {
    66       --handlerCount;
    67       x1["on" + type] = null;
    68     }
    69   }
    71   var e1 = document.createEvent("Events");
    72   e1.initEvent(type, true, true);
    73   expectedEventType = type;
    74   shouldBeTrusted = trusted;
    75   var ecc = eventHandlerCallCount;
    76   x1.dispatchEvent(e1);
    77   is(eventHandlerCallCount, ecc + handlerCount,
    78      "Wrong number event handler calls. (1)");
    80   e1 = document.createEvent("Events");
    81   e1.initEvent(type, true, true);
    82   expectedEventType = type;
    83   // Set trusted since open() may cause events to be sent.
    84   shouldBeTrusted = true;
    85   x1.open("GET", window.location);
    86   x1.abort(); // This should not remove event listeners.
    87   ecc = eventHandlerCallCount;
    88   shouldBeTrusted = trusted;
    89   x1.dispatchEvent(e1);
    90   is(eventHandlerCallCount, ecc + handlerCount,
    91      "Wrong number event handler calls. (2)");
    93   e1 = document.createEvent("Events");
    94   e1.initEvent(type, true, true);
    95   expectedEventType = type;
    96   // Set trusted since open()/send() may cause events to be sent.
    97   shouldBeTrusted = true;
    98   x1.open("GET", window.location);
    99   x1.send("");
   100   x1.abort(); // This should not remove event listeners!
   101   ecc = eventHandlerCallCount;
   102   shouldBeTrusted = trusted;
   103   x1.dispatchEvent(e1);
   104   is(eventHandlerCallCount, ecc + handlerCount,
   105      "Wrong number event handler calls. (3)");
   106 }
   108 var events =
   109   ["load", "error", "progress", "readystatechange", "foo"];
   111 do {
   112   var e = events.shift();
   113   test(false, e, false, false);
   114   test(false, e, false, true);
   115   test(false, e, true,  false);
   116   test(false, e, true,  true);
   117   test(true,  e, false, false);
   118   test(true,  e, false, true);
   119   test(true,  e, true,  false);
   120   test(true,  e, true,  true);
   122   test(false, e, false, false, false);
   123   test(false, e, false, false, true);
   124   test(false, e, false, true,  false);
   125   test(false, e, false, true,  true);
   126   test(false, e, true,  false, false);
   127   test(false, e, true,  false, true);
   128   test(false, e, true,  true,  false);
   129   test(false, e, true,  true,  true);
   130   test(true,  e, false, false, false);
   131   test(true,  e, false, false, true);
   132   test(true,  e, false, true,  false);
   133   test(true,  e, false, true,  true);
   134   test(true,  e, true,  false, false);
   135   test(true,  e, true,  false, true);
   136   test(true,  e, true,  true,  false);
   137   test(true,  e, true,  true,  true);
   138 } while(events.length);
   140 </script>
   141 </pre>
   142 </body>
   143 </html>

mercurial