dom/events/test/test_error_events.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

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

mercurial