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

Side by Side Diff: LayoutTests/http/tests/serviceworker/install-phase-event-waituntil.html

Issue 466723002: ServiceWorker: Enable ServiceWorkerRegistration and update layout tests (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@updatefound
Patch Set: rebase Created 6 years, 4 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 <title>InstallPhaseEvent: waitUntil</title> 2 <title>InstallPhaseEvent: waitUntil</title>
3 <script src="../resources/testharness.js"></script> 3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script> 4 <script src="../resources/testharnessreport.js"></script>
5 <script src="resources/test-helpers.js"></script> 5 <script src="resources/test-helpers.js"></script>
6 <script> 6 <script>
7 function runTest(test, scope, onRegister) { 7 function runTest(test, scope, onRegister) {
8 var script = 'resources/install-phase-event-waituntil.js'; 8 var script = 'resources/install-phase-event-waituntil.js';
9 test.step(function() { 9 test.step(function() {
10 service_worker_unregister_and_register( 10 service_worker_unregister_and_register(test, script, scope)
11 test, script, scope 11 .then(function(registration) {
12 ).then( 12 return wait_for_update(test, registration);
13 test.step_func(onRegister) 13 })
14 ); 14 .then(test.step_func(onRegister));
15 }); 15 });
16 } 16 }
17 17
18 function syncWorker(test, worker, obj) { 18 function syncWorker(test, worker, obj) {
19 var channel = new MessageChannel(); 19 var channel = new MessageChannel();
20 channel.port1.onmessage = test.step_func(function(e) { 20 channel.port1.onmessage = test.step_func(function(e) {
21 var message = e.data; 21 var message = e.data;
22 assert_equals(message, 'SYNC', 'Should receive sync message from worker. '); 22 assert_equals(message, 'SYNC',
23 obj.synced = true; 23 'Should receive sync message from worker.');
24 channel.port1.postMessage('ACK'); 24 obj.synced = true;
25 channel.port1.postMessage('ACK');
25 }); 26 });
26 worker.postMessage({port: channel.port2}, [channel.port2]); 27 worker.postMessage({port: channel.port2}, [channel.port2]);
27 } 28 }
28 29
29 async_test(function(t) { 30 async_test(function(t) {
30 // Passing scope as the test switch for worker script. 31 // Passing scope as the test switch for worker script.
31 var scope = 'install-fulfilled'; 32 var scope = 'install-fulfilled';
32 var onRegister = function(worker) { 33 var onRegister = function(worker) {
33 var obj = {}; 34 var obj = {};
34 worker.onstatechange = t.step_func(function() { 35 worker.onstatechange = t.step_func(function() {
35 if (worker.state == 'installing') { 36 if (worker.state == 'installing') {
36 syncWorker(t, worker, obj); 37 syncWorker(t, worker, obj);
37 } else if (worker.state == 'installed') { 38 } else if (worker.state == 'installed') {
38 assert_true(obj.synced, 39 assert_true(
39 'state should be "installed" after the waitUntil pro mise for "oninstall" is fulfilled.'); 40 obj.synced,
40 service_worker_unregister_and_done(t, scope); 41 'state should be "installed" after the waitUntil promise ' +
42 'for "oninstall" is fulfilled.');
43 service_worker_unregister_and_done(t, scope);
41 } 44 }
42 }); 45 });
43 }; 46 };
44 runTest(t, scope, onRegister); 47 runTest(t, scope, onRegister);
45 }, 'Test install event waitUntil fulfilled'); 48 }, 'Test install event waitUntil fulfilled');
46 49
47 async_test(function(t) { 50 async_test(function(t) {
48 var scope = 'activate-fulfilled'; 51 var scope = 'activate-fulfilled';
49 var onRegister = function(worker) { 52 var onRegister = function(worker) {
50 var obj = {}; 53 var obj = {};
51 worker.onstatechange = t.step_func(function() { 54 worker.onstatechange = t.step_func(function() {
52 if (worker.state == 'activating') { 55 if (worker.state == 'activating') {
53 syncWorker(t, worker, obj); 56 syncWorker(t, worker, obj);
54 } else if (worker.state == 'activated') { 57 } else if (worker.state == 'activated') {
55 assert_true(obj.synced, 58 assert_true(
56 'state should be "activated" after the waitUntil pro mise for "onactivate" is fulfilled.'); 59 obj.synced,
57 service_worker_unregister_and_done(t, scope); 60 'state should be "activated" after the waitUntil promise ' +
61 'for "onactivate" is fulfilled.');
62 service_worker_unregister_and_done(t, scope);
58 } 63 }
59 }); 64 });
60 }; 65 };
61 runTest(t, scope, onRegister); 66 runTest(t, scope, onRegister);
62 }, 'Test activate event waitUntil fulfilled'); 67 }, 'Test activate event waitUntil fulfilled');
63 68
64 async_test(function(t) { 69 async_test(function(t) {
65 var scope = 'install-rejected'; 70 var scope = 'install-rejected';
66 var onRegister = function(worker) { 71 var onRegister = function(worker) {
67 worker.onstatechange = t.step_func(function() { 72 worker.onstatechange = t.step_func(function() {
68 console.log(worker.state);
69 if (worker.state == 'redundant') 73 if (worker.state == 'redundant')
70 service_worker_unregister_and_done(t, scope); 74 service_worker_unregister_and_done(t, scope);
71 }); 75 });
72 }; 76 };
73 runTest(t, scope, onRegister); 77 runTest(t, scope, onRegister);
74 }, 'Test install event waitUntil rejected'); 78 }, 'Test install event waitUntil rejected');
75 79
76 async_test(function(t) { 80 async_test(function(t) {
77 var scope = 'activate-rejected'; 81 var scope = 'activate-rejected';
78 var onRegister = function(worker) { 82 var onRegister = function(worker) {
79 worker.onstatechange = t.step_func(function() { 83 worker.onstatechange = t.step_func(function() {
80 if (worker.state == 'redundant') 84 if (worker.state == 'redundant')
81 service_worker_unregister_and_done(t, scope); 85 service_worker_unregister_and_done(t, scope);
82 }); 86 });
83 }; 87 };
84 runTest(t, scope, onRegister); 88 runTest(t, scope, onRegister);
85 }, 'Test activate event waitUntil rejected.'); 89 }, 'Test activate event waitUntil rejected.');
86 90
87 async_test(function(t) { 91 async_test(function(t) {
88 var scope = 'activate-multiple-fulfilled'; 92 var scope = 'activate-multiple-fulfilled';
89 var onRegister = function(worker) { 93 var onRegister = function(worker) {
90 var obj1 = {}; 94 var obj1 = {};
91 var obj2 = {}; 95 var obj2 = {};
92 worker.onstatechange = t.step_func(function() { 96 worker.onstatechange = t.step_func(function() {
93 if (worker.state == 'activating') { 97 if (worker.state == 'activating') {
94 syncWorker(t, worker, obj1); 98 syncWorker(t, worker, obj1);
95 syncWorker(t, worker, obj2); 99 syncWorker(t, worker, obj2);
96 } else if (worker.state == 'activated') { 100 } else if (worker.state == 'activated') {
97 assert_true(obj1.synced && obj2.synced, 101 assert_true(
98 'state should be "activated" after all waitUnitl pro mises for "onactivate" are fulfilled.'); 102 obj1.synced && obj2.synced,
99 service_worker_unregister_and_done(t, scope); 103 'state should be "activated" after all waitUnitl promises ' +
104 'for "onactivate" are fulfilled.');
105 service_worker_unregister_and_done(t, scope);
100 } 106 }
101 }); 107 });
102 }; 108 };
103 runTest(t, scope, onRegister); 109 runTest(t, scope, onRegister);
104 }, 'Test InstallPhaseEvent multiple waitUntil fulfilled.'); 110 }, 'Test InstallPhaseEvent multiple waitUntil fulfilled.');
105 111
106 async_test(function(t) { 112 async_test(function(t) {
107 var scope = 'activate-reject-precedence'; 113 var scope = 'activate-reject-precedence';
108 var onRegister = function(worker) { 114 var onRegister = function(worker) {
109 worker.onstatechange = t.step_func(function() { 115 worker.onstatechange = t.step_func(function() {
110 if (worker.state == 'redundant') 116 if (worker.state == 'redundant')
111 service_worker_unregister_and_done(t, scope); 117 service_worker_unregister_and_done(t, scope);
112 }); 118 });
113 }; 119 };
114 runTest(t, scope, onRegister); 120 runTest(t, scope, onRegister);
115 }, 'Test InstallPhaseEvent waitUntil reject precedence.'); 121 }, 'Test InstallPhaseEvent waitUntil reject precedence.');
116 </script> 122 </script>
OLDNEW
« no previous file with comments | « LayoutTests/http/tests/serviceworker/indexeddb.html ('k') | LayoutTests/http/tests/serviceworker/installing.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698