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

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: Answered feedback, part 2. 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> 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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698