dom/events/test/test_error_events.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/events/test/test_error_events.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,71 @@
     1.4 +<!DOCTYPE html>
     1.5 +<meta charset=utf-8>
     1.6 +<title>Test for error events being ErrorEvent</title>
     1.7 +<script src="/resources/testharness.js"></script>
     1.8 +<script src="/resources/testharnessreport.js"></script>
     1.9 +<div id="log"></div>
    1.10 +<script>
    1.11 +  var errorEvent;
    1.12 +  var file;
    1.13 +  var line;
    1.14 +  var msg;
    1.15 +  var column;
    1.16 +  var error;
    1.17 +  window.addEventListener("error", function errorListener(e) {
    1.18 +    window.removeEventListener("error", errorListener);
    1.19 +    errorEvent = e;
    1.20 +  });
    1.21 +  var oldOnerror = window.onerror;
    1.22 +  window.onerror = function(message, filename, lineno, columnno, errorObject) {
    1.23 +    window.onerror = oldOnerror;
    1.24 +    file = filename;
    1.25 +    line = lineno;
    1.26 +    msg = message;
    1.27 +    column = columnno;
    1.28 +    error = errorObject;
    1.29 +  }
    1.30 +  var thrown = new Error("hello");
    1.31 +  throw thrown;
    1.32 +</script>
    1.33 +<script>
    1.34 +  generate_tests(assert_equals, [
    1.35 +    [ "Event filename", errorEvent.filename, location.href ],
    1.36 +    [ "Callback filename", file, location.href ],
    1.37 +    [ "Event line number", errorEvent.lineno, 27 ],
    1.38 +    [ "Callback line number", line, 27 ],
    1.39 +    [ "Event message", errorEvent.message, "Error: hello" ],
    1.40 +    [ "Callback message", msg, "Error: hello" ],
    1.41 +    [ "Event error-object", errorEvent.error, thrown],
    1.42 +    [ "Callback error-object", error, thrown ],
    1.43 +    [ "Event column", errorEvent.colno, 6 ], // Sadly not correct right now
    1.44 +    [ "Callback column", column, 6 ]
    1.45 +  ]);
    1.46 +</script>
    1.47 +<script>
    1.48 +  var workerLocation = location.protocol + "//" + location.host +
    1.49 +    location.pathname.replace("test_error_events.html", "error_event_worker.js");
    1.50 +  var eventFileTest = async_test("Worker event filename");
    1.51 +  var eventLineTest = async_test("Worker event line number");
    1.52 +  var eventMessageTest = async_test("Worker event message");
    1.53 +  var callbackFileTest = async_test("Worker callback filename");
    1.54 +  var callbackLineTest = async_test("Worker callback line number");
    1.55 +  var callbackMessageTest = async_test("Worker callback message");
    1.56 +  var w = new Worker("error_event_worker.js");
    1.57 +  w.addEventListener("message", function(msg) {
    1.58 +    if (msg.data.type == "event") {
    1.59 +      eventFileTest.step(function() { assert_equals(msg.data.filename, workerLocation); });
    1.60 +      eventFileTest.done();
    1.61 +      eventLineTest.step(function() { assert_equals(msg.data.lineno, 15); });
    1.62 +      eventLineTest.done();
    1.63 +      eventMessageTest.step(function() { assert_equals(msg.data.message, "Error: workerhello"); });
    1.64 +      eventMessageTest.done();
    1.65 +    } else {
    1.66 +      callbackFileTest.step(function() { assert_equals(msg.data.filename, workerLocation); });
    1.67 +      callbackFileTest.done();
    1.68 +      callbackLineTest.step(function() { assert_equals(msg.data.lineno, 15); });
    1.69 +      callbackLineTest.done();
    1.70 +      callbackMessageTest.step(function() { assert_equals(msg.data.message, "Error: workerhello"); });
    1.71 +      callbackMessageTest.done();
    1.72 +    }
    1.73 +  });
    1.74 +</script>

mercurial