Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1213)

Side by Side Diff: LayoutTests/http/tests/xmlhttprequest/post-blob-content-type-async.html

Issue 57483002: Implement File constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Addressed most feedback. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698