summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/workers/Worker_ErrorEvent_error.htm
blob: bb7cea12e04082f130ff9e8404d0e52b149f4ea9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!doctype html>
<meta charset=utf-8>
<title></title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
// The worker events races with the window's load event; if the worker events
// arrive first, the harness will detect the error event and fail the test.
setup({ allow_uncaught_exception: true });

var t1 = async_test("Error handler outside the worker should not see the error value");
var t2 = async_test("Error handlers inside a worker should see the error value");

test(function() {
  var worker = new Worker("support/ErrorEvent-error.js");
  worker.onerror = t1.step_func_done(function(e) {
    assert_true(/hello/.test(e.message));
    assert_equals(e.error, null);
  });

  var messages = 0;
  worker.onmessage = t2.step_func(function(e) {
    ++messages;
    var data = e.data;
    assert_in_array(data.source, ["onerror", "event listener"]);
    assert_equals(data.value, "hello");
    if (messages == 2) {
      t2.done();
    }
  });
});
</script>