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

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

Issue 2735443002: Refactor ServiceWorker tests for inclusion in WPT (Closed)
Patch Set: Upstream service worker nav. preload tests to WPT Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-preload/get-state.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-preload/get-state.html b/third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-preload/get-state.html
deleted file mode 100644
index 560cc3e87d3c52f95c8650466cd787e4506e24e5..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-preload/get-state.html
+++ /dev/null
@@ -1,217 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>NavigationPreloadManager.getState</title>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
-<script src="../resources/test-helpers.js"></script>
-<script src="resources/helpers.js"></script>
-<body>
-<script>
-function post_and_wait_for_reply(worker, message) {
- return new Promise(resolve => {
- navigator.serviceWorker.onmessage = e => { resolve(e.data); };
- worker.postMessage(message);
- });
-}
-
-promise_test(t => {
- const scope = '../resources/get-state';
- const script = '../resources/empty-worker.js';
- var np;
-
- return service_worker_unregister_and_register(t, script, scope)
- .then(r => {
- np = r.navigationPreload;
- add_completion_callback(() => r.unregister());
- return wait_for_state(t, r.installing, 'activated');
- })
- .then(() => np.getState())
- .then(state => {
- expect_navigation_preload_state(state, false, 'true', 'default state');
- return np.enable();
- })
- .then(result => {
- assert_equals(result, undefined,
- 'enable() should resolve to undefined');
- return np.getState();
- })
- .then(state => {
- expect_navigation_preload_state(state, true, 'true',
- 'state after enable()');
- return np.disable();
- })
- .then(result => {
- assert_equals(result, undefined,
- 'disable() should resolve to undefined');
- return np.getState();
- })
- .then(state => {
- expect_navigation_preload_state(state, false, 'true',
- 'state after disable()');
- return np.setHeaderValue('dreams that cannot be');
- })
- .then(result => {
- assert_equals(result, undefined,
- 'setHeaderValue() should resolve to undefined');
- return np.getState();
- })
- .then(state => {
- expect_navigation_preload_state(state, false, 'dreams that cannot be',
- 'state after setHeaderValue()');
- return np.setHeaderValue('').then(() => np.getState());
- })
- .then(state => {
- expect_navigation_preload_state(state, false, '',
- 'after setHeaderValue to empty string');
- return np.setHeaderValue(null).then(() => np.getState());
- })
- .then(state => {
- expect_navigation_preload_state(state, false, 'null',
- 'after setHeaderValue to null');
- return promise_rejects(t,
- new TypeError,
- np.setHeaderValue('what\uDC00\uD800this'),
- 'setHeaderValue() should throw if passed surrogates');
- })
- .then(() => {
- return promise_rejects(t,
- new TypeError,
- np.setHeaderValue('zer\0o'),
- 'setHeaderValue() should throw if passed \\0');
- })
- .then(() => {
- return promise_rejects(t,
- new TypeError,
- np.setHeaderValue('\rcarriage'),
- 'setHeaderValue() should throw if passed \\r');
- })
- .then(() => {
- return promise_rejects(t,
- new TypeError,
- np.setHeaderValue('newline\n'),
- 'setHeaderValue() should throw if passed \\n');
- })
- .then(() => {
- return promise_rejects(t,
- new TypeError,
- np.setHeaderValue(),
- 'setHeaderValue() should throw if passed undefined');
- })
- .then(() => np.enable().then(() => np.getState()))
- .then(state => {
- expect_navigation_preload_state(state, true, 'null',
- 'enable() should not change header');
- });
- }, 'getState');
-
-// This test sends commands to a worker to call enable()/disable()/getState().
-// It checks the results from the worker and verifies that they match the
-// navigation preload state accessible from the page.
-promise_test(t => {
- const scope = 'resources/get-state-worker';
- const script = 'resources/get-state-worker.js';
- var worker;
- var registration;
-
- return service_worker_unregister_and_register(t, script, scope)
- .then(r => {
- registration = r;
- add_completion_callback(() => registration.unregister());
- worker = registration.installing;
- return wait_for_state(t, worker, 'activated');
- })
- .then(() => {
- // Call getState().
- return post_and_wait_for_reply(worker, 'getState');
- })
- .then(data => {
- return Promise.all([data, registration.navigationPreload.getState()]);
- })
- .then(states => {
- expect_navigation_preload_state(states[0], false, 'true',
- 'default state (from worker)');
- expect_navigation_preload_state(states[1], false, 'true',
- 'default state (from page)');
- // Call enable() and then getState().
- return post_and_wait_for_reply(worker, 'enable');
- })
- .then(data => {
- assert_equals(data, undefined, 'enable() should resolve to undefined');
- return Promise.all([
- post_and_wait_for_reply(worker, 'getState'),
- registration.navigationPreload.getState()
- ]);
- })
- .then(states => {
- expect_navigation_preload_state(states[0], true, 'true',
- 'state after enable() (from worker)');
- expect_navigation_preload_state(states[1], true, 'true',
- 'state after enable() (from page)');
- // Call disable() and then getState().
- return post_and_wait_for_reply(worker, 'disable');
- })
- .then(data => {
- assert_equals(data, undefined,
- '.disable() should resolve to undefined');
- return Promise.all([
- post_and_wait_for_reply(worker, 'getState'),
- registration.navigationPreload.getState()
- ]);
- })
- .then(states => {
- expect_navigation_preload_state(states[0], false, 'true',
- 'state after disable() (from worker)');
- expect_navigation_preload_state(states[1], false, 'true',
- 'state after disable() (from page)');
- return post_and_wait_for_reply(worker, 'setHeaderValue');
- })
- .then(data => {
- assert_equals(data, undefined,
- '.setHeaderValue() should resolve to undefined');
- return Promise.all([
- post_and_wait_for_reply(worker, 'getState'),
- registration.navigationPreload.getState()]);
- })
- .then(states => {
- expect_navigation_preload_state(
- states[0], false, 'insightful',
- 'state after setHeaderValue() (from worker)');
- expect_navigation_preload_state(
- states[1], false, 'insightful',
- 'state after setHeaderValue() (from page)');
- });
- }, 'getState from a worker');
-
-// This tests navigation preload API when there is no active worker. It calls
-// the API from the main page and then from the worker itself.
-promise_test(t => {
- const scope = 'resources/wait-for-activate-worker';
- const script = 'resources/wait-for-activate-worker.js';
- var registration;
- var np;
- return service_worker_unregister_and_register(t, script, scope)
- .then(r => {
- registration = r;
- np = registration.navigationPreload;
- add_completion_callback(() => registration.unregister());
- return Promise.all([
- promise_rejects(
- t, 'InvalidStateError', np.enable(),
- 'enable should reject if there is no active worker'),
- promise_rejects(
- t, 'InvalidStateError', np.disable(),
- 'disable should reject if there is no active worker'),
- promise_rejects(
- t, 'InvalidStateError', np.setHeaderValue('umm'),
- 'setHeaderValue should reject if there is no active worker')]);
- })
- .then(() => np.getState())
- .then(state => {
- expect_navigation_preload_state(state, false, 'true',
- 'state before activation');
- return post_and_wait_for_reply(registration.installing, 'ping');
- })
- .then(result => assert_equals(result, 'PASS'));
- }, 'no active worker');
-</script>
-</body>

Powered by Google App Engine
This is Rietveld 408576698