diff options
Diffstat (limited to 'testing/web-platform/tests/push-api/idlharness.https.any.js')
-rw-r--r-- | testing/web-platform/tests/push-api/idlharness.https.any.js | 43 |
1 files changed, 43 insertions, 0 deletions
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(); }); + }); + } + } +); |