servo/tests/wpt/web-platform-tests/fetch/api/basic/request-upload.h2.any.js

39 lines
1,006 B
JavaScript

// 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");