| Index: third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/clients-get.https.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/clients-get.https.html b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/clients-get.https.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..af38502dd9fc7c519e846629c6cc2b59cd820d4b
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/clients-get.https.html
|
| @@ -0,0 +1,70 @@
|
| +<!DOCTYPE html>
|
| +<title>Service Worker: Clients.get</title>
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +<script src="resources/get-host-info.sub.js"></script>
|
| +<script src="resources/test-helpers.sub.js"></script>
|
| +<script>
|
| +var host_info = get_host_info();
|
| +
|
| +var scope = 'resources/clients-get-frame.html';
|
| +var t = async_test('Test Clients.get()');
|
| +var clientIds = [];
|
| +var frame;
|
| +t.step(function() {
|
| + service_worker_unregister_and_register(
|
| + t, 'resources/clients-get-worker.js', scope)
|
| + .then(function(registration) {
|
| + return wait_for_state(t, registration.installing, 'activated');
|
| + })
|
| + .then(function() {
|
| + return with_iframe(scope + '#1');
|
| + })
|
| + .then(function(frame1) {
|
| + frame1.focus();
|
| + return wait_for_clientId();
|
| + })
|
| + .then(function(clientId) {
|
| + clientIds.push(clientId);
|
| + return with_iframe(scope + '#2');
|
| + })
|
| + .then(function(frame2) {
|
| + frame = frame2;
|
| + return wait_for_clientId();
|
| + })
|
| + .then(function(clientId) {
|
| + clientIds.push(clientId);
|
| + var channel = new MessageChannel();
|
| + channel.port1.onmessage = t.step_func(on_message);
|
| + frame.contentWindow.navigator.serviceWorker.controller.postMessage(
|
| + {port:channel.port2, clientIds:clientIds,
|
| + message: 'get_client_ids'}, [channel.port2]);
|
| + })
|
| + .catch(unreached_rejection(t));
|
| + });
|
| +
|
| +function wait_for_clientId() {
|
| + return new Promise(function(resolve, reject) {
|
| + function get_client_id(e) {
|
| + window.removeEventListener("message", get_client_id);
|
| + resolve(e.data.clientId);
|
| + }
|
| + window.addEventListener("message", get_client_id, false);
|
| + });
|
| +}
|
| +
|
| +var expected = [
|
| + /* visibilityState, focused, url, frameType */
|
| + ['visible', true, new URL(scope + '#1', location).toString(), 'nested'],
|
| + ['visible', false, new URL(scope + '#2', location).toString(), 'nested'],
|
| + undefined
|
| +];
|
| +
|
| +function on_message(e) {
|
| + assert_equals(e.data.length, 3);
|
| + assert_array_equals(e.data[0], expected[0]);
|
| + assert_array_equals(e.data[1], expected[1]);
|
| + assert_equals(e.data[2], expected[2]);
|
| + service_worker_unregister_and_done(t, scope);
|
| +}
|
| +</script>
|
|
|