| Index: LayoutTests/http/tests/xmlhttprequest/post-formdata.html
|
| diff --git a/LayoutTests/http/tests/xmlhttprequest/post-formdata.html b/LayoutTests/http/tests/xmlhttprequest/post-formdata.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1f7b081840b92e79137efa83a539794ac1fdde74
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/xmlhttprequest/post-formdata.html
|
| @@ -0,0 +1,91 @@
|
| +<!DOCTYPE html>
|
| +
|
| +<script src="/js-test-resources/js-test.js"></script>
|
| +<script>
|
| + description("Test verifies that FormData is sent correctly when using " +
|
| + "<a href='http://www.w3.org/TR/XMLHttpRequest/#the-send-method'>XMLHttpRequest asynchronously.</a>");
|
| +
|
| + var xhrFormDataTestUrl = '/xmlhttprequest/resources/multipart-post-echo.php';
|
| + var xhrFormDataTestCases = [{
|
| + data: { string: 'string value' },
|
| + result: "string=string value"
|
| + }, {
|
| + data: { bareBlob: new Blob(['blob-value']) },
|
| + result: 'bareBlob=blob:application/octet-stream:blob-value'
|
| + }, {
|
| + data: { mimeBlob: new Blob(['blob-value'], { type: 'text/html' }) },
|
| + result: 'mimeBlob=blob:text/html:blob-value'
|
| + }, {
|
| + data: {
|
| + namedBlob: {
|
| + value: new Blob(['blob-value']),
|
| + fileName: 'blob-file.txt'
|
| + }
|
| + },
|
| + result: 'namedBlob=blob-file.txt:application/octet-stream:blob-value'
|
| + }, {
|
| + data: { bareFile: new File(['file-value'], 'file-name.txt') },
|
| + result: 'bareFile=file-name.txt:application/octet-stream:file-value'
|
| + }, {
|
| + data: {
|
| + mimeFile: new File(['file-value'], 'file-name.html', { type: 'text/html' })
|
| + },
|
| + result: 'mimeFile=file-name.html:text/html:file-value'
|
| + }, {
|
| + data: {
|
| + renamedFile: {
|
| + value: new File(['file-value'], 'file-name.html', { type: 'text/html' }),
|
| + fileName: 'file-name-override.html'
|
| + }
|
| + },
|
| + result: 'renamedFile=file-name-override.html:text/html:file-value'
|
| + }];
|
| +
|
| + var xhr;
|
| + var expectedMimeType;
|
| + window.jsTestIsAsync = true;
|
| + var asyncTestCase = 0;
|
| +
|
| + function runNextAsyncTest() {
|
| + asyncTestCase++;
|
| + runAsyncTests();
|
| + }
|
| +
|
| + function reportResult(e) {
|
| + var testCase = xhrFormDataTestCases[asyncTestCase];
|
| + if (xhr.status === 200) {
|
| + echoResult = xhr.response;
|
| + shouldBeEqualToString("echoResult", testCase.result);
|
| + } else {
|
| + testFailed("Unknown error");
|
| + }
|
| +
|
| + runNextAsyncTest();
|
| + }
|
| +
|
| + function runAsyncTests() {
|
| + if (asyncTestCase >= xhrFormDataTestCases.length) {
|
| + finishJSTest();
|
| + return;
|
| + } else {
|
| + var testCase = xhrFormDataTestCases[asyncTestCase];
|
| + var formData = new FormData();
|
| + for (var fieldName in testCase.data) {
|
| + fieldValue = testCase.data[fieldName];
|
| + if (fieldValue.constructor === Object) {
|
| + formData.append(fieldName, fieldValue.value, fieldValue.fileName);
|
| + } else {
|
| + formData.append(fieldName, fieldValue);
|
| + }
|
| + }
|
| +
|
| + xhr = new XMLHttpRequest();
|
| + xhr.onloadend = reportResult;
|
| + xhr.open("POST", xhrFormDataTestUrl, true);
|
| + xhr.send(formData);
|
| + }
|
| + }
|
| +
|
| + runAsyncTests();
|
| +
|
| +</script>
|
|
|