Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html b/third_party/WebKit/LayoutTests/http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html |
| index 2e974649812152bda2a99298c8dcc2ef9580ea8a..774b59e1aea737837d4d6301a16dff9647da7882 100644 |
| --- a/third_party/WebKit/LayoutTests/http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html |
| +++ b/third_party/WebKit/LayoutTests/http/tests/fetch/referrer/serviceworker-echo-referrer-from-default-document.html |
| @@ -3,8 +3,55 @@ |
| <title>Echo referrer in ServiceWorker: from a document with the default referrer policy</title> |
| <script src = "/resources/testharness.js"></script> |
| <script src = "/resources/testharnessreport.js"></script> |
| +<script src = "/serviceworker/resources/test-helpers.js"></script> |
| +<script src = "/fetch/resources/fetch-test-helpers.js"></script> |
| +<script src = "/fetch/resources/fetch-test-options.js"></script> |
| <script> |
| -location = |
| - '/fetch/referrer/resources/serviceworker-echo-referrer-from-default-document.html'; |
| +const SCRIPT = '/fetch/referrer/resources/echo-referrer.js'; |
| +const SCOPE = '/fetch/referrer/resources/empty.html'; |
| +const URL = BASE_ORIGIN + '/fetch/resources/echo'; |
| +const REFERRER_SOURCE = BASE_ORIGIN + SCOPE; |
| + |
| +const TESTS = [ |
| + [URL, 'about:client', |
| + '', REFERRER_SOURCE, 'no-referrer-when-downgrade'], |
| + [URL, 'about:client', 'no-referrer', |
| + '', 'no-referrer'], |
| + [URL, 'about:client', 'no-referrer-when-downgrade', |
| + REFERRER_SOURCE, 'no-referrer-when-downgrade'], |
| + [URL, 'about:client', 'origin', |
| + BASE_ORIGIN + '/', 'origin'], |
| + [URL, 'about:client', 'origin-when-cross-origin', |
| + REFERRER_SOURCE, 'origin-when-cross-origin'], |
| + [URL, 'about:client', 'unsafe-url', |
| + REFERRER_SOURCE, 'unsafe-url'], |
| +]; |
| + |
| +promise_test(t => { |
| + return service_worker_unregister_and_register(t, SCRIPT, SCOPE).then(r => { |
| + add_result_callback(() => r.unregister()); |
| + return wait_for_state(t, r.installing, 'activated'); |
| + }).then(() => { |
|
nhiroki
2016/07/29 03:54:46
Can you put "})" and ".then" to separate lines:
r
|
| + return with_iframe(SCOPE); |
| + }).then(frame => { |
|
nhiroki
2016/07/29 03:54:46
Can you add "add_completion_callback(() => frame.r
yhirano
2016/07/29 05:50:19
Adding it breaks the test: Maybe it's executed whe
nhiroki
2016/07/29 06:21:21
I suspect you used add_result_callback() instead o
yhirano
2016/07/29 06:26:43
Ah, sorry, you're right. Fixed.
|
| + for (const [url, referrer, referrer_policy, expected_referrer, |
| + expected_referrer_policy] of TESTS) { |
| + promise_test(t => { |
| + // Use |frame.contentWindow.fetch| so that the fetch request |
| + // is intercepted by the service worker. |
| + return frame.contentWindow.fetch(url, |
| + {referrer: referrer, referrerPolicy: referrer_policy}) |
| + .then(res => res.text()) |
| + .then(text => { |
| + assert_equals(text, JSON.stringify({ |
| + referrer: expected_referrer, |
| + referrerPolicy: expected_referrer_policy, |
| + })); |
| + }); |
| + }, `url = ${url}, referrer = ${referrer}, policy = ${referrer_policy}`); |
| + } |
| + done(); |
|
nhiroki
2016/07/29 03:54:46
"done()" might not be necessary because outer prom
yhirano
2016/07/29 05:50:19
Done.
|
| + }); |
| + }); |
| </script> |
| </html> |