| <!DOCTYPE html> |
| <title>Service Worker: Interfaces</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="resources/interfaces.js"></script> |
| <script src="resources/test-helpers.sub.js"></script> |
| <script> |
| |
| test(function() { |
| var EVENT_HANDLER = 'object'; |
| verify_interface( |
| 'ServiceWorkerContainer', navigator.serviceWorker, |
| { |
| register: 'function', |
| getRegistration: 'function', |
| oncontrollerchange: EVENT_HANDLER |
| }); |
| }, 'Interfaces and attributes of ServiceWorkerContainer'); |
| |
| async_test(function(t) { |
| var EVENT_HANDLER = 'object'; |
| var scope = 'resources/scope/interfaces-and-attributes'; |
| |
| service_worker_unregister_and_register( |
| t, 'resources/empty-worker.js', scope) |
| .then(function(registration) { |
| verify_interface( |
| 'ServiceWorkerRegistration', registration, |
| { |
| installing: 'object', |
| waiting: 'object', |
| active: 'object', |
| scope: 'string', |
| unregister: 'function', |
| onupdatefound: EVENT_HANDLER |
| }); |
| verify_interface( |
| 'ServiceWorker', registration.installing, |
| { |
| scriptURL: 'string', |
| state: 'string', |
| onstatechange: EVENT_HANDLER |
| }); |
| return registration.unregister(); |
| }) |
| .then(function() { |
| t.done(); |
| }) |
| .catch(unreached_rejection(t)); |
| }, 'Interfaces and attributes of ServiceWorker'); |
| |
| service_worker_test( |
| 'resources/interfaces-worker.sub.js', |
| 'Interfaces and attributes in ServiceWorkerGlobalScope'); |
| |
| </script> |