| <!DOCTYPE html> |
| <title>Test SharedWorker constructor functionality.</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| |
| test(() => { |
| assert_throws(new Error(), |
| function() { |
| new SharedWorker({toString:function(){throw new Error()}}, "name") }, |
| "toString exception not propagagted"); |
| }, "Test toString exception propagated correctly."); |
| |
| test(() => { |
| assert_throws(new RangeError(), |
| function() { |
| var foo = {toString:function(){new Worker(foo)}} |
| new SharedWorker(foo, name); }, |
| "Trying to create workers recursively did not result in an exception."); |
| }, "Test recursive worker creation results in exception."); |
| |
| test(() => { |
| assert_throws(new TypeError(), |
| function() { new SharedWorker(); }, |
| "Invoking SharedWorker constructor without arguments did not result in an exception."); |
| }, "Test SharedWorker creation without arguments results in exception."); |
| |
| test(() => { |
| try { |
| var worker = new SharedWorker("support/SharedWorker-common.js"); |
| } catch (ex) { |
| assert_unreached("Constructor failed when no name is passed: (" + ex + ")"); |
| } |
| }, "Test SharedWorker constructor without a name does not result in an exception."); |
| |
| test(() => { |
| try { |
| var worker = new SharedWorker("support/SharedWorker-common.js", null); |
| } catch (ex) { |
| assert_unreached("Constructor failed when null name is passed: (" + ex + ")"); |
| } |
| }, "Test SharedWorker constructor with null name does not result in an exception."); |
| |
| test(() => { |
| try { |
| var worker = new SharedWorker("support/SharedWorker-common.js", undefined); |
| } catch (ex) { |
| assert_unreached("Constructor failed when undefined name is passed: (" + ex + ")"); |
| } |
| }, "Test SharedWorker constructor with undefined name does not result in an exception."); |
| |
| test(() => { |
| try { |
| var worker = new SharedWorker("support/SharedWorker-common.js", "name"); |
| } catch (ex) { |
| assert_unreached("Invoking SharedWorker constructor resulted in an exception: (" + ex + ")"); |
| } |
| }, "Test SharedWorker constructor suceeds."); |
| |
| </script> |