| Index: chrome/test/data/extensions/api_test/tab_capture/api_tests.js
|
| diff --git a/chrome/test/data/extensions/api_test/tab_capture/api_tests.js b/chrome/test/data/extensions/api_test/tab_capture/api_tests.js
|
| index a100d25a084c094a22b901e980a12df1183e2b3e..06e50224d81085cdf51fe6444356aeba934a3ca7 100644
|
| --- a/chrome/test/data/extensions/api_test/tab_capture/api_tests.js
|
| +++ b/chrome/test/data/extensions/api_test/tab_capture/api_tests.js
|
| @@ -29,25 +29,53 @@ chrome.test.runTests([
|
| },
|
|
|
| function getCapturedTabs() {
|
| - var activeStream = null;
|
| + chrome.tabs.create({active:true}, function(secondTab) {
|
| + // chrome.tabCapture.capture() will only capture the active tab.
|
| + chrome.test.assertTrue(secondTab.active);
|
|
|
| - var capturedTabsAfterClose = function(infos) {
|
| - chrome.test.assertEq(1, infos.length);
|
| - chrome.test.assertEq('stopped', infos[0].status);
|
| - chrome.test.succeed();
|
| - };
|
| + function checkInfoForSecondTabHasStatus(infos, status) {
|
| + for (var i = 0; i < infos.length; ++i) {
|
| + if (infos[i].tabId == secondTab) {
|
| + chrome.test.assertNe(null, status);
|
| + chrome.test.assertEq(status, infos[i].status);
|
| + chrome.test.assertEq(false, infos[i].fullscreen);
|
| + return;
|
| + }
|
| + }
|
| + }
|
|
|
| - var capturedTabsAfterOpen = function(infos) {
|
| - chrome.test.assertEq(1, infos.length);
|
| - chrome.test.assertEq('active', infos[0].status);
|
| - activeStream.stop();
|
| - tabCapture.getCapturedTabs(capturedTabsAfterClose);
|
| - };
|
| + // Step 4: After the second tab is closed, check that getCapturedTabs()
|
| + // returns no info at all about the second tab. http://crbug.com/338445
|
| + chrome.tabs.onRemoved.addListener(function() {
|
| + tabCapture.getCapturedTabs(function checkNoInfos(infos) {
|
| + checkInfoForSecondTabHasStatus(infos, null);
|
| + chrome.test.succeed();
|
| + });
|
| + });
|
|
|
| - tabCapture.capture({audio: true, video: true}, function(stream) {
|
| - chrome.test.assertTrue(!!stream);
|
| - activeStream = stream;
|
| - tabCapture.getCapturedTabs(capturedTabsAfterOpen);
|
| + var activeStream = null;
|
| +
|
| + // Step 3: After the stream is stopped, check that getCapturedTabs()
|
| + // returns 'stopped' capturing status for the second tab.
|
| + var capturedTabsAfterStopCapture = function(infos) {
|
| + checkInfoForSecondTabHasStatus(infos, 'stopped');
|
| + chrome.tabs.remove(secondTab.id);
|
| + };
|
| +
|
| + // Step 2: After the stream is started, check that getCapturedTabs()
|
| + // returns 'active' capturing status for the second tab.
|
| + var capturedTabsAfterStartCapture = function(infos) {
|
| + checkInfoForSecondTabHasStatus(infos, 'active');
|
| + activeStream.stop();
|
| + tabCapture.getCapturedTabs(capturedTabsAfterStopCapture);
|
| + };
|
| +
|
| + // Step 1: Start capturing the second tab (the currently active tab).
|
| + tabCapture.capture({audio: true, video: true}, function(stream) {
|
| + chrome.test.assertTrue(!!stream);
|
| + activeStream = stream;
|
| + tabCapture.getCapturedTabs(capturedTabsAfterStartCapture);
|
| + });
|
| });
|
| },
|
|
|
|
|