diff options
Diffstat (limited to 'testing/web-platform/tests/service-workers/service-worker/active.https.html')
-rw-r--r-- | testing/web-platform/tests/service-workers/service-worker/active.https.html | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/web-platform/tests/service-workers/service-worker/active.https.html b/testing/web-platform/tests/service-workers/service-worker/active.https.html new file mode 100644 index 0000000000..350a34b802 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/active.https.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<title>ServiceWorker: navigator.serviceWorker.active</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/test-helpers.sub.js"></script> +<body> +<script> + +const SCRIPT = 'resources/empty-worker.js'; +const SCOPE = 'resources/blank.html'; + +// "active" is set +promise_test(async t => { + + t.add_cleanup(async() => { + if (frame) + frame.remove(); + if (registration) + await registration.unregister(); + }); + + await service_worker_unregister(t, SCOPE); + const frame = await with_iframe(SCOPE); + const registration = + await navigator.serviceWorker.register(SCRIPT, {scope: SCOPE}); + await wait_for_state(t, registration.installing, 'activating'); + const container = frame.contentWindow.navigator.serviceWorker; + assert_equals(container.controller, null, 'controller'); + assert_equals(registration.active.state, 'activating', + 'registration.active'); + assert_equals(registration.waiting, null, 'registration.waiting'); + assert_equals(registration.installing, null, 'registration.installing'); + + // FIXME: Add a test for a frame created after installation. + // Should the existing frame ("frame") block activation? +}, 'active is set'); + +// Tests that the ServiceWorker objects returned from active attribute getter +// that represent the same service worker are the same objects. +promise_test(async t => { + const registration1 = + await service_worker_unregister_and_register(t, SCRIPT, SCOPE); + const registration2 = await navigator.serviceWorker.getRegistration(SCOPE); + assert_equals(registration1.active, registration2.active, + 'ServiceWorkerRegistration.active should return the same ' + + 'object'); + await registration1.unregister(); +}, 'The ServiceWorker objects returned from active attribute getter that ' + + 'represent the same service worker are the same objects'); +</script> |