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

Unified Diff: chrome/browser/media/chrome_media_stream_infobar_browsertest.cc

Issue 19820004: Per the Chromium style guide/dos-and-donts doc, don't inline non-"cheap (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 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
Index: chrome/browser/media/chrome_media_stream_infobar_browsertest.cc
===================================================================
--- chrome/browser/media/chrome_media_stream_infobar_browsertest.cc (revision 213248)
+++ chrome/browser/media/chrome_media_stream_infobar_browsertest.cc (working copy)
@@ -41,129 +41,166 @@
static const char kVideoOnlyCallConstraints[] = "'{video: true}'";
static const char kOkGotStream[] = "ok-got-stream";
-// Media stream infobar test for WebRTC.
+
+// MediaStreamInfoBarTest -----------------------------------------------------
+
class MediaStreamInfobarTest : public InProcessBrowserTest {
public:
- virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
- // This test expects to run with fake devices but real UI.
- command_line->AppendSwitch(switches::kUseFakeDeviceForMediaStream);
- EXPECT_FALSE(command_line->HasSwitch(switches::kUseFakeUIForMediaStream))
- << "Since this test tests the UI we want the real UI!";
- }
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
+
protected:
- content::WebContents* LoadTestPageInTab() {
- EXPECT_TRUE(test_server()->Start());
+ content::WebContents* LoadTestPageInTab();
- ui_test_utils::NavigateToURL(
- browser(), test_server()->GetURL(kMainWebrtcTestHtmlPage));
- return browser()->tab_strip_model()->GetActiveWebContents();
- }
-
// TODO(phoglund): upstream and reuse in other browser tests.
MediaStreamInfoBarDelegate* GetUserMediaAndWaitForInfobar(
content::WebContents* tab_contents,
- const std::string& constraints) {
- content::WindowedNotificationObserver infobar_added(
- chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED,
- content::NotificationService::AllSources());
+ const std::string& constraints);
- // Request user media: this will launch the media stream info bar.
- GetUserMedia(constraints, tab_contents);
-
- // Wait for the bar to pop up, then return it
- infobar_added.Wait();
- content::Details<InfoBarAddedDetails> details(infobar_added.details());
- MediaStreamInfoBarDelegate* media_infobar =
- details.ptr()->AsMediaStreamInfoBarDelegate();
- return media_infobar;
- }
-
void CloseInfobarInTab(content::WebContents* tab_contents,
- MediaStreamInfoBarDelegate* infobar) {
- content::WindowedNotificationObserver infobar_removed(
- chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED,
- content::NotificationService::AllSources());
+ MediaStreamInfoBarDelegate* infobar);
- InfoBarService* infobar_service =
- InfoBarService::FromWebContents(tab_contents);
- infobar_service->RemoveInfoBar(infobar);
-
- infobar_removed.Wait();
- }
-
// Convenience method which executes the provided javascript in the context
// of the provided web contents and returns what it evaluated to.
std::string ExecuteJavascript(const std::string& javascript,
- content::WebContents* tab_contents) {
- std::string result;
- EXPECT_TRUE(content::ExecuteScriptAndExtractString(
- tab_contents, javascript, &result));
- return result;
- }
+ content::WebContents* tab_contents);
- void TestAcceptOnInfobar(content::WebContents* tab_contents) {
- TestAcceptOnInfobarWithSpecificConstraints(tab_contents,
- kAudioVideoCallConstraints);
- }
-
+ void TestAcceptOnInfobar(content::WebContents* tab_contents);
void TestAcceptOnInfobarWithSpecificConstraints(
- content::WebContents* tab_contents, const std::string& constraints) {
- MediaStreamInfoBarDelegate* media_infobar =
- GetUserMediaAndWaitForInfobar(tab_contents, constraints);
+ content::WebContents* tab_contents, const std::string& constraints);
+ void TestDenyOnInfobar(content::WebContents* tab_contents);
+ void TestDenyWithSpecificConstraints(content::WebContents* tab_contents,
+ const std::string& constraints);
+ void TestDismissOnInfobar(content::WebContents* tab_contents);
- media_infobar->Accept();
+ void GetUserMedia(const std::string& constraints,
+ content::WebContents* tab_contents);
+};
- CloseInfobarInTab(tab_contents, media_infobar);
+void MediaStreamInfobarTest::SetUpCommandLine(CommandLine* command_line) {
+ // This test expects to run with fake devices but real UI.
+ command_line->AppendSwitch(switches::kUseFakeDeviceForMediaStream);
+ EXPECT_FALSE(command_line->HasSwitch(switches::kUseFakeUIForMediaStream))
+ << "Since this test tests the UI we want the real UI!";
+}
- // Wait for WebRTC to call the success callback.
- EXPECT_TRUE(PollingWaitUntil(
- "obtainGetUserMediaResult()", kOkGotStream, tab_contents));
- }
+content::WebContents* MediaStreamInfobarTest::LoadTestPageInTab() {
+ EXPECT_TRUE(test_server()->Start());
- void TestDenyOnInfobar(content::WebContents* tab_contents) {
- return TestDenyWithSpecificConstraints(tab_contents,
- kAudioVideoCallConstraints);
- }
+ ui_test_utils::NavigateToURL(
+ browser(), test_server()->GetURL(kMainWebrtcTestHtmlPage));
+ return browser()->tab_strip_model()->GetActiveWebContents();
+}
- void TestDenyWithSpecificConstraints(content::WebContents* tab_contents,
- const std::string& constraints) {
- MediaStreamInfoBarDelegate* media_infobar =
- GetUserMediaAndWaitForInfobar(tab_contents, constraints);
+MediaStreamInfoBarDelegate*
+ MediaStreamInfobarTest::GetUserMediaAndWaitForInfobar(
+ content::WebContents* tab_contents,
+ const std::string& constraints) {
+ content::WindowedNotificationObserver infobar_added(
+ chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED,
+ content::NotificationService::AllSources());
- media_infobar->Cancel();
+ // Request user media: this will launch the media stream info bar.
+ GetUserMedia(constraints, tab_contents);
- CloseInfobarInTab(tab_contents, media_infobar);
+ // Wait for the bar to pop up, then return it
+ infobar_added.Wait();
+ content::Details<InfoBarAddedDetails> details(infobar_added.details());
+ MediaStreamInfoBarDelegate* media_infobar =
+ details.ptr()->AsMediaStreamInfoBarDelegate();
+ return media_infobar;
+}
- // Wait for WebRTC to call the fail callback.
- EXPECT_TRUE(PollingWaitUntil("obtainGetUserMediaResult()",
- kFailedWithErrorPermissionDenied,
- tab_contents));
- }
+void MediaStreamInfobarTest::CloseInfobarInTab(
+ content::WebContents* tab_contents,
+ MediaStreamInfoBarDelegate* infobar) {
+ content::WindowedNotificationObserver infobar_removed(
+ chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED,
+ content::NotificationService::AllSources());
- void TestDismissOnInfobar(content::WebContents* tab_contents) {
- MediaStreamInfoBarDelegate* media_infobar =
- GetUserMediaAndWaitForInfobar(tab_contents, kAudioVideoCallConstraints);
+ InfoBarService* infobar_service =
+ InfoBarService::FromWebContents(tab_contents);
+ infobar_service->RemoveInfoBar(infobar);
- media_infobar->InfoBarDismissed();
+ infobar_removed.Wait();
+}
- CloseInfobarInTab(tab_contents, media_infobar);
+std::string MediaStreamInfobarTest::ExecuteJavascript(
+ const std::string& javascript,
+ content::WebContents* tab_contents) {
+ std::string result;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractString(
+ tab_contents, javascript, &result));
+ return result;
+}
- // A dismiss should be treated like a deny.
- EXPECT_TRUE(PollingWaitUntil("obtainGetUserMediaResult()",
- kFailedWithErrorPermissionDenied,
- tab_contents));
- }
+void MediaStreamInfobarTest::TestAcceptOnInfobar(
+ content::WebContents* tab_contents) {
+ TestAcceptOnInfobarWithSpecificConstraints(tab_contents,
+ kAudioVideoCallConstraints);
+}
- void GetUserMedia(const std::string& constraints,
- content::WebContents* tab_contents) {
- // Request user media: this will launch the media stream info bar.
- EXPECT_EQ("ok-requested",
- ExecuteJavascript(
- base::StringPrintf("getUserMedia(%s);", constraints.c_str()),
- tab_contents));
- }
-};
+void MediaStreamInfobarTest::TestAcceptOnInfobarWithSpecificConstraints(
+ content::WebContents* tab_contents,
+ const std::string& constraints) {
+ MediaStreamInfoBarDelegate* media_infobar =
+ GetUserMediaAndWaitForInfobar(tab_contents, constraints);
+ media_infobar->Accept();
+
+ CloseInfobarInTab(tab_contents, media_infobar);
+
+ // Wait for WebRTC to call the success callback.
+ EXPECT_TRUE(PollingWaitUntil("obtainGetUserMediaResult()", kOkGotStream,
+ tab_contents));
+}
+
+void MediaStreamInfobarTest::TestDenyOnInfobar(
+ content::WebContents* tab_contents) {
+ return TestDenyWithSpecificConstraints(tab_contents,
+ kAudioVideoCallConstraints);
+}
+
+void MediaStreamInfobarTest::TestDenyWithSpecificConstraints(
+ content::WebContents* tab_contents,
+ const std::string& constraints) {
+ MediaStreamInfoBarDelegate* media_infobar =
+ GetUserMediaAndWaitForInfobar(tab_contents, constraints);
+
+ media_infobar->Cancel();
+
+ CloseInfobarInTab(tab_contents, media_infobar);
+
+ // Wait for WebRTC to call the fail callback.
+ EXPECT_TRUE(PollingWaitUntil("obtainGetUserMediaResult()",
+ kFailedWithErrorPermissionDenied, tab_contents));
+}
+
+void MediaStreamInfobarTest::TestDismissOnInfobar(
+ content::WebContents* tab_contents) {
+ MediaStreamInfoBarDelegate* media_infobar =
+ GetUserMediaAndWaitForInfobar(tab_contents, kAudioVideoCallConstraints);
+
+ media_infobar->InfoBarDismissed();
+
+ CloseInfobarInTab(tab_contents, media_infobar);
+
+ // A dismiss should be treated like a deny.
+ EXPECT_TRUE(PollingWaitUntil("obtainGetUserMediaResult()",
+ kFailedWithErrorPermissionDenied, tab_contents));
+}
+
+void MediaStreamInfobarTest::GetUserMedia(const std::string& constraints,
+ content::WebContents* tab_contents) {
+ // Request user media: this will launch the media stream info bar.
+ EXPECT_EQ("ok-requested",
+ ExecuteJavascript(
+ base::StringPrintf("getUserMedia(%s);", constraints.c_str()),
+ tab_contents));
+}
+
+
+// Actual tests ---------------------------------------------------------------
+
IN_PROC_BROWSER_TEST_F(MediaStreamInfobarTest, TestAllowingUserMedia) {
content::WebContents* tab_contents = LoadTestPageInTab();
TestAcceptOnInfobar(tab_contents);
« no previous file with comments | « chrome/browser/devtools/devtools_window.cc ('k') | chrome/browser/password_manager/password_manager_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698