diff options
Diffstat (limited to 'testing/web-platform/tests/push-api')
-rw-r--r-- | testing/web-platform/tests/push-api/META.yml | 4 | ||||
-rw-r--r-- | testing/web-platform/tests/push-api/idlharness.https.any.js | 43 | ||||
-rw-r--r-- | testing/web-platform/tests/push-api/permission.https.html | 14 |
3 files changed, 61 insertions, 0 deletions
diff --git a/testing/web-platform/tests/push-api/META.yml b/testing/web-platform/tests/push-api/META.yml new file mode 100644 index 0000000000..4886e6a70d --- /dev/null +++ b/testing/web-platform/tests/push-api/META.yml @@ -0,0 +1,4 @@ +spec: https://w3c.github.io/push-api/ +suggested_reviewers: + - beverloo + - marcoscaceres diff --git a/testing/web-platform/tests/push-api/idlharness.https.any.js b/testing/web-platform/tests/push-api/idlharness.https.any.js new file mode 100644 index 0000000000..d32f6fbc58 --- /dev/null +++ b/testing/web-platform/tests/push-api/idlharness.https.any.js @@ -0,0 +1,43 @@ +// META: global=window,worker +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js +// META: timeout=long + +// https://w3c.github.io/push-api/ + +idl_test( + ['push-api'], + ['service-workers', 'hr-time', 'html', 'dom', 'permissions'], + async (idl_array, t) => { + const isServiceWorker = 'ServiceWorkerGlobalScope' in self + && self instanceof ServiceWorkerGlobalScope; + if (isServiceWorker) { + idl_array.add_objects({ + ServiceWorkerGlobalScope: ['self'], + PushEvent: ['new PushEvent("type")'], + PushSubscriptionChangeEvent: [ + 'new PushSubscriptionChangeEvent("pushsubscriptionchange")' + ], + }) + } + if (GLOBAL.isWindow() || isServiceWorker) { + idl_array.add_objects({ + // self.registration set for window below, and registration is already + // part of ServiceWorkerGlobalScope. + ServiceWorkerRegistration: ['registration'], + PushManager: ['registration.pushManager'], + }); + } + + if (GLOBAL.isWindow()) { + const scope = '/service-workers/service-worker/resources/'; + const worker = `${scope}empty-worker.js`; + return service_worker_unregister_and_register(t, worker, scope) + .then(registration => { + self.registration = registration; + t.add_cleanup(function () { registration.unregister(); }); + }); + } + } +); diff --git a/testing/web-platform/tests/push-api/permission.https.html b/testing/web-platform/tests/push-api/permission.https.html new file mode 100644 index 0000000000..61cb40a843 --- /dev/null +++ b/testing/web-platform/tests/push-api/permission.https.html @@ -0,0 +1,14 @@ +<!doctype html> +<meta charset=utf-8> +<title>Test push is a powerful feature via Permissions API</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> + +<script> +promise_test(async (test) => { + const status = await navigator.permissions.query({ name: "push" }); + assert_true(status instanceof PermissionStatus); + assert_equals(status.name, "push", `permission's name must be "push"`); + assert_equals(status.state, "prompt", `permission's state must be "prompt" by default`); +}, `Query "push" powerful feature`); +</script> |