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

Side by Side Diff: LayoutTests/http/tests/serviceworker/install-phase-event-waituntil.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
(Empty)
1 <!DOCTYPE html>
2 <title>InstallPhaseEvent: waitUntil</title>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script src="resources/test-helpers.js"></script>
6 <script>
7 function runTest(test, scope, onRegister) {
8 var script = 'resources/install-phase-event-waituntil.js';
9 test.step(function() {
10 service_worker_unregister_and_register(
11 test, script, scope
12 ).then(
13 test.step_func(onRegister)
14 );
15 });
16 }
17
18 function syncWorker(test, worker, obj) {
19 var channel = new MessageChannel();
20 channel.port1.onmessage = test.step_func(function(e) {
21 var message = e.data;
22 assert_equals(message, 'SYNC', 'Should receive sync message from worker. ');
23 obj.synced = true;
24 channel.port1.postMessage('ACK');
25 });
26 worker.postMessage({port: channel.port2}, [channel.port2]);
27 }
28
29 (function() {
30 var t = async_test('Test install event waitUntil fulfilled.');
jsbell 2014/07/01 16:16:48 I think dominicc was trying to get us to standardi
xiang 2014/07/02 05:10:42 will adapt this style.
31 // Passing scope as the test switch for worker script.
32 var scope = 'install-fulfilled';
33 var onRegister = function(worker) {
34 var obj = {};
35 worker.onstatechange = t.step_func(function() {
36 if (worker.state == 'installing') {
37 syncWorker(t, worker, obj);
38 } else if (worker.state == 'installed') {
39 assert_true(obj.synced,
40 'state should be "installed" after the waitUntil pro mise for "oninstall" is fulfilled.');
41 service_worker_unregister_and_done(t, scope);
42 }
43 });
44 };
45 runTest(t, scope, onRegister);
46 }());
47
48 (function() {
49 var t = async_test('Test activate event waitUntil fulfilled.');
50 var scope = 'activate-fulfilled';
51 var onRegister = function(worker) {
52 var obj = {};
53 worker.onstatechange = t.step_func(function() {
54 if (worker.state == 'activating') {
55 syncWorker(t, worker, obj);
56 } else if (worker.state == 'activated') {
57 assert_true(obj.synced,
58 'state should be "activated" after the waitUntil pro mise for "onactivate" is fulfilled.');
59 service_worker_unregister_and_done(t, scope);
60 }
61 });
62 };
63 runTest(t, scope, onRegister);
64 }());
65
66 (function() {
67 var t = async_test('Test install event waitUntil rejected.');
68 var scope = 'install-rejected';
69 var onRegister = function(worker) {
70 worker.onstatechange = t.step_func(function() {
71 if (worker.state == 'redundant')
72 service_worker_unregister_and_done(t, scope);
73 });
74 };
75 runTest(t, scope, onRegister);
76 }());
77
78 (function() {
79 var t = async_test('Test activate event waitUntil rejected.');
80 var scope = 'activate-rejected';
81 var onRegister = function(worker) {
82 worker.onstatechange = t.step_func(function() {
83 if (worker.state == 'redundant')
84 service_worker_unregister_and_done(t, scope);
85 });
86 };
87 runTest(t, scope, onRegister);
88 }());
89
90 (function() {
91 var t = async_test('Test InstallPhaseEvent multiple waitUntil fulfilled.');
92 var scope = 'activate-multiple-fulfilled';
93 var onRegister = function(worker) {
94 var obj1 = {};
95 var obj2 = {};
96 worker.onstatechange = t.step_func(function() {
97 if (worker.state == 'activating') {
98 syncWorker(t, worker, obj1);
99 syncWorker(t, worker, obj2);
100 } else if (worker.state == 'activated') {
101 assert_true(obj1.synced && obj2.synced,
102 'state should be "activated" after all waitUnitl pro mises for "onactivate" are fulfilled.');
103 service_worker_unregister_and_done(t, scope);
104 }
105 });
106 };
107 runTest(t, scope, onRegister);
108 }());
109
110 (function() {
111 var t = async_test('Test InstallPhaseEvent waitUntil reject precedence.');
112 var scope = 'activate-reject-precedence';
113 var onRegister = function(worker) {
114 worker.onstatechange = t.step_func(function() {
115 if (worker.state == 'redundant')
116 service_worker_unregister_and_done(t, scope);
117 });
118 };
119 runTest(t, scope, onRegister);
120 }());
121 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698