| 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..7892382fbffa0c2363e621ba7fe700e97409057c 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,87 @@
|
| // 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;
|
| +
|
| + // If the name of the file we're handling matches the name of a test, run that
|
| + // test.
|
| + var urlComponents = streamInfo.originalUrl.split('/');
|
| + var test = urlComponents[urlComponents.length - 1].split('.')[0];
|
| + streamDetails = streamInfo;
|
| + if (testsByName[test])
|
| + chrome.test.runTests([testsByName[test]]);
|
| +});
|
|
|