Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/unregister-then-register-new-script.html

Issue 2904123002: Upstream service worker "unregister" tests to WPT (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/http/tests/serviceworker/unregister-then-register.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 var worker_url = 'resources/empty-worker.js';
7
8 async_test(function(t) {
9 var scope = 'resources/scope/unregister-then-register-new-script-that-exists ';
10 var new_worker_url = worker_url + '?new';
11 var iframe;
12 var registration;
13 var new_registration;
14
15 service_worker_unregister_and_register(t, worker_url, scope)
16 .then(function(r) {
17 registration = r;
18 return wait_for_state(t, r.installing, 'activated');
19 })
20 .then(function() {
21 return with_iframe(scope);
22 })
23 .then(function(frame) {
24 iframe = frame;
25 return registration.unregister();
26 })
27 .then(function() {
28 return navigator.serviceWorker.register(new_worker_url,
29 { scope: scope });
30 })
31 .then(function(r) {
32 new_registration = r;
33 assert_equals(registration.installing.scriptURL,
34 normalizeURL(new_worker_url),
35 'before activated registration.installing');
36 assert_equals(registration.waiting, null,
37 'before activated registration.waiting');
38 assert_equals(registration.active.scriptURL, normalizeURL(worker_url),
39 'before activated registration.active');
40 assert_equals(new_registration.installing.scriptURL,
41 normalizeURL(new_worker_url),
42 'before activated new_registration.installing');
43 assert_equals(new_registration.waiting, null,
44 'before activated new_registration.waiting');
45 assert_equals(new_registration.active.scriptURL,
46 normalizeURL(worker_url),
47 'before activated new_registration.active');
48 iframe.remove();
49 return wait_for_state(t, registration.installing, 'activated');
50 })
51 .then(function() {
52 assert_equals(new_registration.installing, null,
53 'after activated new_registration.installing');
54 assert_equals(new_registration.waiting, null,
55 'after activated new_registration.waiting');
56 assert_equals(new_registration.active.scriptURL,
57 normalizeURL(new_worker_url),
58 'after activated new_registration.active');
59 return with_iframe(scope);
60 })
61 .then(function(frame) {
62 assert_equals(
63 frame.contentWindow.navigator.serviceWorker.controller.scriptURL,
64 normalizeURL(new_worker_url),
65 'the new worker should control a new document');
66 frame.remove();
67 return registration.unregister();
68 })
69 .then(function() {
70 t.done();
71 })
72 .catch(unreached_rejection(t));
73 }, 'Registering a new script URL while an unregistered registration is in use');
74
75 async_test(function(t) {
76 var scope = 'resources/scope/unregister-then-register-new-script-that-404s';
77 var iframe;
78 var registration;
79
80 service_worker_unregister_and_register(t, worker_url, scope)
81 .then(function(r) {
82 registration = r;
83 return wait_for_state(t, r.installing, 'activated');
84 })
85 .then(function() {
86 return with_iframe(scope);
87 })
88 .then(function(frame) {
89 iframe = frame;
90 return registration.unregister();
91 })
92 .then(function() {
93 var promise = navigator.serviceWorker.register('this-will-404',
94 { scope: scope });
95 iframe.remove();
96 return promise;
97 })
98 .then(
99 function() {
100 assert_unreached('register should reject the promise');
101 },
102 function() {
103 return with_iframe(scope);
104 })
105 .then(function(frame) {
106 assert_equals(frame.contentWindow.navigator.serviceWorker.controller,
107 null,
108 'document should not load with a controller');
109 frame.remove();
110 t.done();
111 })
112 .catch(unreached_rejection(t));
113 }, 'Registering a new script URL that 404s does not resurrect an ' +
114 'unregistered registration');
115
116 async_test(function(t) {
117 var scope = 'resources/scope/unregister-then-register-reject-install-worker' ;
118 var iframe;
119 var registration;
120
121 service_worker_unregister_and_register(t, worker_url, scope)
122 .then(function(r) {
123 registration = r;
124 return wait_for_state(t, r.installing, 'activated');
125 })
126 .then(function() {
127 return with_iframe(scope);
128 })
129 .then(function(frame) {
130 iframe = frame;
131 return registration.unregister();
132 })
133 .then(function() {
134 var promise = navigator.serviceWorker.register(
135 'resources/reject-install-worker.js', { scope: scope });
136 iframe.remove();
137 return promise;
138 })
139 .then(function(r) {
140 registration = r;
141 return wait_for_state(t, r.installing, 'redundant');
142 })
143 .then(function() {
144 return with_iframe(scope);
145 })
146 .then(function(frame) {
147 assert_equals(frame.contentWindow.navigator.serviceWorker.controller,
148 null,
149 'document should not load with a controller');
150 frame.remove();
151 return registration.unregister();
152 })
153 .then(function() {
154 t.done();
155 })
156 .catch(unreached_rejection(t));
157 }, 'Registering a new script URL that fails to install does not resurrect ' +
158 'an unregistered registration');
159 </script>
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/http/tests/serviceworker/unregister-then-register.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698