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

Unified Diff: chrome/test/data/extensions/api_test/tab_capture/experimental/test.js

Issue 11038021: Implement Chrome Extension TabCapture API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 2 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
« no previous file with comments | « chrome/test/data/extensions/api_test/tab_capture/experimental/manifest.json ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/extensions/api_test/tab_capture/experimental/test.js
diff --git a/chrome/test/data/extensions/api_test/tab_capture/experimental/test.js b/chrome/test/data/extensions/api_test/tab_capture/experimental/test.js
new file mode 100644
index 0000000000000000000000000000000000000000..789287d23614e22d6ab95d3cc08064711d8383e7
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/tab_capture/experimental/test.js
@@ -0,0 +1,117 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var tabCapture = chrome.tabCapture;
+
+chrome.test.runTests([
+
+ function captureInvalidTab() {
+ var tabMediaRequestCallback = function(stream) {
+ chrome.test.assertEq(undefined, stream);
+ chrome.test.assertLastError('Could not find the specified tab.');
+ chrome.test.succeed();
+ };
+
+ tabCapture.capture(-1, {audio: true, video: true},
+ tabMediaRequestCallback);
+ },
+
+ function captureTabAndVerifyStateTransitions() {
+ var tabId = -1;
+ // Tab capture events in the order they happen.
+ var tabCaptureEvents = [];
+
+ var tabMediaRequestCallback = function(stream) {
+ chrome.test.assertTrue(stream !== undefined);
+ stream.stop();
+ };
+
+ var tabCaptureListener = function(info) {
+ chrome.test.assertEq(tabId, info.tabId);
+ console.log(info.status);
+ if (info.status == 'stopped') {
+ chrome.test.assertEq('active', tabCaptureEvents.pop());
+ chrome.test.assertEq('pending', tabCaptureEvents.pop());
+ chrome.test.assertEq('requested', tabCaptureEvents.pop());
+ tabCapture.onStatusChanged.removeListener(tabCaptureListener);
+ chrome.test.succeed();
+ return;
+ }
+ tabCaptureEvents.push(info.status);
+ }
+
+ tabCapture.onStatusChanged.addListener(tabCaptureListener);
+
+ var gotTabId = function(tab) {
+ tabId = tab[0].id;
+ console.log('using tab: ' + tabId);
+ tabCapture.capture(tabId, {audio: true, video: true},
+ tabMediaRequestCallback);
+ };
+ chrome.tabs.query({active: true}, gotTabId);
+ },
+
+ function getCapturedTabs() {
+ var tabId = -1;
+ var activeStream = null;
+
+ var capturedTabsAfterClose = function(infos) {
+ chrome.test.assertEq(1, infos.length);
+ chrome.test.assertEq(tabId, infos[0].tabId);
+ chrome.test.assertEq('stopped', infos[0].status);
+ chrome.test.succeed();
+ }
+
+ var capturedTabsAfterOpen = function(infos) {
+ chrome.test.assertEq(1, infos.length);
+ chrome.test.assertEq(tabId, infos[0].tabId);
+ chrome.test.assertEq('active', infos[0].status);
+ activeStream.stop();
+ tabCapture.getCapturedTabs(capturedTabsAfterClose);
+ }
+
+ var tabMediaRequestCallback = function(stream) {
+ chrome.test.assertTrue(stream !== undefined);
+ activeStream = stream;
+ tabCapture.getCapturedTabs(capturedTabsAfterOpen);
+ };
+
+ var gotTabId = function(tab) {
+ tabId = tab[0].id;
+ console.log('using tab: ' + tabId);
+ tabCapture.capture(tabId, {audio: true, video: true},
+ tabMediaRequestCallback);
+ };
+ chrome.tabs.query({active: true}, gotTabId);
+ },
+
+ function captureSameTab() {
+ var tabId = -1;
+ var stream1 = null;
+
+ var tabMediaRequestCallback2 = function(stream) {
+ chrome.test.assertLastError(
+ 'Cannot capture a tab with an active stream.');
+ chrome.test.assertTrue(stream === undefined);
+ stream1.stop();
+ chrome.test.succeed();
+ };
+
+ var tabMediaRequestCallback = function(stream) {
+ chrome.test.assertTrue(stream !== undefined);
+ stream1 = stream;
+ tabCapture.capture(tabId, {audio: true, video: true},
+ tabMediaRequestCallback2);
+ };
+
+ var gotTabId = function(tab) {
+ tabId = tab[0].id;
+ console.log('using tab: ' + tabId);
+ tabCapture.capture(tabId, {audio: true, video: true},
+ tabMediaRequestCallback);
+ };
+ chrome.tabs.query({active: true}, gotTabId);
+ },
+
+]);
« no previous file with comments | « chrome/test/data/extensions/api_test/tab_capture/experimental/manifest.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698