mirror of
https://github.com/servo/servo
synced 2026-05-12 01:46:28 +02:00
88 lines
3.1 KiB
HTML
88 lines
3.1 KiB
HTML
<!DOCTYPE html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="resources/test-helpers.sub.js"></script>
|
|
<script>
|
|
async_test(function(t) {
|
|
var documentURL = 'no-such-worker';
|
|
navigator.serviceWorker.getRegistration(documentURL)
|
|
.then(function(value) {
|
|
assert_equals(value, undefined,
|
|
'getRegistration should resolve with undefined');
|
|
t.done();
|
|
})
|
|
.catch(unreached_rejection(t));
|
|
}, 'getRegistration');
|
|
|
|
async_test(function(t) {
|
|
var scope = 'resources/scope/getregistration/normal';
|
|
var registration;
|
|
service_worker_unregister_and_register(t, 'resources/empty-worker.js',
|
|
scope)
|
|
.then(function(r) {
|
|
registration = r;
|
|
return navigator.serviceWorker.getRegistration(scope);
|
|
})
|
|
.then(function(value) {
|
|
assert_equals(
|
|
value, registration,
|
|
'getRegistration should resolve to the same registration object');
|
|
service_worker_unregister_and_done(t, scope);
|
|
})
|
|
.catch(unreached_rejection(t));
|
|
}, 'Register then getRegistration');
|
|
|
|
async_test(function(t) {
|
|
var scope = 'resources/scope/getregistration/url-with-fragment';
|
|
var documentURL = scope + '#ref';
|
|
var registration;
|
|
service_worker_unregister_and_register(t, 'resources/empty-worker.js',
|
|
scope)
|
|
.then(function(r) {
|
|
registration = r;
|
|
return navigator.serviceWorker.getRegistration(documentURL);
|
|
})
|
|
.then(function(value) {
|
|
assert_equals(
|
|
value, registration,
|
|
'getRegistration should resolve to the same registration object');
|
|
service_worker_unregister_and_done(t, scope);
|
|
})
|
|
.catch(unreached_rejection(t));
|
|
}, 'Register then getRegistration with a URL having a fragment');
|
|
|
|
async_test(function(t) {
|
|
var documentURL = 'http://example.com/';
|
|
navigator.serviceWorker.getRegistration(documentURL)
|
|
.then(function() {
|
|
assert_unreached(
|
|
'getRegistration with an out of origin URL should fail');
|
|
}, function(reason) {
|
|
assert_equals(
|
|
reason.name, 'SecurityError',
|
|
'getRegistration with an out of origin URL should fail');
|
|
t.done();
|
|
})
|
|
.catch(unreached_rejection(t));
|
|
}, 'getRegistration with a cross origin URL');
|
|
|
|
async_test(function(t) {
|
|
var scope = 'resources/scope/getregistration/register-unregister';
|
|
service_worker_unregister_and_register(t, 'resources/empty-worker.js',
|
|
scope)
|
|
.then(function(registration) {
|
|
return registration.unregister();
|
|
})
|
|
.then(function() {
|
|
return navigator.serviceWorker.getRegistration(scope);
|
|
})
|
|
.then(function(value) {
|
|
assert_equals(value, undefined,
|
|
'getRegistration should resolve with undefined');
|
|
t.done();
|
|
})
|
|
.catch(unreached_rejection(t));
|
|
}, 'Register then Unregister then getRegistration');
|
|
|
|
</script>
|