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

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

Issue 878773002: Add a test for mime handler view iframes and make them work on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
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 be6582391b15164c16d1a7d1ff66183a84c1d329..c6d887e92bcb3a219f1bfea25a92968faf9f6248 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
@@ -4,10 +4,13 @@
'use strict';
-window.addEventListener('message', function(event) {
- // Echo the data back to the source window.
- event.source.postMessage(event.data, '*');
-}, false);
+var queuedMessages = [];
raymes 2015/01/28 00:54:58 nit: Please add a comment about why messages are q
Sam McNally 2015/01/28 01:54:43 Done.
+
+function queueMessage(event) {
+ queuedMessages.push(event);
+}
+
+window.addEventListener('message', queueMessage, false);
var streamDetails;
@@ -27,35 +30,51 @@ function fetchUrl(url) {
});
}
+function expectSuccessfulRead(response) {
+ chrome.test.assertEq(200, response.status);
+ chrome.test.assertEq('content to read\n', response.data);
+}
+
var tests = [
function testBasic() {
- chrome.test.assertEq(
- 'chrome-extension://oickdpebdnfbgkcaoklfcdhjniefkcji/testBasic.csv',
- streamDetails.originalUrl);
+ chrome.test.assertTrue(
+ streamDetails.originalUrl.indexOf('testBasic.csv') != -1);
chrome.test.assertEq('text/csv', streamDetails.mimeType);
chrome.test.assertTrue(streamDetails.tabId != -1);
chrome.test.assertFalse(streamDetails.embedded);
raymes 2015/01/28 00:54:59 Can we also do a basic check on the headers now th
Sam McNally 2015/01/28 01:54:43 Done.
- fetchUrl(streamDetails.streamUrl).then(function(response) {
- chrome.test.assertEq(200, response.status);
- chrome.test.assertEq('content to read\n', response.data);
- chrome.test.succeed();
- });
+ fetchUrl(streamDetails.streamUrl)
+ .then(expectSuccessfulRead)
+ .then(chrome.test.succeed);
},
function testEmbedded() {
- chrome.test.assertEq(
- 'chrome-extension://oickdpebdnfbgkcaoklfcdhjniefkcji/testEmbedded.csv',
- streamDetails.originalUrl);
+ chrome.test.assertTrue(
+ streamDetails.originalUrl.indexOf('testEmbedded.csv') != -1);
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();
+ fetchUrl(streamDetails.streamUrl)
+ .then(expectSuccessfulRead)
+ .then(chrome.test.succeed);
+ },
+
+ function testIframe() {
+ chrome.test.assertTrue(
+ streamDetails.originalUrl.indexOf('testIframe.csv') != -1);
+ chrome.test.assertEq('text/csv', streamDetails.mimeType);
+ chrome.test.assertTrue(streamDetails.tabId != -1);
+ chrome.test.assertTrue(streamDetails.embedded);
+ var printMessageArrived = new Promise(function(resolve, reject) {
+ window.addEventListener('message', function(event) {
+ chrome.test.assertEq('print', event.data.type);
+ resolve();
+ }, false);
});
+ var contentRead = fetchUrl(streamDetails.streamUrl)
+ .then(expectSuccessfulRead);
+ Promise.all([printMessageArrived, contentRead]).then(chrome.test.succeed);
},
function testAbort() {
@@ -67,6 +86,29 @@ var tests = [
});
});
},
+
+ function testPostMessage() {
+ var expectedMessages = ['hey', 100, 25.0];
+ var messagesReceived = 0;
+ function handleMessage(event) {
+ if (event.data == 'succeed' &&
+ messagesReceived == expectedMessages.length) {
+ chrome.test.succeed();
+ } else if (event.data == 'fail') {
+ chrome.test.fail();
+ } else if (event.data == expectedMessages[messagesReceived]) {
+ event.source.postMessage(event.data, '*');
+ messagesReceived++;
+ } else {
+ chrome.test.fail('unexpected message ' + event.data);
+ }
+ }
+ window.addEventListener('message', handleMessage, false);
+ while (queuedMessages.length) {
+ handleMessage(queuedMessages.unshift());
+ }
+
+ }
];
var testsByName = {};
@@ -83,6 +125,8 @@ chrome.mimeHandlerPrivate.getStreamInfo(function(streamInfo) {
var urlComponents = streamInfo.originalUrl.split('/');
var test = urlComponents[urlComponents.length - 1].split('.')[0];
streamDetails = streamInfo;
- if (testsByName[test])
+ if (testsByName[test]) {
+ window.removeEventListener('message', queueMessage);
chrome.test.runTests([testsByName[test]]);
+ }
});

Powered by Google App Engine
This is Rietveld 408576698