| Index: third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/request-upload.js
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/request-upload.js b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/request-upload.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6a0f0fa8ca2626f75fd22f9ababeed6993238f8b
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/request-upload.js
|
| @@ -0,0 +1,127 @@
|
| +if (this.document === undefined) {
|
| + importScripts("/resources/testharness.js");
|
| + importScripts("../resources/utils.js");
|
| +}
|
| +
|
| +function testUpload(desc, url, method, createBody, expectedBody) {
|
| + var requestInit = {"method": method}
|
| + promise_test(function(test){
|
| + let body = createBody();
|
| + if (body)
|
| + requestInit["body"] = body;
|
| + return fetch(url, requestInit).then(function(resp) {
|
| + return resp.text().then((text)=> {
|
| + assert_equals(text, expectedBody);
|
| + });
|
| + });
|
| + }, desc);
|
| +}
|
| +
|
| +function testUploadFailure(desc, url, method, createBody) {
|
| + const requestInit = {"method": method};
|
| + promise_test(test => {
|
| + let body = createBody();
|
| + if (body)
|
| + requestInit["body"] = body;
|
| + return promise_rejects(new TypeError(), fetch(url, requestInit));
|
| + }, desc);
|
| +}
|
| +
|
| +var url = RESOURCES_DIR + "echo-content.py"
|
| +
|
| +testUpload("Fetch with PUT with body", url,
|
| + "PUT",
|
| + () => "Request's body",
|
| + "Request's body");
|
| +testUpload("Fetch with POST with text body", url,
|
| + "POST",
|
| + () => "Request's body",
|
| + "Request's body");
|
| +testUpload("Fetch with POST with URLSearchParams body", url,
|
| + "POST",
|
| + () => new URLSearchParams("name=value"),
|
| + "name=value");
|
| +testUpload("Fetch with POST with Blob body", url,
|
| + "POST",
|
| + () => new Blob(["Test"]),
|
| + "Test");
|
| +testUpload("Fetch with POST with ArrayBuffer body", url,
|
| + "POST",
|
| + () => new ArrayBuffer(4),
|
| + "\0\0\0\0");
|
| +testUpload("Fetch with POST with Uint8Array body", url,
|
| + "POST",
|
| + () => new Uint8Array(4),
|
| + "\0\0\0\0");
|
| +testUpload("Fetch with POST with Int8Array body", url,
|
| + "POST",
|
| + () => new Int8Array(4),
|
| + "\0\0\0\0");
|
| +testUpload("Fetch with POST with Float32Array body", url,
|
| + "POST",
|
| + () => new Float32Array(1),
|
| + "\0\0\0\0");
|
| +testUpload("Fetch with POST with Float64Array body", url,
|
| + "POST",
|
| + () => new Float64Array(1),
|
| + "\0\0\0\0\0\0\0\0");
|
| +testUpload("Fetch with POST with DataView body", url,
|
| + "POST",
|
| + () => new DataView(new ArrayBuffer(8), 0, 4),
|
| + "\0\0\0\0");
|
| +testUpload("Fetch with POST with Blob body with mime type", url,
|
| + "POST",
|
| + () => new Blob(["Test"], { type: "text/maybe" }),
|
| + "Test");
|
| +testUpload("Fetch with POST with ReadableStream", url,
|
| + "POST",
|
| + () => {
|
| + new ReadableStream({start: controller => {
|
| + const encoder = new TextEncoder();
|
| + controller.enqueue(encoder.encode("Test"));
|
| + controller.close();
|
| + }})
|
| + },
|
| + "Test");
|
| +testUploadFailure("Fetch with POST with ReadableStream containing String", url,
|
| + "POST",
|
| + () => {
|
| + new ReadableStream({start: controller => {
|
| + controller.enqueue("Test");
|
| + controller.close();
|
| + }})
|
| + });
|
| +testUploadFailure("Fetch with POST with ReadableStream containing null", url,
|
| + "POST",
|
| + () => {
|
| + new ReadableStream({start: controller => {
|
| + controller.enqueue(null);
|
| + controller.close();
|
| + }})
|
| + });
|
| +testUploadFailure("Fetch with POST with ReadableStream containing number", url,
|
| + "POST",
|
| + () => {
|
| + new ReadableStream({start: controller => {
|
| + controller.enqueue(99);
|
| + controller.close();
|
| + }})
|
| + });
|
| +testUploadFailure("Fetch with POST with ReadableStream containing ArrayBuffer", url,
|
| + "POST",
|
| + () => {
|
| + new ReadableStream({start: controller => {
|
| + controller.enqueue(new ArrayBuffer());
|
| + controller.close();
|
| + }})
|
| + });
|
| +testUploadFailure("Fetch with POST with ReadableStream containing Blob", url,
|
| + "POST",
|
| + () => {
|
| + new ReadableStream({start: controller => {
|
| + controller.enqueue(new Blob());
|
| + controller.close();
|
| + }})
|
| + });
|
| +
|
| +done();
|
|
|