dom/events/test/test_error_events.html

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 <!DOCTYPE html>
     2 <meta charset=utf-8>
     3 <title>Test for error events being ErrorEvent</title>
     4 <script src="/resources/testharness.js"></script>
     5 <script src="/resources/testharnessreport.js"></script>
     6 <div id="log"></div>
     7 <script>
     8   var errorEvent;
     9   var file;
    10   var line;
    11   var msg;
    12   var column;
    13   var error;
    14   window.addEventListener("error", function errorListener(e) {
    15     window.removeEventListener("error", errorListener);
    16     errorEvent = e;
    17   });
    18   var oldOnerror = window.onerror;
    19   window.onerror = function(message, filename, lineno, columnno, errorObject) {
    20     window.onerror = oldOnerror;
    21     file = filename;
    22     line = lineno;
    23     msg = message;
    24     column = columnno;
    25     error = errorObject;
    26   }
    27   var thrown = new Error("hello");
    28   throw thrown;
    29 </script>
    30 <script>
    31   generate_tests(assert_equals, [
    32     [ "Event filename", errorEvent.filename, location.href ],
    33     [ "Callback filename", file, location.href ],
    34     [ "Event line number", errorEvent.lineno, 27 ],
    35     [ "Callback line number", line, 27 ],
    36     [ "Event message", errorEvent.message, "Error: hello" ],
    37     [ "Callback message", msg, "Error: hello" ],
    38     [ "Event error-object", errorEvent.error, thrown],
    39     [ "Callback error-object", error, thrown ],
    40     [ "Event column", errorEvent.colno, 6 ], // Sadly not correct right now
    41     [ "Callback column", column, 6 ]
    42   ]);
    43 </script>
    44 <script>
    45   var workerLocation = location.protocol + "//" + location.host +
    46     location.pathname.replace("test_error_events.html", "error_event_worker.js");
    47   var eventFileTest = async_test("Worker event filename");
    48   var eventLineTest = async_test("Worker event line number");
    49   var eventMessageTest = async_test("Worker event message");
    50   var callbackFileTest = async_test("Worker callback filename");
    51   var callbackLineTest = async_test("Worker callback line number");
    52   var callbackMessageTest = async_test("Worker callback message");
    53   var w = new Worker("error_event_worker.js");
    54   w.addEventListener("message", function(msg) {
    55     if (msg.data.type == "event") {
    56       eventFileTest.step(function() { assert_equals(msg.data.filename, workerLocation); });
    57       eventFileTest.done();
    58       eventLineTest.step(function() { assert_equals(msg.data.lineno, 15); });
    59       eventLineTest.done();
    60       eventMessageTest.step(function() { assert_equals(msg.data.message, "Error: workerhello"); });
    61       eventMessageTest.done();
    62     } else {
    63       callbackFileTest.step(function() { assert_equals(msg.data.filename, workerLocation); });
    64       callbackFileTest.done();
    65       callbackLineTest.step(function() { assert_equals(msg.data.lineno, 15); });
    66       callbackLineTest.done();
    67       callbackMessageTest.step(function() { assert_equals(msg.data.message, "Error: workerhello"); });
    68       callbackMessageTest.done();
    69     }
    70   });
    71 </script>

mercurial