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

Side by Side 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: rebase 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 unified diff | Download patch
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';
6
5 window.addEventListener('message', function(event) { 7 window.addEventListener('message', function(event) {
6 // Echo the data back to the source window. 8 // Echo the data back to the source window.
7 event.source.postMessage(event.data, '*'); 9 event.source.postMessage(event.data, '*');
8 }, false); 10 }, false);
11
12 var streamDetails;
13
14 function fetchUrl(url) {
15 return new Promise(function(resolve, reject) {
16 var request = new XMLHttpRequest();
17 request.onreadystatechange = function() {
18 if (request.readyState == 4) {
19 resolve({
20 status: request.status,
21 data: request.responseText,
22 });
23 }
24 };
25 request.open('GET', streamDetails.streamUrl, true);
26 request.send();
27 });
28 }
29
30 var tests = [
31 function testBasic() {
32 chrome.test.assertEq(
33 'chrome-extension://oickdpebdnfbgkcaoklfcdhjniefkcji/testBasic.csv',
34 streamDetails.originalUrl);
35 chrome.test.assertEq('text/csv', streamDetails.mimeType);
36 chrome.test.assertTrue(streamDetails.tabId != -1);
37 chrome.test.assertFalse(streamDetails.embedded);
38
39 fetchUrl(streamDetails.streamUrl).then(function(response) {
40 chrome.test.assertEq(200, response.status);
41 chrome.test.assertEq('content to read\n', response.data);
42 chrome.test.succeed();
43 });
44 },
45
46 function testEmbedded() {
47 chrome.test.assertEq(
48 'chrome-extension://oickdpebdnfbgkcaoklfcdhjniefkcji/testEmbedded.csv',
49 streamDetails.originalUrl);
50 chrome.test.assertEq('text/csv', streamDetails.mimeType);
51 chrome.test.assertTrue(streamDetails.tabId != -1);
52 chrome.test.assertTrue(streamDetails.embedded);
53
54 fetchUrl(streamDetails.streamUrl).then(function(response) {
55 chrome.test.assertEq(200, response.status);
56 chrome.test.assertEq('content to read\n', response.data);
57 chrome.test.succeed();
58 });
59 },
60
61 function testAbort() {
62 chrome.mimeHandlerPrivate.abortStream(function() {
63 fetchUrl(streamDetails.streamUrl).then(function(response) {
64 chrome.test.assertEq(404, response.status);
65 chrome.test.assertEq('', response.data);
66 chrome.test.succeed();
67 });
68 });
69 },
70 ];
71
72 var testsByName = {};
73 for (let i = 0; i < tests.length; i++) {
74 testsByName[tests[i].name] = tests[i];
75 }
76
77 chrome.mimeHandlerPrivate.getStreamInfo(function(streamInfo) {
78 if (!streamInfo)
79 return;
80
81 // If the name of the file we're handling matches the name of a test, run that
82 // test.
83 var urlComponents = streamInfo.originalUrl.split('/');
84 var test = urlComponents[urlComponents.length - 1].split('.')[0];
85 streamDetails = streamInfo;
86 if (testsByName[test])
87 chrome.test.runTests([testsByName[test]]);
88 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698