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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/unregister-controller.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
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/simple-intercept-worker.js';
7
8 async_test(function(t) {
9 var scope =
10 'resources/unregister-controller-page.html?load-before-unregister';
11 var frame_window;
12 var controller;
13 var 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 frame_window = frame.contentWindow;
25 controller = frame_window.navigator.serviceWorker.controller;
26 assert_true(controller instanceof frame_window.ServiceWorker,
27 'document should load with a controller');
28 return registration.unregister();
29 })
30 .then(function() {
31 assert_equals(frame_window.navigator.serviceWorker.controller,
32 controller,
33 'unregistration should not modify controller');
34 return frame_window.fetch_url('simple.txt');
35 })
36 .then(function(response) {
37 assert_equals(response, 'intercepted by service worker',
38 'controller should intercept requests');
39 t.done();
40 })
41 .catch(unreached_rejection(t));
42 }, 'Unregister does not affect existing controller');
43
44 async_test(function(t) {
45 var scope =
46 'resources/unregister-controller-page.html?load-after-unregister';
47 var registration;
48
49 service_worker_unregister_and_register(t, worker_url, scope)
50 .then(function(r) {
51 registration = r;
52 return wait_for_state(t, r.installing, 'activated');
53 })
54 .then(function() {
55 return registration.unregister();
56 })
57 .then(function() {
58 return with_iframe(scope);
59 })
60 .then(function(frame) {
61 var frame_window = frame.contentWindow;
62 assert_equals(frame_window.navigator.serviceWorker.controller, null,
63 'document should not have a controller');
64 return frame_window.fetch_url('simple.txt');
65 })
66 .then(function(response) {
67 assert_equals(response, 'a simple text file\n',
68 'requests should not be intercepted');
69 t.done();
70 })
71 .catch(unreached_rejection(t));
72 }, 'Unregister prevents control of subsequent navigations');
73
74 async_test(function(t) {
75 var scope =
76 'resources/scope/no-new-controllee-even-if-registration-is-still-used';
77 var registration;
78
79 service_worker_unregister_and_register(t, worker_url, scope)
80 .then(function(r) {
81 registration = r;
82 return wait_for_state(t, r.installing, 'activated');
83 })
84 .then(function() {
85 return with_iframe(scope);
86 })
87 .then(function(frame) {
88 return registration.unregister();
89 })
90 .then(function() {
91 return with_iframe(scope);
92 })
93 .then(function(frame) {
94 assert_equals(frame.contentWindow.navigator.serviceWorker.controller,
95 null,
96 'document should not have a controller');
97 t.done();
98 })
99 .catch(unreached_rejection(t));
100 }, 'Unregister prevents new controllee even if registration is still in use');
101 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698