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

Unified Diff: chrome/test/data/extensions/api_test/mime_handler_view/embedded.js

Issue 797183005: Add a mimeHandler extension API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@streams-lifetime
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
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]]);
+});

Powered by Google App Engine
This is Rietveld 408576698