Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/fetch/serviceworker-proxied/useragent-header-via-forwarding-worker.html |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/fetch/serviceworker-proxied/useragent-header-via-forwarding-worker.html b/third_party/WebKit/LayoutTests/http/tests/fetch/serviceworker-proxied/useragent-header-via-forwarding-worker.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..eab08944530fc1bc73370e91870abf245a9cc305 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/http/tests/fetch/serviceworker-proxied/useragent-header-via-forwarding-worker.html |
| @@ -0,0 +1,63 @@ |
| +<!doctype html> |
| +<script src = "/resources/testharness.js"></script> |
| +<script src = "/resources/testharnessreport.js"></script> |
| +<script src = "/serviceworker/resources/test-helpers.js"></script> |
| +<script> |
| +promise_test(test => { |
| + const SCOPE = '../resources/useragent-header-iframe.html'; |
| + const SCRIPT = '../resources/forwarding-worker.js'; |
|
horo
2016/08/24 01:38:33
missing this file?
|
| + |
| + let frame; |
| + |
| + let portToSW; |
| + |
| + function waitForMessageFromSW(expected_message) { |
| + return new Promise((resolve, reject) => { |
| + portToSW.onmessage = event => { |
| + try { |
| + assert_equals(event.data, expected_message); |
| + resolve(); |
| + } catch (e) { |
| + reject(e); |
| + } |
| + }; |
| + }); |
| + } |
| + |
| + return service_worker_unregister_and_register(test, SCRIPT, SCOPE) |
| + .then(r => { |
| + const worker = r.installing; |
| + |
| + const channel = new MessageChannel(); |
| + portToSW = channel.port1; |
| + const readyPromise = waitForMessageFromSW('READY'); |
| + worker.postMessage({port: channel.port2}, [channel.port2]); |
| + |
| + return Promise.all([wait_for_state(test, worker, 'activated'), readyPromise]); |
| + }) |
| + .then(() => { |
|
horo
2016/08/24 01:38:33
ditto
|
| + return with_iframe(SCOPE); |
| + }) |
| + .then(f => { |
| + frame = f; |
| + }) |
| + .then(() => { |
| + const onFetchPromise = waitForMessageFromSW('onfetch'); |
| + return Promise.all([frame.contentWindow.get_useragent(), onFetchPromise]); |
| + }) |
| + .then(v => { |
| + assert_true(v[0].length > 0); |
| + }) |
| + .then(() => { |
| + const onFetchPromise = waitForMessageFromSW('onfetch'); |
| + return Promise.all([frame.contentWindow.get_overridden_useragent(), onFetchPromise]); |
| + }) |
| + .then(v => { |
| + assert_equals(v[0], 'foobar'); |
| + }) |
| + .then(() => { |
| + frame.remove(); |
| + return service_worker_unregister(test, SCOPE); |
| + }); |
| + }, 'Check User-Agent header generation for requests proxied by the forwarding worker'); |
| +</script> |