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

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

Issue 2443103002: service worker: Implement NavigationPreloadManager.getState (Closed)
Patch Set: reject 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>
horo 2016/10/25 07:51:47 Nit: Why are you using camelCase filename? I don't
falken 2016/10/25 08:06:29 Done. No reason, just forgot.
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
53 return service_worker_unregister_and_register(t, script, scope)
54 .then(r => {
55 registration = r;
56 add_completion_callback(() => registration.unregister());
57 worker = registration.installing;
58 // Call getState().
59 return post_and_wait_for_reply(worker, 'getState');
60 })
61 .then(data => {
62 return Promise.all([data, registration.navigationPreload.getState()]);
63 })
64 .then(states => {
65 assert_equals(states[0].enabled, false,
66 '.enabled should be false by default (from worker)');
67 assert_equals(states[1].enabled, false,
68 '.enabled should be false by default (from page)');
69 // Call enable() and then getState().
70 return post_and_wait_for_reply(worker, 'enable');
71 })
72 .then(data => {
73 assert_equals(data, undefined, 'enable() should resolve to undefined');
74 return Promise.all([
75 post_and_wait_for_reply(worker, 'getState'),
76 registration.navigationPreload.getState()
77 ])
horo 2016/10/25 07:51:47 ]);
falken 2016/10/25 08:06:29 Done.
78 })
79 .then(states => {
80 assert_equals(states[0].enabled, true,
81 '.enabled should be true after enable() (from worker)');
82 assert_equals(states[1].enabled, true,
83 '.enabled should be true after enable() (from page)');
84 // Call disable() and then getState().
85 return post_and_wait_for_reply(worker, 'disable');
86 })
87 .then(data => {
88 assert_equals(data, undefined,
89 '.disable() should resolve to undefined');
90 return Promise.all([
91 post_and_wait_for_reply(worker, 'getState'),
92 registration.navigationPreload.getState()
93 ])
horo 2016/10/25 07:51:47 ]);
falken 2016/10/25 08:06:29 Done.
94 })
95 .then(states => {
96 assert_equals(states[0].enabled, false,
97 '.enabled should be false after disable() (from worker)');
98 assert_equals(states[1].enabled, false,
99 '.enabled should be false after disable() (from page)');
100 });
101 }, 'getState from a worker');
102 </script>
103 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698