Index: LayoutTests/http/tests/serviceworker/getregistration.html |
diff --git a/LayoutTests/http/tests/serviceworker/getregistration.html b/LayoutTests/http/tests/serviceworker/getregistration.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aa82bb0be64358f52566a70f4ee6ec534a7c83e5 |
--- /dev/null |
+++ b/LayoutTests/http/tests/serviceworker/getregistration.html |
@@ -0,0 +1,67 @@ |
+<!DOCTYPE html> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script src="resources/test-helpers.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 = 'scope/worker/'; |
+ 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 with registration'); |
+ service_worker_unregister_and_done(t, scope); |
+ }) |
+ .catch(unreached_rejection(t)); |
+ }, 'Register then getRegistration'); |
+ |
+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 = 'scope/worker/'; |
+ 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> |