| Index: third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-redirect-body.html
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-redirect-body.html b/third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-redirect-body.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b06649d6be11afc22b6f8e206557b8400ebd5481
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-redirect-body.html
|
| @@ -0,0 +1,57 @@
|
| +<!DOCTYPE html>
|
| +<title>Service Worker: Navigation redirection must clear body</title>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script src="../resources/get-host-info.js?pipe=sub"></script>
|
| +<script src="resources/test-helpers.js"></script>
|
| +<body>
|
| +<script>
|
| +promise_test(function(t) {
|
| + var scope = 'resources/navigation-redirect-body.php';
|
| + var script = 'resources/navigation-redirect-body-worker.js';
|
| + var registration;
|
| + var frame = document.createElement('frame');
|
| + frame.src = 'about:blank';
|
| + frame.name = 'target_frame';
|
| + frame.id = 'frame';
|
| + document.body.appendChild(frame);
|
| + var form = document.createElement('form');
|
| + form.method = 'POST';
|
| + form.action = scope;
|
| + form.target = 'target_frame';
|
| + var hidden_input = document.createElement('input');
|
| + hidden_input.type = 'hidden';
|
| + hidden_input.name = 'data';
|
| + hidden_input.value = 'test data';
|
| + var submit_button = document.createElement('input');
|
| + submit_button.type = 'submit';
|
| + submit_button.value = 'submit';
|
| + form.appendChild(hidden_input);
|
| + form.appendChild(submit_button);
|
| + document.body.appendChild(form);
|
| + return service_worker_unregister_and_register(t, script, scope)
|
| + .then(function(r) {
|
| + registration = r;
|
| + return wait_for_state(t, registration.installing, 'activated');
|
| + })
|
| + .then(function() {
|
| + var frame_load_promise = new Promise(function(resolve) {
|
| + frame.addEventListener('load', function() {
|
| + resolve(frame.contentWindow.document.body.innerText);
|
| + }, false);
|
| + });
|
| + submit_button.click();
|
| + return frame_load_promise;
|
| + })
|
| + .then(function(text) {
|
| + document.body.removeChild(form);
|
| + document.body.removeChild(frame);
|
| + var request_uri = decodeURIComponent(text);
|
| + assert_equals(
|
| + request_uri,
|
| + '/serviceworker/resources/navigation-redirect-body.php?redirect');
|
| + return registration.unregister();
|
| + });
|
| + }, 'Navigation redirection must clear body');
|
| +</script>
|
| +</body>
|
|
|