Commit 1bfaa08c authored by Eriko Kurimoto's avatar Eriko Kurimoto Committed by Commit Bot

SharedWorker: Modernize WPT in workers/constructors/SharedWorker

This CL modernize WPT for cleanup.
This doesn't change the test behavior.

Change-Id: Ic9213ec517ac50601805a69d38d5a6c02db6310c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2016522
Commit-Queue: Eriko Kurimoto <elkurin@google.com>
Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735781}
parent 6b34bdc2
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage(['1', self.name]); e.ports[0].postMessage(['1', self.name]);
} };
\ No newline at end of file
...@@ -4,28 +4,27 @@ ...@@ -4,28 +4,27 @@
<link rel="author" title="Intel" href="http://www.intel.com"> <link rel="author" title="Intel" href="http://www.intel.com">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
setup({ single_test: true }); setup({ single_test: true });
var counter = 0 let counter = 0
function maybeDone() { const maybeDone = () => {
if(counter) { if(counter) {
done() done()
} }
counter++ counter++
} }
var worker = new SharedWorker('shared-worker.js', 'name'); const worker = new SharedWorker('shared-worker.js', 'name');
worker.port.postMessage("trigger a response") worker.port.postMessage("trigger a response")
worker.port.onmessage = (e) => { worker.port.onmessage = e => {
assert_equals(e.data, "ping") assert_equals(e.data, "ping")
maybeDone() maybeDone()
} }
// This used to throw "URLMismatchError", but the standard changed // This used to throw "URLMismatchError", but the standard changed
var worker2 = new SharedWorker('1', 'name'); const worker2 = new SharedWorker('1', 'name');
worker2.port.onmessage = (e) => { worker2.port.onmessage = e => {
assert_array_equals(e.data, ["1", "name"]) assert_array_equals(e.data, ["1", "name"])
maybeDone() maybeDone()
} }
......
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL connect event assert_true: e.data === '' expected true got false FAIL Test connect event for a shared worker assert_true: e.data === '' expected true got false
Harness: the test ran to completion. Harness: the test ran to completion.
...@@ -2,16 +2,13 @@ ...@@ -2,16 +2,13 @@
<title>connect event</title> <title>connect event</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker('connect-event.js'); const worker = new SharedWorker('connect-event.js');
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_true(e.data[0], "e.data === ''"); assert_true(e.data[0], "e.data === ''");
assert_true(e.data[1], "e instanceof MessageEvent"); assert_true(e.data[1], "e instanceof MessageEvent");
assert_true(e.data[2], "e.ports.length == 1"); assert_true(e.data[2], "e.ports.length == 1");
this.done(); });
}), false); }, 'Test connect event for a shared worker');
worker.port.start();
});
</script> </script>
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage([e.data === '', e instanceof MessageEvent, e.ports.length == 1]); e.ports[0].postMessage([e.data === '', e instanceof MessageEvent, e.ports.length == 1]);
}; };
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
<link rel=help href="http://www.whatwg.org/html/#dom-sharedworker"> <link rel=help href="http://www.whatwg.org/html/#dom-sharedworker">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
test(function() { test(() => {
var worker = new SharedWorker('empty.js', 'foo'); const worker = new SharedWorker('empty.js', 'foo');
}); });
</script> </script>
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
<link rel=help href="http://www.whatwg.org/html/#dom-sharedworker"> <link rel=help href="http://www.whatwg.org/html/#dom-sharedworker">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
test(function() { test(() => {
var worker = new SharedWorker('dummy-shared-worker.js'); const worker = new SharedWorker('dummy-shared-worker.js');
}); });
</script> </script>
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
<link rel=help href="http://www.whatwg.org/html/#dom-sharedworker"> <link rel=help href="http://www.whatwg.org/html/#dom-sharedworker">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
test(function() { test(() => {
var worker = new SharedWorker('empty.js', ''); const worker = new SharedWorker('empty.js', '');
}); });
</script> </script>
...@@ -2,14 +2,11 @@ ...@@ -2,14 +2,11 @@
<title>members of SharedWorkerGlobalScope</title> <title>members of SharedWorkerGlobalScope</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker('global-members.js'); const worker = new SharedWorker('global-members.js');
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data, ''); assert_equals(e.data, '');
this.done(); });
}), false); }, 'Test if global members exist in a shared worker');
worker.port.start();
});
</script> </script>
var expected = 'self location close onerror importScripts navigator addEventListener removeEventListener dispatchEvent name onconnect setTimeout clearTimeout setInterval clearInterval'.split(' '); const expected = 'self location close onerror importScripts navigator addEventListener removeEventListener dispatchEvent name onconnect setTimeout clearTimeout setInterval clearInterval'.split(' ');
var log = ''; let log = '';
for (var i = 0; i < expected.length; ++i) { for (let i = 0; i < expected.length; ++i) {
if (!(expected[i] in self)) if (!(expected[i] in self))
log += expected[i] + ' did not exist\n'; log += expected[i] + ' did not exist\n';
} }
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage(log); e.ports[0].postMessage(log);
}; };
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL expected interface objects/constructors assert_equals: expected "" but got "These were missing: Worker, SharedWorker" FAIL Test if interface objects exist in a shared worker assert_equals: expected "" but got "These were missing: Worker, SharedWorker"
Harness: the test ran to completion. Harness: the test ran to completion.
...@@ -2,21 +2,19 @@ ...@@ -2,21 +2,19 @@
<title>expected interface objects/constructors</title> <title>expected interface objects/constructors</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var expected = 'XMLHttpRequest WebSocket EventSource MessageChannel Worker SharedWorker ApplicationCache'.split(' '); const expected = 'XMLHttpRequest WebSocket EventSource MessageChannel Worker SharedWorker ApplicationCache'.split(' ');
var supported = []; const supported = [];
for (var i = 0; i < expected.length; ++i) { for (let i = 0; i < expected.length; ++i) {
if (expected[i] in window) if (expected[i] in window)
supported.push(expected[i]); supported.push(expected[i]);
} }
var worker = new SharedWorker('interface-objects.js'); const worker = new SharedWorker('interface-objects.js');
worker.port.start(); worker.port.start();
worker.port.postMessage(supported); worker.port.postMessage(supported);
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data, ''); assert_equals(e.data, '');
this.done(); });
}), false); }, 'Test if interface objects exist in a shared worker');
});
</script> </script>
var prt; let prt;
function handleCall(e) { const handleCall = e => {
var log = []; const log = [];
for (var i = 0; i < e.data.length; ++i) { for (let i = 0; i < e.data.length; ++i) {
if (!(e.data[i] in self)) if (!(e.data[i] in self))
log.push(e.data[i]); log.push(e.data[i]);
} }
prt.postMessage('These were missing: '+log.join(', ')); prt.postMessage('These were missing: '+log.join(', '));
} };
onconnect = function(e) { onconnect = e => {
prt = e.ports[0]; prt = e.ports[0];
prt.onmessage = handleCall; prt.onmessage = handleCall;
}; };
...@@ -2,14 +2,11 @@ ...@@ -2,14 +2,11 @@
<title>self.name</title> <title>self.name</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker('name.js', 'hello'); const worker = new SharedWorker('name.js', 'hello');
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data, 'hello'); assert_equals(e.data, 'hello');
this.done(); });
}), false); }, 'Test self.name in a shared worker');
worker.port.start();
});
</script> </script>
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage(self.name); e.ports[0].postMessage(self.name);
} };
<!--
/*
-->
<!doctype html> <!doctype html>
<title>no arguments</title> <title>no arguments</title>
<link rel=help href="http://www.whatwg.org/html/#sharedworker"> <link rel=help href="http://www.whatwg.org/html/#sharedworker">
<link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#es-interface-call"> <link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#es-interface-call">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
test(function() { test(() => {
assert_throws_js(TypeError, function() { assert_throws_js(TypeError, () => {
var worker = new SharedWorker(); const worker = new SharedWorker();
}); });
}); });
</script> </script>
<!--
*/
//-->
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage(['null', self.name]); e.ports[0].postMessage(['null', self.name]);
} };
\ No newline at end of file
<!--
onconnect = function(e) {
e.ports[0].postMessage(['FAIL', self.name]);
}
/*
-->
<!doctype html> <!doctype html>
<title>null as arguments</title> <title>null as arguments</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker(null, null); const worker = new SharedWorker(null, null);
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data[0], 'null', 'first arg'); assert_equals(e.data[0], 'null', 'first arg (script name)');
assert_equals(e.data[1], '', 'second arg'); assert_equals(e.data[1], '', 'second arg (worker name)');
this.done(); });
}), false); }, 'Test constructing a shared worker with null');
worker.port.start();
});
</script> </script>
<!--
*/
//-->
<!--
onconnect = function(e) {
e.ports[0].postMessage(['FAIL', self.name]);
}
/*
-->
<!doctype html> <!doctype html>
<title>1 as arguments</title> <title>1 as arguments</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker(1, 1); const worker = new SharedWorker(1, 1);
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data[0], '1', 'first arg'); assert_equals(e.data[0], '1', 'first arg (script name)');
assert_equals(e.data[1], '1', 'second arg'); assert_equals(e.data[1], '1', 'second arg (worker name)');
this.done(); });
}), false); }, 'Test constructing a shared worker with 1');
worker.port.start();
});
</script> </script>
<!--
*/
//-->
\ No newline at end of file
...@@ -2,13 +2,11 @@ ...@@ -2,13 +2,11 @@
<title>worker.port.onmessage</title> <title>worker.port.onmessage</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker('port-onmessage.js', ''); const worker = new SharedWorker('port-onmessage.js', '');
worker.port.onmessage = this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_true(e.data); assert_true(e.data);
this.done();
}); });
}); }, 'Test SharedWorker.port.onmessage');
</script> </script>
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage(true); e.ports[0].postMessage(true);
} };
...@@ -4,10 +4,9 @@ ...@@ -4,10 +4,9 @@
<link rel=help href="http://www.whatwg.org/html/#messageport"> <link rel=help href="http://www.whatwg.org/html/#messageport">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
test(function() { test(() => {
var worker = new SharedWorker('empty.js', ''); const worker = new SharedWorker('empty.js', '');
assert_true('port' in worker, "port"); assert_true('port' in worker, "port");
assert_true('postMessage' in worker.port, "postMessage"); assert_true('postMessage' in worker.port, "postMessage");
assert_true('start' in worker.port, "start"); assert_true('start' in worker.port, "start");
......
...@@ -4,11 +4,10 @@ ...@@ -4,11 +4,10 @@
<link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#dfn-attribute-setter"> <link rel=help href="http://dev.w3.org/2006/webapi/WebIDL/#dfn-attribute-setter">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
test(function() { test(() => {
var worker = new SharedWorker('empty.js', ''); const worker = new SharedWorker('empty.js', '');
var x = worker.port; const x = worker.port;
worker.port = 1; worker.port = 1;
assert_equals(worker.port, x); assert_equals(worker.port, x);
}); });
......
<!--
/*
-->
<!doctype html> <!doctype html>
<title>same-origin checks</title> <title>same-origin checks</title>
<meta name="timeout" content="long"> <meta name="timeout" content="long">
<link rel=help href="https://html.spec.whatwg.org/multipage/workers.html#dom-sharedworker"> <link rel=help href="https://html.spec.whatwg.org/multipage/workers.html#dom-sharedworker">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
// Needed to prevent a race condition if a worker throws an exception that may or may // 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 // not propogate to the window before the tests finish
setup({allow_uncaught_exception: true}); setup({allow_uncaught_exception: true});
function testSharedWorkerHelper(t, script) { testSharedWorkerHelper = (t, script) => {
try { try {
var worker = new SharedWorker(script, ''); const worker = new SharedWorker(script, '');
worker.onerror = t.step_func_done(function(e) { worker.onerror = t.step_func_done(e => {
assert_true(e instanceof Event); assert_true(e instanceof Event);
}); });
} catch (e) { } catch (e) {
...@@ -25,45 +21,42 @@ function testSharedWorkerHelper(t, script) { ...@@ -25,45 +21,42 @@ function testSharedWorkerHelper(t, script) {
} }
} }
test(function() { test(() => {
assert_throws_dom("SecurityError", function() { new SharedWorker('unsupported:', ''); }); assert_throws_dom("SecurityError", () => { new SharedWorker('unsupported:', ''); });
}, "unsupported_scheme"); }, "unsupported_scheme");
async_test(function() { async_test(t => {
var worker = new SharedWorker('data:,onconnect = function(e) { e.ports[0].postMessage(1); }', ''); const worker = new SharedWorker('data:,onconnect = e => { e.ports[0].postMessage(1); }', '');
worker.port.onmessage = this.step_func_done(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data, 1); assert_equals(e.data, 1);
}); });
}, "data_url"); }, "data_url");
async_test(function(t) { async_test(t => {
testSharedWorkerHelper(this, 'javascript:""'); testSharedWorkerHelper(t, 'javascript:""');
}, "javascript_url"); }, "javascript_url");
async_test(function(t) { async_test(t => {
testSharedWorkerHelper(this, 'about:blank'); testSharedWorkerHelper(t, 'about:blank');
}, "about_blank"); }, "about_blank");
async_test(function(t) { async_test(t => {
testSharedWorkerHelper(this, 'http://www.opera.com/'); testSharedWorkerHelper(t, 'http://www.opera.com/');
}, "opera_com"); }, "opera_com");
async_test(function(t) { async_test(t => {
testSharedWorkerHelper(this, location.protocol+'//'+location.hostname+':81/'); testSharedWorkerHelper(t, location.protocol+'//'+location.hostname+':81/');
}, "port_81"); }, "port_81");
async_test(function(t) { async_test(t => {
testSharedWorkerHelper(this, 'https://'+location.hostname+':80/'); testSharedWorkerHelper(t, 'https://'+location.hostname+':80/');
}, "https_port_80"); }, "https_port_80");
async_test(function(t) { async_test(t => {
testSharedWorkerHelper(this, 'https://'+location.hostname+':8000/'); testSharedWorkerHelper(t, 'https://'+location.hostname+':8000/');
}, "https_port_8000"); }, "https_port_8000");
async_test(function(t) { async_test(t => {
testSharedWorkerHelper(this, 'http://'+location.hostname+':8012/'); testSharedWorkerHelper(t, 'http://'+location.hostname+':8012/');
}, "http_port_8012"); }, "http_port_8012");
</script> </script>
<!--
*/
//-->
...@@ -2,7 +2,7 @@ This is a testharness.js-based test. ...@@ -2,7 +2,7 @@ This is a testharness.js-based test.
PASS postMessage PASS postMessage
PASS start PASS start
PASS close PASS close
FAIL onmessage assert_equals: {handleEvent:function(){}} expected null but got object "[object Object]" FAIL onmessage assert_equals: {handleEvent:() => {}} expected null but got object "[object Object]"
PASS addEventListener PASS addEventListener
PASS removeEventListener PASS removeEventListener
PASS despatchEvent PASS despatchEvent
......
<!--
/*
-->
<!doctype html> <!doctype html>
<title>setting members of worker.port</title> <title>setting members of worker.port</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
setup(function() { setup(() => {
window.worker = new SharedWorker('#', ''); window.worker = new SharedWorker('#', '');
}); });
test(function() { test(() => {
worker.port.postMessage = 1; worker.port.postMessage = 1;
assert_equals(worker.port.postMessage, 1); assert_equals(worker.port.postMessage, 1);
}, 'postMessage'); }, 'postMessage');
test(function() { test(() => {
worker.port.start = 1; worker.port.start = 1;
assert_equals(worker.port.start, 1); assert_equals(worker.port.start, 1);
}, 'start'); }, 'start');
test(function() { test(() => {
worker.port.close = 1; worker.port.close = 1;
assert_equals(worker.port.close, 1); assert_equals(worker.port.close, 1);
}, 'close'); }, 'close');
test(function() { test(() => {
var f = function(){}; const f = () => {};
worker.port.onmessage = f; worker.port.onmessage = f;
assert_equals(worker.port.onmessage, f, 'function(){}'); assert_equals(worker.port.onmessage, f, '() => {}');
worker.port.onmessage = 1; worker.port.onmessage = 1;
assert_equals(worker.port.onmessage, null, '1'); assert_equals(worker.port.onmessage, null, '1');
worker.port.onmessage = f; worker.port.onmessage = f;
worker.port.onmessage = ';'; worker.port.onmessage = ';';
assert_equals(worker.port.onmessage, null, '";"'); assert_equals(worker.port.onmessage, null, '";"');
worker.port.onmessage = f; worker.port.onmessage = f;
worker.port.onmessage = {handleEvent:function(){}}; worker.port.onmessage = {handleEvent:() => {}};
assert_equals(worker.port.onmessage, null, '{handleEvent:function(){}}'); assert_equals(worker.port.onmessage, null, '{handleEvent:() => {}}');
worker.port.onmessage = f; worker.port.onmessage = f;
worker.port.onmessage = null; worker.port.onmessage = null;
assert_equals(worker.port.onmessage, null, 'null'); assert_equals(worker.port.onmessage, null, 'null');
...@@ -41,19 +37,16 @@ test(function() { ...@@ -41,19 +37,16 @@ test(function() {
worker.port.onmessage = undefined; worker.port.onmessage = undefined;
assert_equals(worker.port.onmessage, null, 'undefined'); assert_equals(worker.port.onmessage, null, 'undefined');
}, 'onmessage'); }, 'onmessage');
test(function() { test(() => {
worker.port.addEventListener = 1; worker.port.addEventListener = 1;
assert_equals(worker.port.addEventListener, 1); assert_equals(worker.port.addEventListener, 1);
}, 'addEventListener'); }, 'addEventListener');
test(function() { test(() => {
worker.port.removeEventListener = 1; worker.port.removeEventListener = 1;
assert_equals(worker.port.removeEventListener, 1); assert_equals(worker.port.removeEventListener, 1);
}, 'removeEventListener'); }, 'removeEventListener');
test(function() { test(() => {
worker.port.despatchEvent = 1; worker.port.despatchEvent = 1;
assert_equals(worker.port.despatchEvent, 1); assert_equals(worker.port.despatchEvent, 1);
}, 'despatchEvent'); }, 'despatchEvent');
</script> </script>
<!--
*/
//-->
onconnect = function(e) { onconnect = e => {
var port = e.ports[0]; const port = e.ports[0];
port.onmessage = function(e) { port.onmessage = e => {
port.postMessage('ping'); port.postMessage('ping');
} }
} }
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage(['undefined', self.name]); e.ports[0].postMessage(['undefined', self.name]);
} };
\ No newline at end of file
<!--
onconnect = function(e) {
e.ports[0].postMessage(['FAIL', self.name]);
}
/*
-->
<!doctype html> <!doctype html>
<title>undefined as arguments</title> <title>undefined as arguments</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker(undefined, undefined); const worker = new SharedWorker(undefined, undefined);
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data[0], 'undefined', 'first arg'); assert_equals(e.data[0], 'undefined', 'first arg (script name)');
assert_equals(e.data[1], '', 'second arg'); assert_equals(e.data[1], '', 'second arg (worker name)');
this.done(); });
}), false); }, 'Test constructing a shared worker with undefined');
worker.port.start();
});
</script> </script>
<!--
*/
//-->
...@@ -2,14 +2,11 @@ ...@@ -2,14 +2,11 @@
<title>unexpected members/interface objects/constructors</title> <title>unexpected members/interface objects/constructors</title>
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
(async_test()).step(function() { async_test(t => {
var worker = new SharedWorker('unexpected-global-properties.js'); const worker = new SharedWorker('unexpected-global-properties.js');
worker.port.addEventListener('message', this.step_func(function(e) { worker.port.onmessage = t.step_func_done(e => {
assert_equals(e.data, ''); assert_equals(e.data, '');
this.done(); });
}), false); }, 'Test unexpected properties are not in global scope');
worker.port.start();
});
</script> </script>
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 opener outerHeight outerWidth pageXOffset pageYOffset parent screen screenLeft screenTop screenX screenY status top window length'.split(' '); // iterated window in opera and removed expected ones const 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 opener outerHeight outerWidth pageXOffset pageYOffset parent screen screenLeft screenTop screenX screenY status top window length'.split(' '); // iterated window in opera and removed expected ones
var log = ''; let log = '';
for (var i = 0; i < unexpected.length; ++i) { for (let i = 0; i < unexpected.length; ++i) {
if (unexpected[i] in self) if (unexpected[i] in self)
log += unexpected[i] + ' '; log += unexpected[i] + ' ';
} }
onconnect = function(e) { onconnect = e => {
e.ports[0].postMessage(log); e.ports[0].postMessage(log);
}; };
This is a testharness.js-based test. This is a testharness.js-based test.
FAIL resolving broken url assert_throws_dom: function "function() { FAIL resolving broken url assert_throws_dom: function "() => {
var worker = new SharedWorker('http://foo bar'); const worker = new SharedWorker('http://foo bar');
}" threw object "SecurityError: Failed to construct 'SharedWorker': Script at 'http://foo%20bar/' cannot be accessed from origin 'http://web-platform.test:8001'." that is not a DOMException SyntaxError: property "code" is equal to 18, expected 12 }" threw object "SecurityError: Failed to construct 'SharedWorker': Script at 'http://foo%20bar/' cannot be accessed from origin 'http://web-platform.test:8001'." that is not a DOMException SyntaxError: property "code" is equal to 18, expected 12
Harness: the test ran to completion. Harness: the test ran to completion.
<!--
/*
-->
<!doctype html> <!doctype html>
<title>resolving broken url</title> <title>resolving broken url</title>
<link rel=help href="http://www.whatwg.org/html/#dom-sharedworker"> <link rel=help href="http://www.whatwg.org/html/#dom-sharedworker">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script> <script>
test(function() { test(() => {
assert_throws_dom("SyntaxError", function() { assert_throws_dom("SyntaxError", () => {
var worker = new SharedWorker('http://foo bar'); const worker = new SharedWorker('http://foo bar');
}); });
}); });
</script> </script>
<!--
*/
//-->
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment