Chromium Code Reviews| 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..a73e11ac5379fcaad5b699bee80224623bd2e853 |
| --- /dev/null |
| +++ b/LayoutTests/http/tests/xmlhttprequest/post-formdata.html |
| @@ -0,0 +1,96 @@ |
| +<!DOCTYPE html> |
| +<html> |
| +<head> |
|
esprehn
2013/11/04 19:28:08
We often omit the html, head and body elements.
pwnall-personal
2013/11/04 23:01:21
Done.
Also did this in the scripts around that I u
|
| + <script src="/js-test-resources/js-test-pre.js"></script> |
| +</head> |
| +<body> |
| + <script type="text/javascript"> |
|
esprehn
2013/11/04 19:28:08
remove type attr
pwnall-personal
2013/11/04 23:01:21
Done.
|
| + 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: 'bareFile=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> |
| +</body> |
| +</html> |