OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 | 2 |
3 <script src="/js-test-resources/js-test.js"></script> | 3 <script src="/js-test-resources/js-test.js"></script> |
4 <script src="post-blob-content-type-tests.js"></script> | 4 <script src="post-blob-content-type-tests.js"></script> |
5 <script type="text/javascript"> | 5 <script type="text/javascript"> |
6 description("Test verifies that content MIME type is set correctly " + | 6 description("Test verifies that content MIME type is set correctly " + |
7 "when Blob is sent using " + | 7 "when Blob is sent using " + |
8 "<a href='http://www.w3.org/TR/XMLHttpRequest/#the-send-method'>XM
LHttpRequest synchronously.</a>"); | 8 "<a href='http://www.w3.org/TR/XMLHttpRequest/#the-send-method'>XM
LHttpRequest synchronously.</a>"); |
9 | 9 |
10 var xhr; | 10 var xhr; |
11 var expectedMimeType; | 11 var expectedMimeType; |
12 | 12 |
13 function runSyncTests() { | 13 function runSyncTests() { |
14 var testCount = xhrBlobTestCases.length; | 14 var testCount = xhrBlobTestCases.length; |
15 for (var i = 0; i < testCount; i++) { | 15 for (var i = 0; i < testCount; i++) { |
16 var testCase = xhrBlobTestCases[i]; | 16 var testCase = xhrBlobTestCases[i]; |
17 var mime = testCase.mime; | 17 var mime = testCase.mime; |
18 var file = testCase.file; | 18 var file = testCase.file; |
19 var expectedMime = testCase.expectedMime; | 19 var expectedMime = testCase.expectedMime; |
20 var url = testCase.url !== undefined ? testCase.url + xhrBlobTestUrl :
xhrBlobTestUrl; | 20 var url = testCase.url !== undefined ? testCase.url + xhrBlobTestUrl :
xhrBlobTestUrl; |
21 url += testCase.allowOrigin || ""; | 21 url += testCase.allowOrigin || ""; |
22 if (testCase.shouldThrow !== undefined) { | 22 if (testCase.shouldThrow !== undefined) { |
23 try { | 23 try { |
24 testBlobContentTypeSync(url, file, mime, expectedMime); | 24 testBlobContentTypeSync(url, file, mime, expectedMime, testCas
e.closeBeforeSend); |
25 } catch (e) { | 25 } catch (e) { |
26 testPassed("Exception should be thrown.") | 26 testPassed("Exception should be thrown.") |
27 } | 27 } |
28 } else { | 28 } else { |
29 testBlobContentTypeSync(url, file, mime, expectedMime); | 29 testBlobContentTypeSync(url, file, mime, expectedMime); |
30 } | 30 } |
31 } | 31 } |
32 } | 32 } |
33 | 33 |
34 function testBlobContentTypeSync(url, fileName, mimeType, expectedMime) { | 34 function testBlobContentTypeSync(url, fileName, mimeType, expectedMime, closeB
eforeSend) { |
35 var blob; | 35 var blob; |
36 if (fileName) { | 36 if (fileName) { |
37 if (mimeType !== "") | 37 if (mimeType !== "") |
38 blob = new File(["Test content"], fileName, {type: mimeType}); | 38 blob = new File(["Test content"], fileName, {type: mimeType}); |
39 else | 39 else |
40 blob = new File(["Test content"], fileName); | 40 blob = new File(["Test content"], fileName); |
41 } else { | 41 } else { |
42 if (mimeType !== "") | 42 if (mimeType !== "") |
43 blob = new Blob(["Test content"], {type: mimeType}); | 43 blob = new Blob(["Test content"], {type: mimeType}); |
44 else | 44 else |
45 blob = new Blob(["Test content"]); | 45 blob = new Blob(["Test content"]); |
46 } | 46 } |
47 | 47 |
48 xhr = new XMLHttpRequest(); | 48 xhr = new XMLHttpRequest(); |
49 xhr.open("POST", url, false); | 49 xhr.open("POST", url, false); |
| 50 if (closeBeforeSend) |
| 51 blob.close(); |
50 xhr.send(blob); | 52 xhr.send(blob); |
51 if (xhr.status === 200) { | 53 if (xhr.status === 200) { |
52 postedMimeType = JSON.parse(xhr.response)['content-type'] || ""; | 54 postedMimeType = JSON.parse(xhr.response)['content-type'] || ""; |
53 shouldBeEqualToString("postedMimeType", expectedMime); | 55 shouldBeEqualToString("postedMimeType", expectedMime); |
54 } else | 56 } else |
55 testFailed("Unknown error"); | 57 testFailed("Unknown error"); |
56 | 58 |
57 } | 59 } |
58 | 60 |
59 runSyncTests(); | 61 runSyncTests(); |
60 | 62 |
61 </script> | 63 </script> |
OLD | NEW |