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

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

Issue 468753003: SW tests update (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 467133002 and fix test 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 for "onin stall" is fulfilled.');
41 } 42 service_worker_unregister_and_done(t, scope);
43 }
42 }); 44 });
43 }; 45 };
44 runTest(t, scope, onRegister); 46 runTest(t, scope, onRegister);
45 }, 'Test install event waitUntil fulfilled'); 47 }, 'Test install event waitUntil fulfilled');
46 48
47 async_test(function(t) { 49 async_test(function(t) {
48 var scope = 'activate-fulfilled'; 50 var scope = 'activate-fulfilled';
49 var onRegister = function(worker) { 51 var onRegister = function(worker) {
50 var obj = {}; 52 var obj = {};
51 worker.onstatechange = t.step_func(function() { 53 worker.onstatechange = t.step_func(function() {
52 if (worker.state == 'activating') { 54 if (worker.state == 'activating') {
53 syncWorker(t, worker, obj); 55 syncWorker(t, worker, obj);
54 } else if (worker.state == 'activated') { 56 } else if (worker.state == 'activated') {
55 assert_true(obj.synced, 57 assert_true(
56 'state should be "activated" after the waitUntil pro mise for "onactivate" is fulfilled.'); 58 obj.synced,
57 service_worker_unregister_and_done(t, scope); 59 'state should be "activated" after the waitUntil promise for "onac tivate" is fulfilled.');
58 } 60 service_worker_unregister_and_done(t, scope);
61 }
59 }); 62 });
60 }; 63 };
61 runTest(t, scope, onRegister); 64 runTest(t, scope, onRegister);
62 }, 'Test activate event waitUntil fulfilled'); 65 }, 'Test activate event waitUntil fulfilled');
63 66
64 async_test(function(t) { 67 async_test(function(t) {
65 var scope = 'install-rejected'; 68 var scope = 'install-rejected';
66 var onRegister = function(worker) { 69 var onRegister = function(worker) {
67 worker.onstatechange = t.step_func(function() { 70 worker.onstatechange = t.step_func(function() {
68 console.log(worker.state); 71 if (worker.state == 'redundant')
69 if (worker.state == 'redundant') 72 service_worker_unregister_and_done(t, scope);
70 service_worker_unregister_and_done(t, scope);
71 }); 73 });
72 }; 74 };
73 runTest(t, scope, onRegister); 75 runTest(t, scope, onRegister);
74 }, 'Test install event waitUntil rejected'); 76 }, 'Test install event waitUntil rejected');
75 77
76 async_test(function(t) { 78 async_test(function(t) {
77 var scope = 'activate-rejected'; 79 var scope = 'activate-rejected';
78 var onRegister = function(worker) { 80 var onRegister = function(worker) {
79 worker.onstatechange = t.step_func(function() { 81 worker.onstatechange = t.step_func(function() {
80 if (worker.state == 'redundant') 82 if (worker.state == 'redundant')
81 service_worker_unregister_and_done(t, scope); 83 service_worker_unregister_and_done(t, scope);
82 }); 84 });
83 }; 85 };
84 runTest(t, scope, onRegister); 86 runTest(t, scope, onRegister);
85 }, 'Test activate event waitUntil rejected.'); 87 }, 'Test activate event waitUntil rejected.');
86 88
87 async_test(function(t) { 89 async_test(function(t) {
88 var scope = 'activate-multiple-fulfilled'; 90 var scope = 'activate-multiple-fulfilled';
89 var onRegister = function(worker) { 91 var onRegister = function(worker) {
90 var obj1 = {}; 92 var obj1 = {};
91 var obj2 = {}; 93 var obj2 = {};
92 worker.onstatechange = t.step_func(function() { 94 worker.onstatechange = t.step_func(function() {
93 if (worker.state == 'activating') { 95 if (worker.state == 'activating') {
94 syncWorker(t, worker, obj1); 96 syncWorker(t, worker, obj1);
95 syncWorker(t, worker, obj2); 97 syncWorker(t, worker, obj2);
96 } else if (worker.state == 'activated') { 98 } else if (worker.state == 'activated') {
97 assert_true(obj1.synced && obj2.synced, 99 assert_true(
98 'state should be "activated" after all waitUnitl pro mises for "onactivate" are fulfilled.'); 100 obj1.synced && obj2.synced,
99 service_worker_unregister_and_done(t, scope); 101 'state should be "activated" after all waitUnitl promises for "ona ctivate" are fulfilled.');
100 } 102 service_worker_unregister_and_done(t, scope);
103 }
101 }); 104 });
102 }; 105 };
103 runTest(t, scope, onRegister); 106 runTest(t, scope, onRegister);
104 }, 'Test InstallPhaseEvent multiple waitUntil fulfilled.'); 107 }, 'Test InstallPhaseEvent multiple waitUntil fulfilled.');
105 108
106 async_test(function(t) { 109 async_test(function(t) {
107 var scope = 'activate-reject-precedence'; 110 var scope = 'activate-reject-precedence';
108 var onRegister = function(worker) { 111 var onRegister = function(worker) {
109 worker.onstatechange = t.step_func(function() { 112 worker.onstatechange = t.step_func(function() {
110 if (worker.state == 'redundant') 113 if (worker.state == 'redundant')
111 service_worker_unregister_and_done(t, scope); 114 service_worker_unregister_and_done(t, scope);
112 }); 115 });
113 }; 116 };
114 runTest(t, scope, onRegister); 117 runTest(t, scope, onRegister);
115 }, 'Test InstallPhaseEvent waitUntil reject precedence.'); 118 }, 'Test InstallPhaseEvent waitUntil reject precedence.');
116 </script> 119 </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