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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/skip-waiting-installed.html

Issue 2900183002: Upstream service wrkr "skipWaiting" tests to WPT (Closed)
Patch Set: Improve assertion message Created 3 years, 6 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>Service Worker: Skip waiting installed worker</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
8 promise_test(function(t) {
9 var scope = 'resources/blank.html';
10 var url1 = 'resources/empty.js';
11 var url2 = 'resources/skip-waiting-installed-worker.js';
12 var frame, frame_sw, service_worker, onmessage, oncontrollerchanged;
13 var saw_message = new Promise(function(resolve) {
14 onmessage = function(e) {
15 var message = e.data;
16 assert_equals(
17 message, 'PASS',
18 'skipWaiting promise should be resolved after activated');
19 resolve();
20 };
21 });
22 var saw_controllerchanged = new Promise(function(resolve) {
23 oncontrollerchanged = function() {
24 assert_equals(
25 frame_sw.controller.scriptURL, normalizeURL(url2),
26 'Controller scriptURL should change to the second one');
27 resolve();
28 };
29 });
30 return service_worker_unregister_and_register(t, url1, scope)
31 .then(function(registration) {
32 return wait_for_state(t, registration.installing, 'activated');
33 })
34 .then(function() {
35 return with_iframe(scope);
36 })
37 .then(function(f) {
38 frame = f;
39 frame_sw = f.contentWindow.navigator.serviceWorker;
40 assert_equals(
41 frame_sw.controller.scriptURL, normalizeURL(url1),
42 'Document controller scriptURL should equal to the first one');
43 frame_sw.oncontrollerchange = t.step_func(oncontrollerchanged);
44 return navigator.serviceWorker.register(url2, {scope: scope});
45 })
46 .then(function(registration) {
47 service_worker = registration.installing;
48 return wait_for_state(t, service_worker, 'installed');
49 })
50 .then(function() {
51 var channel = new MessageChannel();
52 channel.port1.onmessage = t.step_func(onmessage);
53 service_worker.postMessage({port: channel.port2}, [channel.port2]);
54 return Promise.all([saw_message, saw_controllerchanged]);
55 })
56 .then(function() {
57 frame.remove();
58 return service_worker_unregister_and_done(t, scope);
59 });
60 }, 'Test skipWaiting when a installed worker is waiting');
61
62 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698