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..1c3845dc2fad53d5b312e8b91a3cc5030ce850e7 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/navigation-redirect-body.html |
@@ -0,0 +1,58 @@ |
+<!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 hiddenInput = document.createElement('input'); |
falken
2016/01/25 04:51:57
nit: snake_case here and throughout
horo
2016/01/25 05:14:51
Done.
|
+ hiddenInput.type = 'hidden'; |
+ hiddenInput.name = 'data'; |
+ hiddenInput.value = 'test data'; |
+ var submitButton = document.createElement('input'); |
+ submitButton.type = 'submit'; |
+ submitButton.value = 'submit'; |
+ form.appendChild(hiddenInput); |
+ form.appendChild(submitButton); |
+ 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 frameLoadPromise = new Promise(function(resolve) { |
falken
2016/01/25 04:51:57
I think function(resolve)'s body needs an addition
horo
2016/01/25 05:14:51
Done.
|
+ frame.addEventListener('load', function() { |
falken
2016/01/25 04:51:57
same with this function()
horo
2016/01/25 05:14:51
Done.
|
+ resolve(frame.contentWindow.document.body.innerText); |
+ }, false); |
+ }); |
+ submitButton.click(); |
+ return frameLoadPromise; |
+ }) |
+ .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'); |
+ console.log(decodeURIComponent(text)); |
falken
2016/01/25 04:51:57
debug output?
horo
2016/01/25 05:14:51
Removed
|
+ return registration.unregister(); |
+ }); |
+ }, 'Navigation redirection must clear body'); |
+</script> |
+</body> |