tor-browser

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

test_error_events.html (2757B)


      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  setup({allow_uncaught_exception:true});
      9  var errorEvent;
     10  var file;
     11  var line;
     12  var msg;
     13  var column;
     14  var error;
     15  window.addEventListener("error", function(e) {
     16    errorEvent = e;
     17  }, {once: true});
     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, 16 ],
     41    [ "Callback column", column, 16 ]
     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, 19); });
     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, 19); });
     66      callbackLineTest.done();
     67      callbackMessageTest.step(function() { assert_equals(msg.data.message, "Error: workerhello"); });
     68      callbackMessageTest.done();
     69    }
     70  });
     71 </script>