Chromium Code Reviews| Index: chrome/test/data/extensions/api_test/mime_handler_view/embedded.js |
| diff --git a/chrome/test/data/extensions/api_test/mime_handler_view/embedded.js b/chrome/test/data/extensions/api_test/mime_handler_view/embedded.js |
| index 6cb22a674f88f3ec3136ab52d6d277231b288937..e4f8351bf1cebb1aff0279e85d572ef1ac698191 100644 |
| --- a/chrome/test/data/extensions/api_test/mime_handler_view/embedded.js |
| +++ b/chrome/test/data/extensions/api_test/mime_handler_view/embedded.js |
| @@ -2,7 +2,85 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +'use strict'; |
| + |
| window.addEventListener('message', function(event) { |
| // Echo the data back to the source window. |
| event.source.postMessage(event.data, '*'); |
| -}, false); |
| +}, false); |
| + |
| +var streamDetails; |
| + |
| +function fetchUrl(url) { |
| + return new Promise(function(resolve, reject) { |
| + var request = new XMLHttpRequest(); |
| + request.onreadystatechange = function() { |
| + if (request.readyState == 4) { |
| + resolve({ |
| + status: request.status, |
| + data: request.responseText, |
| + }); |
| + } |
| + }; |
| + request.open('GET', streamDetails.streamUrl, true); |
| + request.send(); |
| + }); |
| +} |
| + |
| +var tests = [ |
| + function testBasic() { |
| + chrome.test.assertEq( |
| + 'chrome-extension://oickdpebdnfbgkcaoklfcdhjniefkcji/testBasic.csv', |
| + streamDetails.originalUrl); |
| + chrome.test.assertEq('text/csv', streamDetails.mimeType); |
| + chrome.test.assertTrue(streamDetails.tabId != -1); |
| + chrome.test.assertFalse(streamDetails.embedded); |
| + |
| + fetchUrl(streamDetails.streamUrl).then(function(response) { |
| + chrome.test.assertEq(200, response.status); |
| + chrome.test.assertEq('content to read\n', response.data); |
| + chrome.test.succeed(); |
| + }); |
| + }, |
| + |
| + function testEmbedded() { |
| + chrome.test.assertEq( |
| + 'chrome-extension://oickdpebdnfbgkcaoklfcdhjniefkcji/testEmbedded.csv', |
| + streamDetails.originalUrl); |
| + chrome.test.assertEq('text/csv', streamDetails.mimeType); |
| + chrome.test.assertTrue(streamDetails.tabId != -1); |
| + chrome.test.assertTrue(streamDetails.embedded); |
| + |
| + fetchUrl(streamDetails.streamUrl).then(function(response) { |
| + chrome.test.assertEq(200, response.status); |
| + chrome.test.assertEq('content to read\n', response.data); |
| + chrome.test.succeed(); |
| + }); |
| + }, |
| + |
| + function testAbort() { |
| + chrome.mimeHandler.abortStream(function() { |
| + fetchUrl(streamDetails.streamUrl).then(function(response) { |
| + chrome.test.assertEq(404, response.status); |
| + chrome.test.assertEq('', response.data); |
| + chrome.test.succeed(); |
| + }); |
| + }); |
| + }, |
| +]; |
| + |
| +var testsByName = {}; |
| +for (let i = 0; i < tests.length; i++) { |
| + testsByName[tests[i].name] = tests[i]; |
| +} |
| + |
| +chrome.mimeHandler.getStreamInfo(function(streamInfo) { |
| + if (!streamInfo) |
| + return; |
| + |
| + var urlComponents = streamInfo.originalUrl.split('/'); |
| + var test = urlComponents[urlComponents.length - 1].split('.')[0]; |
|
raymes
2015/01/13 00:05:11
nit: maybe just add a comment about which tests ar
Sam McNally
2015/01/13 05:30:08
Done.
|
| + streamDetails = streamInfo; |
| + if (testsByName[test]) |
| + chrome.test.runTests([testsByName[test]]); |
| +}); |