Index: LayoutTests/http/tests/serviceworker/fetch-event.html |
diff --git a/LayoutTests/http/tests/serviceworker/fetch-event.html b/LayoutTests/http/tests/serviceworker/fetch-event.html |
index fd6aba2e8819d1a0dda77511515e1417841a0341..7963b0c10723dc36f9420990045f056810283730 100644 |
--- a/LayoutTests/http/tests/serviceworker/fetch-event.html |
+++ b/LayoutTests/http/tests/serviceworker/fetch-event.html |
@@ -149,5 +149,51 @@ async_test(function(t) { |
})) |
.catch(unreached_rejection(t)); |
}, 'Service Worker fetches other file in fetch event'); |
+ |
+async_test(function(t) { |
+ var scope = 'resources/simple.html?form-post'; |
+ var frame_name = 'xhr-post-frame'; |
+ service_worker_unregister_and_register(t, worker, scope) |
+ .then(function(registration) { |
+ return wait_for_update(t, registration); |
+ }) |
+ .then(t.step_func(function(sw) { |
+ return wait_for_state(t, sw, 'activated'); |
+ })) |
+ .then(t.step_func(function(sw) { |
+ return new Promise(function(resolve) { |
+ var frame = document.createElement('iframe'); |
+ frame.name = frame_name; |
+ document.body.appendChild(frame); |
+ var form = document.createElement('form'); |
+ form.target = frame_name; |
+ form.action = scope; |
+ form.method = 'post'; |
+ var input1 = document.createElement('input'); |
+ input1.type = 'text'; |
+ input1.value = 'testValue1'; |
+ input1.name = 'testName1' |
+ form.appendChild(input1); |
+ var input2 = document.createElement('input'); |
+ input2.type = 'text'; |
+ input2.value = 'testValue2'; |
+ input2.name = 'testName2' |
+ form.appendChild(input2); |
+ document.body.appendChild(form); |
+ frame.onload = function() { |
+ document.body.removeChild(form); |
+ resolve(frame); |
+ }; |
+ form.submit(); |
+ }); |
+ })) |
+ .then(t.step_func(function(frame) { |
+ assert_equals(frame.contentDocument.body.textContent, |
+ 'POST:testName1=testValue1&testName2=testValue2'); |
+ document.body.removeChild(frame); |
+ return service_worker_unregister_and_done(t, scope); |
+ })) |
+ .catch(unreached_rejection(t)); |
+ }, 'Service Worker responds to fetch event with POST form'); |
</script> |
</body> |