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 " + |
kinuko
2013/11/15 02:16:31
nit: usually I don't think you need to indent js c
pwnall-personal
2013/11/15 03:36:42
Done.
| |
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 |