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); |
+ }); |
}); |
}, |