| Index: chrome/browser/media/chrome_media_stream_infobar_browsertest.cc
|
| diff --git a/chrome/browser/media/chrome_media_stream_infobar_browsertest.cc b/chrome/browser/media/chrome_media_stream_infobar_browsertest.cc
|
| index bddc113b4bb5d8f89be6b9010cc8032abbf1a4c3..6ae9540266364dcaf2e89f1e15da07848a31c42c 100644
|
| --- a/chrome/browser/media/chrome_media_stream_infobar_browsertest.cc
|
| +++ b/chrome/browser/media/chrome_media_stream_infobar_browsertest.cc
|
| @@ -16,6 +16,7 @@
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_tabstrip.h"
|
| #include "chrome/browser/ui/tabs/tab_strip_model.h"
|
| +#include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "chrome/test/base/test_switches.h"
|
| @@ -29,12 +30,44 @@
|
| #include "net/test/spawned_test_server/spawned_test_server.h"
|
|
|
|
|
| -// MediaStreamInfoBarTest -----------------------------------------------------
|
| +class MockPermissionBubbleView : public PermissionBubbleView {
|
| + public:
|
| + MockPermissionBubbleView() : shown_(false) {}
|
| + virtual ~MockPermissionBubbleView() {}
|
| +
|
| + virtual void SetDelegate(Delegate* delegate) OVERRIDE {
|
| + }
|
| +
|
| + virtual void Show(
|
| + const std::vector<PermissionBubbleRequest*>& requests,
|
| + const std::vector<bool>& accept_state,
|
| + bool customization_mode) OVERRIDE {
|
| +LOG(INFO) << "Showing view... " << requests[0]->GetMessageText();
|
| + shown_ = true;
|
| + }
|
| +
|
| + virtual bool CanAcceptRequestUpdate() OVERRIDE {
|
| + return true;
|
| + }
|
| +
|
| + virtual void Hide() OVERRIDE {
|
| + shown_ = false;
|
| + }
|
| +
|
| + virtual bool IsVisible() OVERRIDE {
|
| + return shown_;
|
| + }
|
| +
|
| + private:
|
| + bool shown_;
|
| +};
|
| +
|
| +// MediaStreamBrowserTest -----------------------------------------------------
|
|
|
| -class MediaStreamInfoBarTest : public WebRtcTestBase {
|
| +class MediaStreamBrowserTest : public WebRtcTestBase {
|
| public:
|
| - MediaStreamInfoBarTest() {}
|
| - virtual ~MediaStreamInfoBarTest() {}
|
| + MediaStreamBrowserTest() {}
|
| + virtual ~MediaStreamBrowserTest() {}
|
|
|
| // InProcessBrowserTest:
|
| virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
|
| @@ -77,6 +110,10 @@ class MediaStreamInfoBarTest : public WebRtcTestBase {
|
| controller->Deny(true, result);
|
| }
|
|
|
| + int GetBubblesQueueSize(PermissionBubbleManager* mgr) {
|
| + return static_cast<int>(mgr->requests_.size());
|
| + }
|
| +
|
| // Executes stopLocalStream() in the test page, which frees up an already
|
| // acquired mediastream.
|
| bool StopLocalStream(content::WebContents* tab_contents) {
|
| @@ -100,32 +137,34 @@ class MediaStreamInfoBarTest : public WebRtcTestBase {
|
| content::MediaStreamRequestResult result,
|
| scoped_ptr<content::MediaStreamUI> ui) {}
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(MediaStreamInfoBarTest);
|
| + MockPermissionBubbleView mock_view_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(MediaStreamBrowserTest);
|
| };
|
|
|
| // Actual tests ---------------------------------------------------------------
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest, TestAllowingUserMedia) {
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest, TestAllowingUserMedia) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
| GetUserMediaAndAccept(tab_contents);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest, TestDenyingUserMedia) {
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest, TestDenyingUserMedia) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
| GetUserMediaAndDeny(tab_contents);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest, TestDismissingInfobar) {
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest, TestDismissingPrompt) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
| GetUserMediaAndDismiss(tab_contents);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest, TestDenyingUserMediaIncognito) {
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest, TestDenyingUserMediaIncognito) {
|
| content::WebContents* tab_contents = LoadTestPageInIncognitoTab();
|
| GetUserMediaAndDeny(tab_contents);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest,
|
| TestAcceptThenDenyWhichShouldBeSticky) {
|
| #if defined(OS_WIN) && defined(USE_ASH)
|
| // Disable this test in Metro+Ash for now (http://crbug.com/262796).
|
| @@ -138,35 +177,42 @@ IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| GetUserMediaAndAccept(tab_contents);
|
| GetUserMediaAndDeny(tab_contents);
|
|
|
| - // Should fail with permission denied right away with no infobar popping up.
|
| + // Should fail with permission denied right away with no prompt popping up.
|
| GetUserMedia(tab_contents, kAudioVideoCallConstraints);
|
| EXPECT_TRUE(test::PollingWaitUntil("obtainGetUserMediaResult()",
|
| kFailedWithPermissionDeniedError,
|
| tab_contents));
|
| - InfoBarService* infobar_service =
|
| - InfoBarService::FromWebContents(tab_contents);
|
| - EXPECT_EQ(0u, infobar_service->infobar_count());
|
| +
|
| + if (!PermissionBubbleManager::Enabled()) {
|
| + InfoBarService* infobar_service =
|
| + InfoBarService::FromWebContents(tab_contents);
|
| + EXPECT_EQ(0u, infobar_service->infobar_count());
|
| + } else {
|
| + PermissionBubbleManager* manager =
|
| + PermissionBubbleManager::FromWebContents(tab_contents);
|
| + EXPECT_EQ(0, GetBubblesQueueSize(manager));
|
| + }
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest, TestAcceptIsNotSticky) {
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest, TestAcceptIsNotSticky) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
|
|
| - // If accept were sticky the second call would hang because it hangs if an
|
| - // infobar does not pop up.
|
| + // If accept were sticky the second call would hang because it hangs if a
|
| + // prompt does not pop up.
|
| GetUserMediaAndAccept(tab_contents);
|
| GetUserMediaAndAccept(tab_contents);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest, TestDismissIsNotSticky) {
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest, TestDismissIsNotSticky) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
|
|
| - // If dismiss were sticky the second call would hang because it hangs if an
|
| - // infobar does not pop up.
|
| + // If dismiss were sticky the second call would hang because it hangs if a
|
| + // prompt does not pop up.
|
| GetUserMediaAndDismiss(tab_contents);
|
| GetUserMediaAndDismiss(tab_contents);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest,
|
| TestDenyingThenClearingStickyException) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
|
|
| @@ -179,7 +225,7 @@ IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| settings_map->ClearSettingsForOneType(
|
| CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA);
|
|
|
| - // If an infobar is not launched now, this will hang.
|
| + // If a prompt is not shown now, this will hang.
|
| GetUserMediaAndDeny(tab_contents);
|
| }
|
|
|
| @@ -191,7 +237,7 @@ IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| #define MAYBE_DenyingMicDoesNotCauseStickyDenyForCameras \
|
| DenyingMicDoesNotCauseStickyDenyForCameras
|
| #endif
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest,
|
| MAYBE_DenyingMicDoesNotCauseStickyDenyForCameras) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
|
|
| @@ -202,7 +248,7 @@ IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| kVideoOnlyCallConstraints);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(MediaStreamInfoBarTest,
|
| +IN_PROC_BROWSER_TEST_F(MediaStreamBrowserTest,
|
| DenyingCameraDoesNotCauseStickyDenyForMics) {
|
| content::WebContents* tab_contents = LoadTestPageInTab();
|
|
|
|
|