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>