diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/workers/constructors/Worker | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/workers/constructors/Worker')
18 files changed, 354 insertions, 0 deletions
diff --git a/testing/web-platform/tests/workers/constructors/Worker/1 b/testing/web-platform/tests/workers/constructors/Worker/1 new file mode 100644 index 000000000..ea0b7c8f4 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/1 @@ -0,0 +1 @@ +postMessage('1'); diff --git a/testing/web-platform/tests/workers/constructors/Worker/AbstractWorker.onerror.html b/testing/web-platform/tests/workers/constructors/Worker/AbstractWorker.onerror.html new file mode 100644 index 000000000..c40424d65 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/AbstractWorker.onerror.html @@ -0,0 +1,48 @@ +<!-- +for (;) // should cause onerror to be invoked, but onerror is null, so + // the error is "not handled". should fire an ErrorEvent on the + // worker. + break; +postMessage(1); // shouldn't do anything since the script doesn't compile +/* +--> +<!doctype html> +<title>AbstractWorker.onerror</title> +<link rel=help href="https://html.spec.whatwg.org/multipage/#runtime-script-errors-2"> +<link rel=help href="https://html.spec.whatwg.org/multipage/#report-the-error"> +<link rel=help href="https://html.spec.whatwg.org/multipage/#the-event-handler-processing-algorithm"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +setup({allow_uncaught_exception:true}); +async_test(function() { + var worker = new Worker('#'); + var error; + worker.onerror = this.step_func(function(a, b, c) { + error = a; + assert_equals('' + a, '[object ErrorEvent]'); + assert_true("message" in a, 'ErrorEvent.message'); + assert_equals(typeof a.message, "string", 'ErrorEvent.message'); + assert_equals(a.filename, document.URL + '#', 'ErrorEvent.filename'); + assert_true("lineno" in a, 'ErrorEvent.lineno'); + assert_equals(typeof a.lineno, "number", 'ErrorEvent.lineno'); + assert_equals(b, undefined, 'unexpected second argument to onerror'); + assert_equals(c, undefined, 'unexpected third argument to onerror'); + }); + worker.onmessage = this.step_func(function(e) { + assert_unreached('onmessage was invoked but worker script shouldn\'t have compiled'); + }); + window.onerror = this.step_func_done(function(a, b, c, d, e, f) { + assert_equals(a, error.message, 'message'); + assert_equals(b, error.filename, 'filename'); + assert_equals(c, error.lineno, 'lineno'); + assert_equals(d, error.colno, 'colno'); + assert_equals(e, error.error, 'error'); + assert_equals(f, undefined, 'unexpected sixth argument to onerror'); + }); +}); +</script> +<!-- +*/ +//--> diff --git a/testing/web-platform/tests/workers/constructors/Worker/Blob-url.html b/testing/web-platform/tests/workers/constructors/Worker/Blob-url.html new file mode 100644 index 000000000..168fc91ae --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/Blob-url.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Web Workers: Worker - Blob url</title> +<link rel="author" title="Intel" href="http://www.intel.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> + + async_test(function(t) { + var blob = new Blob(["onmessage = function(event) { postMessage(event.data); }"], {type: "text/plain"}); + var worker = new Worker(window.URL.createObjectURL(blob)); + var data = "Blob URL"; + worker.postMessage(data); + worker.onmessage = t.step_func(function(event) { + assert_equals(event.data, data, "event.data"); + t.done(); + }); + }, "Worker supports Blob url"); + +</script> diff --git a/testing/web-platform/tests/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js b/testing/web-platform/tests/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js new file mode 100644 index 000000000..2ef466ccd --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js @@ -0,0 +1,18 @@ +importScripts("/resources/testharness.js"); + +var expected = [ + 'postMessage', 'onmessage', /* DedicatedWorkerGlobalScope */ + 'self', 'location', 'close', 'onerror', 'onoffline', 'ononline', /* WorkerGlobalScope */ + 'addEventListener', 'removeEventListener', 'dispatchEvent', /* EventListener */ + 'importScripts', 'navigator', /* WorkerUtils */ + 'setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', /* WindowTimers */ + 'btoa', 'atob' /* WindowBase64 */ +]; +for (var i = 0; i < expected.length; ++i) { + var property = expected[i]; + test(function() { + assert_true(property in self); + }, "existence of " + property); +} + +done(); diff --git a/testing/web-platform/tests/workers/constructors/Worker/ctor-1.html b/testing/web-platform/tests/workers/constructors/Worker/ctor-1.html new file mode 100644 index 000000000..bd865261f --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/ctor-1.html @@ -0,0 +1,23 @@ +<!-- +postMessage('FAIL'); +/* +--> +<!doctype html> +<title>1 as argument</title> +<link rel=help href="http://www.whatwg.org/html/#dom-worker"> +<link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#es-DOMString"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var worker = new Worker(1); + worker.addEventListener('message', t.step_func_done(function(e) { + assert_equals(e.data, '1') + }), false); +}); +</script> +<!-- +*/ +//--> diff --git a/testing/web-platform/tests/workers/constructors/Worker/ctor-null.html b/testing/web-platform/tests/workers/constructors/Worker/ctor-null.html new file mode 100644 index 000000000..94ab71aef --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/ctor-null.html @@ -0,0 +1,23 @@ +<!-- +postMessage('FAIL'); +/* +--> +<!doctype html> +<title>null as argument</title> +<link rel=help href="http://www.whatwg.org/html/#dom-worker"> +<link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#es-DOMString"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var worker = new Worker(null); + worker.addEventListener('message', t.step_func_done(function(e) { + assert_equals(e.data, 'null') + }), false); +}); +</script> +<!-- +*/ +//--> diff --git a/testing/web-platform/tests/workers/constructors/Worker/ctor-undefined.html b/testing/web-platform/tests/workers/constructors/Worker/ctor-undefined.html new file mode 100644 index 000000000..2d9eb6e65 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/ctor-undefined.html @@ -0,0 +1,23 @@ +<!-- +postMessage('FAIL'); +/* +--> +<!doctype html> +<title>undefined as argument</title> +<link rel=help href="http://www.whatwg.org/html/#dom-worker"> +<link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#es-DOMString"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var worker = new Worker(undefined); + worker.addEventListener('message', t.step_func_done(function(e) { + assert_equals(e.data, 'undefined') + }), false); +}); +</script> +<!-- +*/ +//--> diff --git a/testing/web-platform/tests/workers/constructors/Worker/expected-self-properties.worker.js b/testing/web-platform/tests/workers/constructors/Worker/expected-self-properties.worker.js new file mode 100644 index 000000000..0ce41b59e --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/expected-self-properties.worker.js @@ -0,0 +1,11 @@ +importScripts("/resources/testharness.js"); + +var expected = ['XMLHttpRequest', 'WebSocket', 'EventSource', 'MessageChannel', 'Worker', 'SharedWorker']; +for (var i = 0; i < expected.length; ++i) { + var property = expected[i]; + test(function() { + assert_true(property in self); + }, "existence of " + property); +} + +done(); diff --git a/testing/web-platform/tests/workers/constructors/Worker/no-arguments-ctor.html b/testing/web-platform/tests/workers/constructors/Worker/no-arguments-ctor.html new file mode 100644 index 000000000..770c7cc93 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/no-arguments-ctor.html @@ -0,0 +1,13 @@ +<!doctype html> +<meta charset=utf-8> +<title>without arguments</title> +<link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#es-interface-call"> +<link rel=help href="http://www.whatwg.org/html/#dedicated-workers-and-the-worker-interface"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +test(function() { + assert_throws(new TypeError(), function() { new Worker(); }); +}); +</script> diff --git a/testing/web-platform/tests/workers/constructors/Worker/null b/testing/web-platform/tests/workers/constructors/Worker/null new file mode 100644 index 000000000..6d079b514 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/null @@ -0,0 +1 @@ +postMessage('null'); diff --git a/testing/web-platform/tests/workers/constructors/Worker/resolve-empty-string.html b/testing/web-platform/tests/workers/constructors/Worker/resolve-empty-string.html new file mode 100644 index 000000000..0426223e0 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/resolve-empty-string.html @@ -0,0 +1,22 @@ +<!-- +postMessage('ok'); +/* +--> +<!doctype html> +<meta charset=utf-8> +<title>resolve the empty string</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var worker = new Worker(''); + worker.addEventListener('message', t.step_func_done(function(e) { + assert_equals(e.data, 'ok'); + }), false); +}); +</script> +<!-- +*/ +//--> diff --git a/testing/web-platform/tests/workers/constructors/Worker/same-origin.html b/testing/web-platform/tests/workers/constructors/Worker/same-origin.html new file mode 100644 index 000000000..9b0148da3 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/same-origin.html @@ -0,0 +1,63 @@ +<!doctype html> +<meta charset=utf-8> +<title>same-origin checks; the script is in a script element</title> +<link rel=help href="http://www.whatwg.org/html/#dom-worker"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +// Needed to prevent a race condition if a worker throws an exception that may or may +// not propogate to the window before the tests finish +setup({allow_uncaught_exception: true}); + +function testSharedWorkerHelper(t, script) { + try { + var worker = new SharedWorker(script, ''); + worker.onerror = t.step_func_done(function(e) { + assert_true(e instanceof ErrorEvent); + }); + } catch (e) { + t.step_func_done(function(e) { assert_true(true); }); + } +} + +test(function() { + assert_throws("SecurityError", function() { new Worker('unsupported:'); }); +}, "unsupported_scheme"); + +async_test(function() { + var worker = new Worker('data:,postMessage(1);'); + worker.onmessage = this.step_func_done(function(e) { + assert_equals(e.data, 1); + }); +}, "data_url"); + +async_test(function(t) { + testSharedWorkerHelper(t, 'about:blank'); +}, "about_blank"); + +async_test(function(t) { + testSharedWorkerHelper(t, 'http://www.example.invalid/'); +}, "example_invalid"); + +async_test(function(t) { + testSharedWorkerHelper(t, location.protocol+'//'+location.hostname+':81/'); +}, "port_81"); + +async_test(function(t) { + testSharedWorkerHelper(t, 'https://'+location.hostname+':80/'); +}, "https_port_80"); + +async_test(function(t) { + testSharedWorkerHelper(t, 'https://'+location.hostname+':8000/'); +}, "https_port_8000"); + +async_test(function(t) { + testSharedWorkerHelper(t, 'http://'+location.hostname+':8012/'); +}, "http_post_8012"); + +async_test(function(t) { + testSharedWorkerHelper(t,'javascript:""'); +}, "javascript_url"); + +</script> diff --git a/testing/web-platform/tests/workers/constructors/Worker/sample_worker/worker.js b/testing/web-platform/tests/workers/constructors/Worker/sample_worker/worker.js new file mode 100644 index 000000000..19bbea58e --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/sample_worker/worker.js @@ -0,0 +1 @@ +onmessage = function(event) { postMessage(event.data); } diff --git a/testing/web-platform/tests/workers/constructors/Worker/terminate.html b/testing/web-platform/tests/workers/constructors/Worker/terminate.html new file mode 100644 index 000000000..52f9707df --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/terminate.html @@ -0,0 +1,44 @@ +<!-- +(function f() { + postMessage(1); + setTimeout(f, 0); +})(); +/* +--> +<!doctype html> +<title>terminate()</title> +<link rel=help href="http://www.whatwg.org/html/#dom-worker-terminate"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var worker = new Worker('#'); + var i = 0; + var expected; + + worker.onmessage = t.step_func(function() { + i++; + }); + + setTimeout(t.step_func(function() { + expected = i; + start_time = Date.now(); + //Hang the main thread for a bit to give the worker the chance to post some more messages + while(Date.now() - start_time < 500) { + //pass + } + worker.terminate(); + + setTimeout(t.step_func(function() { + assert_equals(i, expected); + t.done(); + }), 100); + + }), 100); +}); +</script> +<!-- +*/ +//--> diff --git a/testing/web-platform/tests/workers/constructors/Worker/undefined b/testing/web-platform/tests/workers/constructors/Worker/undefined new file mode 100644 index 000000000..bc7f482e9 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/undefined @@ -0,0 +1 @@ +postMessage('undefined'); diff --git a/testing/web-platform/tests/workers/constructors/Worker/unexpected-self-properties.worker.js b/testing/web-platform/tests/workers/constructors/Worker/unexpected-self-properties.worker.js new file mode 100644 index 000000000..aba850116 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/unexpected-self-properties.worker.js @@ -0,0 +1,11 @@ +importScripts("/resources/testharness.js"); + +var unexpected = ['open', 'print', 'stop', 'getComputedStyle', 'getSelection', 'releaseEvents', 'captureEvents', 'alert', 'confirm', 'prompt', 'addEventStream', 'removeEventStream', 'back', 'forward', 'attachEvent', 'detachEvent', 'navigate', 'DOMParser', 'XMLSerializer', 'XPathEvaluator', 'XSLTProcessor', 'opera', 'Image', 'Option', 'frames', 'Audio', 'SVGUnitTypes', 'SVGZoomAndPan', 'java', 'netscape', 'sun', 'Packages', 'ByteArray', 'closed', 'defaultStatus', 'document', 'event', 'frameElement', 'history', 'innerHeight', 'innerWidth', 'name', 'opener', 'outerHeight', 'outerWidth', 'pageXOffset', 'pageYOffset', 'parent', 'screen', 'screenLeft', 'screenTop', 'screenX', 'screenY', 'status', 'top', 'window', 'length']; // iterated window in opera and removed expected ones +for (var i = 0; i < unexpected.length; ++i) { + var property = unexpected[i]; + test(function() { + assert_false(property in self); + }, "existence of " + property); +} + +done(); diff --git a/testing/web-platform/tests/workers/constructors/Worker/unresolvable-url.html b/testing/web-platform/tests/workers/constructors/Worker/unresolvable-url.html new file mode 100644 index 000000000..8c04b0087 --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/unresolvable-url.html @@ -0,0 +1,12 @@ +<!doctype html> +<meta charset=utf-8> +<title>unresolvable url</title> +<link rel=help href="http://www.whatwg.org/html/#dom-worker"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +test(function() { + assert_throws("SyntaxError", function() { new Worker('http://invalid url/'); }); +}); +</script> diff --git a/testing/web-platform/tests/workers/constructors/Worker/use-base-url.html b/testing/web-platform/tests/workers/constructors/Worker/use-base-url.html new file mode 100644 index 000000000..94ce2a71f --- /dev/null +++ b/testing/web-platform/tests/workers/constructors/Worker/use-base-url.html @@ -0,0 +1,18 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Use the document base url when resolving worker URLs</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<base href="/workers/constructors/Worker/sample_worker/"> +<script> + async_test(function(t) { + var worker = new Worker('worker.js'); + var data = "foo"; + worker.postMessage(data); + worker.onmessage = t.step_func_done(function(event) { + assert_equals(event.data, data, "event.data does not match expected data"); + }); + worker.onerror = t.unreached_func("received error event"); + }, "Use the document base url when resolving worker URLs"); +</script> |