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