<!DOCTYPE HTML>
<html>
<head>
<title>Example with a shared worker</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<h1>Shared Web Worker Tests</h1>
<p>Demonstrates running <tt>testharness</tt> based tests inside a shared worker.
<p>The test harness should time out due to one of the tests in the worker timing out.
<p>This test assumes that the browser supports <a href="http://www.w3.org/TR/workers/#shared-workers-and-the-sharedworker-interface">shared web workers</a>.
<div id="log"></div>

<script>
test(
    function(t) {
        assert_true("SharedWorker" in self,
                    "Browser should support SharedWorkers");
    },
    "Browser supports SharedWorkers");

fetch_tests_from_worker(new SharedWorker("worker.js",
                                         "My shared worker"));
</script>
<script type="text/json" id="expected">
{
  "summarized_status": {
    "status_string": "TIMEOUT",
    "message": null
  },
  "summarized_tests": [
    {
      "status_string": "PASS",
      "name": "Browser supports SharedWorkers",
      "properties": {},
      "message": null
    },
    {
      "message": null,
      "name": "Worker async_test that completes successfully",
      "properties": {},
      "status_string": "PASS"
    },
    {
      "message": null,
      "name": "Worker test that completes successfully",
      "properties": {},
      "status_string": "PASS"
    },
    {
      "message": null,
      "name": "Worker test that doesn't run ('NOT RUN')",
      "properties": {},
      "status_string": "NOTRUN"
    },
    {
      "message": "assert_true: Failing test expected true got false",
      "name": "Worker test that fails ('FAIL')",
      "properties": {},
      "status_string": "FAIL"
    },
    {
      "message": "Test timed out",
      "name": "Worker test that times out ('TIMEOUT')",
      "properties": {},
      "status_string": "TIMEOUT"
    }
  ],
  "type": "complete"
}
</script>
</body>
