| // META: global=window,worker |
| // META: script=../resources/utils.js |
| // META: script=/common/utils.js |
| // META: script=/common/get-host-info.sub.js |
| |
| function testUpload(desc, url, method, createBody, expectedBody) { |
| const requestInit = {method}; |
| promise_test(async function(){ |
| const body = createBody(); |
| if (body) { |
| requestInit["body"] = body; |
| } |
| const resp = await fetch(url, requestInit); |
| const text = await resp.text(); |
| assert_equals(text, expectedBody); |
| }, desc); |
| } |
| |
| const url = RESOURCES_DIR + "echo-content.h2.py" |
| |
| testUpload("Fetch with POST with empty ReadableStream", url, |
| "POST", |
| () => { |
| return new ReadableStream({start: controller => { |
| controller.close(); |
| }}) |
| }, |
| ""); |
| |
| testUpload("Fetch with POST with ReadableStream", url, |
| "POST", |
| () => { |
| return new ReadableStream({start: controller => { |
| const encoder = new TextEncoder(); |
| controller.enqueue(encoder.encode("Test")); |
| controller.close(); |
| }}) |
| }, |
| "Test"); |