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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-preload/get-state.html

Issue 2443103002: service worker: Implement NavigationPreloadManager.getState (Closed)
Patch Set: rm file added in bad merge Created 4 years, 1 month 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 <meta charset="utf-8">
3 <title>NavigationPreloadManager.getState</title>
4 <script src="../../resources/testharness.js"></script>
5 <script src="../../resources/testharnessreport.js"></script>
6 <script src="../resources/test-helpers.js"></script>
7 <body>
8 <script>
9 function post_and_wait_for_reply(worker, message) {
10 return new Promise(resolve => {
11 navigator.serviceWorker.onmessage = e => { resolve(e.data); };
12 worker.postMessage(message);
13 });
14 }
15
16 promise_test(t => {
17 const scope = '../resources/getState';
18 const script = '../resources/empty-worker.js';
19 var registration;
20
21 return service_worker_unregister_and_register(t, script, scope)
22 .then(r => {
23 registration = r;
24 add_completion_callback(() => registration.unregister());
25 return registration.navigationPreload.getState();
26 })
27 .then(state => {
28 assert_equals(state.enabled, false,
29 '.enabled should be false by default');
30 return registration.navigationPreload.enable();
31 })
32 .then(() => registration.navigationPreload.getState())
33 .then(state => {
34 assert_equals(state.enabled, true,
35 '.enabled should be true after enable()');
36 return registration.navigationPreload.disable();
37 })
38 .then(() => registration.navigationPreload.getState())
39 .then(state => {
40 assert_equals(state.enabled, false,
41 '.enabled should be false after disable()');
42 });
43 }, 'getState');
44
45 // This test sends commands to a worker to call enable()/disable()/getState().
46 // It checks the results from the worker and verifies that they match the
47 // navigation preload state accessible from the page.
48 promise_test(t => {
49 const scope = 'resources/getState-worker';
50 const script = 'resources/get-state-worker.js';
51 var worker;
52 var registration;
53
54 return service_worker_unregister_and_register(t, script, scope)
55 .then(r => {
56 registration = r;
57 add_completion_callback(() => registration.unregister());
58 worker = registration.installing;
59 // Call getState().
60 return post_and_wait_for_reply(worker, 'getState');
61 })
62 .then(data => {
63 return Promise.all([data, registration.navigationPreload.getState()]);
64 })
65 .then(states => {
66 assert_equals(states[0].enabled, false,
67 '.enabled should be false by default (from worker)');
68 assert_equals(states[1].enabled, false,
69 '.enabled should be false by default (from page)');
70 // Call enable() and then getState().
71 return post_and_wait_for_reply(worker, 'enable');
72 })
73 .then(data => {
74 assert_equals(data, undefined, 'enable() should resolve to undefined');
75 return Promise.all([
76 post_and_wait_for_reply(worker, 'getState'),
77 registration.navigationPreload.getState()
78 ]);
79 })
80 .then(states => {
81 assert_equals(states[0].enabled, true,
82 '.enabled should be true after enable() (from worker)');
83 assert_equals(states[1].enabled, true,
84 '.enabled should be true after enable() (from page)');
85 // Call disable() and then getState().
86 return post_and_wait_for_reply(worker, 'disable');
87 })
88 .then(data => {
89 assert_equals(data, undefined,
90 '.disable() should resolve to undefined');
91 return Promise.all([
92 post_and_wait_for_reply(worker, 'getState'),
93 registration.navigationPreload.getState()
94 ]);
95 })
96 .then(states => {
97 assert_equals(states[0].enabled, false,
98 '.enabled should be false after disable() (from worker)');
99 assert_equals(states[1].enabled, false,
100 '.enabled should be false after disable() (from page)');
101 });
102 }, 'getState from a worker');
103 </script>
104 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698