Chromium Code Reviews| OLD | NEW |
|---|---|
| (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> | |
| OLD | NEW |