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

Side by Side Diff: LayoutTests/http/tests/serviceworker/unregister-controller.html

Issue 352423005: Add ServiceWorker InstallPhaseEvent.waitUntil() layout test. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: review update Created 6 years, 5 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
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script> 2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script> 3 <script src="../resources/testharnessreport.js"></script>
4 <script src="resources/test-helpers.js"></script> 4 <script src="resources/test-helpers.js"></script>
5 <script> 5 <script>
6 var worker_url = 'resources/simple-intercept-worker.js'; 6 var worker_url = 'resources/simple-intercept-worker.js';
7 7
8 async_test(function(t) { 8 async_test(function(t) {
9 var scope = 'resources/unregister-controller-page.html?load-before-unregiste r'; 9 var scope = 'resources/unregister-controller-page.html?load-before-unregiste r';
10 10
11 service_worker_unregister_and_register(t, worker_url, scope).then(t.step_fun c(function(worker) { 11 service_worker_unregister_and_register(t, worker_url, scope).then(t.step_fun c(function(worker) {
12 worker.addEventListener('statechange', t.step_func(on_state_change)); 12 worker.addEventListener('statechange', t.step_func(on_state_change));
13 })); 13 }));
14 14
15 function on_state_change(event) { 15 function on_state_change(event) {
16 if (event.target.state != 'active') 16 if (event.target.state != 'activated')
17 return; 17 return;
18 with_iframe(scope, t.step_func(function(frame) { 18 with_iframe(scope, t.step_func(function(frame) {
19 var w = frame.contentWindow; 19 var w = frame.contentWindow;
20 assert_true(w.navigator.serviceWorker.controller instanceof w.Servic eWorker, 20 assert_true(w.navigator.serviceWorker.controller instanceof w.Servic eWorker,
21 'document should load with a controller'); 21 'document should load with a controller');
22 w.fetch_url('simple.txt').then(t.step_func(function(response) { 22 w.fetch_url('simple.txt').then(t.step_func(function(response) {
23 assert_equals(response, 'intercepted by service worker', 'contro ller should intercept requests'); 23 assert_equals(response, 'intercepted by service worker', 'contro ller should intercept requests');
24 t.done(); 24 t.done();
25 }), unreached_rejection(t, 'fetch failed')); 25 }), unreached_rejection(t, 'fetch failed'));
26 })); 26 }));
27 } 27 }
28 }, 'Unregister does not affect existing controller'); 28 }, 'Unregister does not affect existing controller');
29 29
30 async_test(function(t) { 30 async_test(function(t) {
31 var scope = 'resources/unregister-controller-page.html?load-after-unregister '; 31 var scope = 'resources/unregister-controller-page.html?load-after-unregister ';
32 32
33 service_worker_unregister_and_register(t, worker_url, scope).then(t.step_fun c(function(worker) { 33 service_worker_unregister_and_register(t, worker_url, scope).then(t.step_fun c(function(worker) {
34 worker.addEventListener('statechange', t.step_func(on_state_change)); 34 worker.addEventListener('statechange', t.step_func(on_state_change));
35 })); 35 }));
36 36
37 function on_state_change(event) { 37 function on_state_change(event) {
38 if (event.target.state != 'active') 38 if (event.target.state != 'activated')
39 return; 39 return;
40 navigator.serviceWorker.unregister(scope).then(t.step_func(function() { 40 navigator.serviceWorker.unregister(scope).then(t.step_func(function() {
41 with_iframe(scope, t.step_func(function(frame) { 41 with_iframe(scope, t.step_func(function(frame) {
42 var w = frame.contentWindow; 42 var w = frame.contentWindow;
43 assert_equals(w.navigator.serviceWorker.controller, null, 'docum ent should not have a controller'); 43 assert_equals(w.navigator.serviceWorker.controller, null, 'docum ent should not have a controller');
44 w.fetch_url('simple.txt').then(t.step_func(function(response) { 44 w.fetch_url('simple.txt').then(t.step_func(function(response) {
45 assert_equals(response, 'a simple text file\n', 'requests sh ould not be intercepted'); 45 assert_equals(response, 'a simple text file\n', 'requests sh ould not be intercepted');
46 t.done(); 46 t.done();
47 }), unreached_rejection(t, 'fetch failed')); 47 }), unreached_rejection(t, 'fetch failed'));
48 })); 48 }));
49 })); 49 }));
50 } 50 }
51 }, 'Unregister prevents control of subsequent navigations'); 51 }, 'Unregister prevents control of subsequent navigations');
52 </script> 52 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698