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>