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

Side by Side Diff: chrome/test/data/extensions/api_test/mime_handler_view/index.js

Issue 2940553003: Failure in reading Blob URL should results in network error
Patch Set: . Created 3 years, 6 months 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
« no previous file with comments | « no previous file | chrome/test/data/extensions/api_test/streams_private/handle_mime_type/background.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 'use strict'; 5 'use strict';
6 6
7 // Tests don't start running until an async call to 7 // Tests don't start running until an async call to
8 // chrome.mimeHandlerPrivate.getStreamInfo() completes, so queue any messages 8 // chrome.mimeHandlerPrivate.getStreamInfo() completes, so queue any messages
9 // received until that point. 9 // received until that point.
10 var queuedMessages = []; 10 var queuedMessages = [];
11 11
12 function queueMessage(event) { 12 function queueMessage(event) {
13 queuedMessages.push(event); 13 queuedMessages.push(event);
14 } 14 }
15 15
16 window.addEventListener('message', queueMessage, false); 16 window.addEventListener('message', queueMessage, false);
17 17
18 var streamDetails; 18 var streamDetails;
19 19
20 function fetchUrl(url) { 20 function fetchUrl(url) {
21 return new Promise(function(resolve, reject) { 21 return new Promise(function(resolve, reject) {
22 var request = new XMLHttpRequest(); 22 var request = new XMLHttpRequest();
23 request.onreadystatechange = function() { 23 request.onload = function() {
24 if (request.readyState == 4) { 24 if (request.readyState == 4) {
25 resolve({ 25 resolve({
26 status: request.status, 26 status: request.status,
27 data: request.responseText, 27 data: request.responseText,
28 }); 28 });
29 } 29 }
30 }; 30 };
31 request.onerror = function(e) {
32 // Network error.
33 resolve({
34 status: request.status,
35 data: 'error',
36 });
37 }
31 request.open('GET', streamDetails.streamUrl, true); 38 request.open('GET', streamDetails.streamUrl, true);
32 request.send(); 39 request.send();
33 }); 40 });
34 } 41 }
35 42
36 function expectSuccessfulRead(response) { 43 function expectSuccessfulRead(response) {
37 chrome.test.assertEq(200, response.status); 44 chrome.test.assertEq(200, response.status);
38 chrome.test.assertEq('content to read\n', response.data); 45 chrome.test.assertEq('content to read\n', response.data);
39 } 46 }
40 47
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 }); 88 });
82 var contentRead = fetchUrl(streamDetails.streamUrl) 89 var contentRead = fetchUrl(streamDetails.streamUrl)
83 .then(expectSuccessfulRead); 90 .then(expectSuccessfulRead);
84 Promise.all([printMessageArrived, contentRead]).then(chrome.test.succeed); 91 Promise.all([printMessageArrived, contentRead]).then(chrome.test.succeed);
85 }, 92 },
86 93
87 function testAbort() { 94 function testAbort() {
88 checkStreamDetails('testAbort.csv', false); 95 checkStreamDetails('testAbort.csv', false);
89 chrome.mimeHandlerPrivate.abortStream(function() { 96 chrome.mimeHandlerPrivate.abortStream(function() {
90 fetchUrl(streamDetails.streamUrl).then(function(response) { 97 fetchUrl(streamDetails.streamUrl).then(function(response) {
91 chrome.test.assertEq(404, response.status); 98 chrome.test.assertEq(0, response.status);
92 chrome.test.assertEq('', response.data); 99 chrome.test.assertEq('error', response.data);
93 chrome.test.succeed(); 100 chrome.test.succeed();
94 }); 101 });
95 }); 102 });
96 }, 103 },
97 104
98 function testNonAsciiHeaders() { 105 function testNonAsciiHeaders() {
99 checkStreamDetails('testNonAsciiHeaders.csv', false); 106 checkStreamDetails('testNonAsciiHeaders.csv', false);
100 chrome.test.assertEq(undefined, 107 chrome.test.assertEq(undefined,
101 streamDetails.responseHeaders['Content-Disposition']); 108 streamDetails.responseHeaders['Content-Disposition']);
102 chrome.test.assertEq(undefined, 109 chrome.test.assertEq(undefined,
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 // Run the test for data URLs. 176 // Run the test for data URLs.
170 if (streamInfo.originalUrl.startsWith("data:")) { 177 if (streamInfo.originalUrl.startsWith("data:")) {
171 window.removeEventListener('message', queueMessage); 178 window.removeEventListener('message', queueMessage);
172 // Long data URLs get truncated. 179 // Long data URLs get truncated.
173 if (streamInfo.originalUrl == "data:") 180 if (streamInfo.originalUrl == "data:")
174 chrome.test.runTests([testsByName['testDataUrlLong']]); 181 chrome.test.runTests([testsByName['testDataUrlLong']]);
175 else 182 else
176 chrome.test.runTests([testsByName['testDataUrl']]); 183 chrome.test.runTests([testsByName['testDataUrl']]);
177 } 184 }
178 }); 185 });
OLDNEW
« no previous file with comments | « no previous file | chrome/test/data/extensions/api_test/streams_private/handle_mime_type/background.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698