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 |