OLD | NEW |
---|---|
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.mimeHandler.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.mimeHandler.getStreamInfo(function(streamInfo) { | |
78 if (!streamInfo) | |
79 return; | |
80 | |
81 var urlComponents = streamInfo.originalUrl.split('/'); | |
82 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.
| |
83 streamDetails = streamInfo; | |
84 if (testsByName[test]) | |
85 chrome.test.runTests([testsByName[test]]); | |
86 }); | |
OLD | NEW |