| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | |
| 3 <head> | |
| 4 <script src="/js-test-resources/js-test.js"></script> | |
| 5 </head> | |
| 6 <body> | |
| 7 <script src="post-blob-content-type-tests.js"></script> | |
| 8 <script type="text/javascript"> | |
| 9 description("Test verifies that content MIME type is set correctly " + | |
| 10 "when Blob is sent using " + | |
| 11 "<a href='http://www.w3.org/TR/XMLHttpRequest/#the-send-method'>
XMLHttpRequest asynchronously.</a>"); | |
| 12 | 2 |
| 13 var xhr; | 3 <script src="/js-test-resources/js-test.js"></script> |
| 14 var expectedMimeType; | 4 <script src="post-blob-content-type-tests.js"></script> |
| 15 window.jsTestIsAsync = true; | 5 <script type="text/javascript"> |
| 16 var asyncTestCase = 0; | 6 description("Test verifies that content MIME type is set correctly " + |
| 7 "when Blob is sent using " + |
| 8 "<a href='http://www.w3.org/TR/XMLHttpRequest/#the-send-method'>XM
LHttpRequest asynchronously.</a>"); |
| 17 | 9 |
| 18 function runNextAsyncTest() { | 10 var xhr; |
| 19 asyncTestCase++; | 11 var expectedMimeType; |
| 20 runAsyncTests(); | 12 window.jsTestIsAsync = true; |
| 21 } | 13 var asyncTestCase = 0; |
| 22 | 14 |
| 23 function reportResult(e) { | 15 function runNextAsyncTest() { |
| 24 if (xhr.status === 200) { | 16 asyncTestCase++; |
| 25 expectedMimeType = JSON.parse(xhr.response)['content-type'] || ""; | 17 runAsyncTests(); |
| 26 shouldBeEqualToString("expectedMimeType", xhrBlobTestCases[asyncTest
Case].expectedMime); | 18 } |
| 27 } else if (xhr.status === 0 && xhrBlobTestCases[asyncTestCase].shouldThr
ow){ | |
| 28 testPassed("Cross-origin request without CORS headers should fail.")
; | |
| 29 } else { | |
| 30 testFailed("Unknown error"); | |
| 31 } | |
| 32 | 19 |
| 33 runNextAsyncTest(); | 20 function reportResult(e) { |
| 34 } | 21 var testCase = xhrBlobTestCases[asyncTestCase]; |
| 22 if (xhr.status === 200) { |
| 23 postedMimeType = JSON.parse(xhr.response)['content-type'] || ""; |
| 24 shouldBeEqualToString("postedMimeType", testCase.expectedMime); |
| 25 } else if (xhr.status === 0 && testCase.shouldThrow){ |
| 26 testPassed("Cross-origin request without CORS headers should fail."); |
| 27 } else { |
| 28 testFailed("Unknown error"); |
| 29 } |
| 35 | 30 |
| 36 function runAsyncTests() { | 31 runNextAsyncTest(); |
| 37 if (asyncTestCase >= xhrBlobTestCases.length) { | 32 } |
| 38 finishJSTest(); | |
| 39 return; | |
| 40 } else { | |
| 41 var mime = xhrBlobTestCases[asyncTestCase].mime; | |
| 42 var url = xhrBlobTestCases[asyncTestCase].url !== undefined ? xhrBlo
bTestCases[asyncTestCase].url + xhrBlobTestUrl : xhrBlobTestUrl; | |
| 43 url += xhrBlobTestCases[asyncTestCase].allowOrigin || ""; | |
| 44 if (xhrBlobTestCases[asyncTestCase].shouldThrow !== undefined) { | |
| 45 try { | |
| 46 testBlobContentTypeAsync(url, mime); | |
| 47 } catch (e) { | |
| 48 testPassed("Exception should be thrown.") | |
| 49 runNextAsyncTest(); | |
| 50 } | |
| 51 } else | |
| 52 testBlobContentTypeAsync(url, mime); | |
| 53 } | |
| 54 } | |
| 55 | 33 |
| 56 function testBlobContentTypeAsync(url, mimeType) { | 34 function runAsyncTests() { |
| 57 var blob; | 35 if (asyncTestCase >= xhrBlobTestCases.length) { |
| 58 if (mimeType !== "") | 36 finishJSTest(); |
| 59 blob = new Blob(["Test content"], {type: mimeType}); | 37 return; |
| 60 else | 38 } else { |
| 61 blob = new Blob(["Test content"]); | 39 var testCase = xhrBlobTestCases[asyncTestCase]; |
| 40 var mime = testCase.mime; |
| 41 var file = testCase.file; |
| 42 var url = testCase.url !== undefined ? testCase.url + xhrBlobTestUrl :
xhrBlobTestUrl; |
| 43 url += testCase.allowOrigin || ""; |
| 44 if (testCase.shouldThrow !== undefined) { |
| 45 try { |
| 46 testBlobContentTypeAsync(url, mime, file); |
| 47 } catch (e) { |
| 48 testPassed("Exception should be thrown.") |
| 49 runNextAsyncTest(); |
| 50 } |
| 51 } else |
| 52 testBlobContentTypeAsync(url, mime); |
| 53 } |
| 54 } |
| 62 | 55 |
| 63 xhr = new XMLHttpRequest(); | 56 function testBlobContentTypeAsync(url, mimeType, fileName) { |
| 64 xhr.onloadend = reportResult; | 57 var blob; |
| 65 xhr.open("POST", url, true); | 58 if (fileName) { |
| 66 xhr.send(blob); | 59 if (mimeType !== "") |
| 67 } | 60 blob = new File(["Test content"], fileName, {type: mimeType}); |
| 61 else |
| 62 blob = new File(["Test content"], fileName); |
| 63 } else { |
| 64 if (mimeType !== "") |
| 65 blob = new Blob(["Test content"], {type: mimeType}); |
| 66 else |
| 67 blob = new Blob(["Test content"]); |
| 68 } |
| 68 | 69 |
| 69 runAsyncTests(); | 70 xhr = new XMLHttpRequest(); |
| 71 xhr.onloadend = reportResult; |
| 72 xhr.open("POST", url, true); |
| 73 xhr.send(blob); |
| 74 } |
| 70 | 75 |
| 71 </script> | 76 runAsyncTests(); |
| 72 </body> | 77 |
| 73 </html> | 78 </script> |
| OLD | NEW |