Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / serviceworker / getregistration.html
1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script>
4 <script src="resources/test-helpers.js"></script>
5 <script>
6 async_test(function(t) {
7     var documentURL = 'no-such-worker';
8     navigator.serviceWorker.getRegistration(documentURL)
9       .then(function(value) {
10           assert_equals(value, undefined,
11                         'getRegistration should resolve with undefined');
12           t.done();
13         })
14       .catch(unreached_rejection(t));
15   }, 'getRegistration');
16
17 async_test(function(t) {
18     var scope = 'resources/scope/getregistration/normal';
19     var registration;
20     service_worker_unregister_and_register(t, 'resources/empty-worker.js',
21                                            scope)
22       .then(function(r) {
23           registration = r;
24           return navigator.serviceWorker.getRegistration(scope);
25         })
26       .then(function(value) {
27           assert_equals(value, registration,
28                         'getRegistration should resolve with registration');
29           service_worker_unregister_and_done(t, scope);
30         })
31       .catch(unreached_rejection(t));
32   }, 'Register then getRegistration');
33
34 async_test(function(t) {
35     var scope = 'resources/scope/getregistration/url-with-fragment';
36     var documentURL = scope + '#ref';
37     var registration;
38     service_worker_unregister_and_register(t, 'resources/empty-worker.js',
39                                            scope)
40       .then(function(r) {
41           registration = r;
42           return navigator.serviceWorker.getRegistration(documentURL);
43         })
44       .then(function(value) {
45           assert_equals(value, registration,
46                         'getRegistration should resolve with registration');
47           service_worker_unregister_and_done(t, scope);
48         })
49       .catch(unreached_rejection(t));
50   }, 'Register then getRegistration with a URL having a fragment');
51
52 async_test(function(t) {
53     var documentURL = 'http://example.com/';
54     navigator.serviceWorker.getRegistration(documentURL)
55       .then(function() {
56           assert_unreached(
57               'getRegistration with an out of origin URL should fail');
58       }, function(reason) {
59           assert_equals(
60               reason.name, 'SecurityError',
61               'getRegistration with an out of origin URL should fail');
62           t.done();
63       })
64       .catch(unreached_rejection(t));
65   }, 'getRegistration with a cross origin URL');
66
67 async_test(function(t) {
68     var scope = 'resources/scope/getregistration/register-unregister';
69     service_worker_unregister_and_register(t, 'resources/empty-worker.js',
70                                            scope)
71       .then(function(registration) {
72           return registration.unregister();
73         })
74       .then(function() {
75           return navigator.serviceWorker.getRegistration(scope);
76         })
77       .then(function(value) {
78           assert_equals(value, undefined,
79                         'getRegistration should resolve with undefined');
80           t.done();
81         })
82       .catch(unreached_rejection(t));
83   }, 'Register then Unregister then getRegistration');
84
85 </script>