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

Unified Diff: chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc

Issue 2835863003: MediaStreamDevicesControllerBrowserTest (Closed)
Patch Set: MediaStreamDevicesControllerBrowserTest Created 3 years, 8 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 | « no previous file | chrome/browser/permissions/permission_request_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
diff --git a/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc b/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
index 19d44472321bff4fa15679ba9141ed6de6b1cfa5..6900dba6da5ca31faf0fa8add3bf1dc44f72ed98 100644
--- a/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
+++ b/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
@@ -5,7 +5,10 @@
#include <string>
#include "base/bind.h"
+#include "base/callback.h"
#include "base/metrics/field_trial.h"
+#include "base/run_loop.h"
+#include "base/test/scoped_feature_list.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
@@ -14,11 +17,14 @@
#include "chrome/browser/media/webrtc/media_stream_devices_controller.h"
#include "chrome/browser/media/webrtc/webrtc_browsertest_base.h"
#include "chrome/browser/permissions/permission_context_base.h"
+#include "chrome/browser/permissions/permission_request.h"
#include "chrome/browser/permissions/permission_request_manager.h"
#include "chrome/browser/permissions/permission_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -29,7 +35,14 @@
#include "content/public/test/mock_render_process_host.h"
#include "testing/gtest/include/gtest/gtest.h"
-class MediaStreamDevicesControllerTest : public WebRtcTestBase {
+enum class TestType {
+ DEFAULT,
+ TEST_WITH_GROUPED_MEDIA_REQUESTS,
+};
+
+class MediaStreamDevicesControllerTest
+ : public WebRtcTestBase,
+ public ::testing::WithParamInterface<TestType> {
public:
// TODO(raymes): When crbug.com/606138 is finished and the
// PermissionRequestManager is used to show all prompts on Android/Desktop
@@ -84,6 +97,8 @@ class MediaStreamDevicesControllerTest : public WebRtcTestBase {
std::unique_ptr<content::MediaStreamUI> ui) {
media_stream_devices_ = devices;
media_stream_result_ = result;
+ quit_closure_.Run();
+ quit_closure_ = base::Closure();
}
protected:
@@ -106,12 +121,14 @@ class MediaStreamDevicesControllerTest : public WebRtcTestBase {
void RequestPermissions(content::WebContents* web_contents,
const content::MediaStreamRequest& request,
const content::MediaResponseCallback& callback) {
+ base::RunLoop run_loop;
+ ASSERT_TRUE(quit_closure_.is_null());
+ quit_closure_ = run_loop.QuitClosure();
MediaStreamDevicesController::RequestPermissionsWithDelegate(
request, callback, &prompt_delegate_);
+ run_loop.Run();
}
- TestPermissionPromptDelegate* prompt_delegate() { return &prompt_delegate_; }
-
// Sets the device policy-controlled |access| for |example_url_| to be for the
// selected |device_type|.
void SetDevicePolicy(DeviceType device_type, Access access) {
@@ -193,10 +210,67 @@ class MediaStreamDevicesControllerTest : public WebRtcTestBase {
GetContentSettings()->GetMicrophoneCameraState());
}
+ void SetPromptResponseType(
+ PermissionRequestManager::AutoResponseType response_type) {
+ if (base::FeatureList::IsEnabled(
+ features::kUsePermissionManagerForMediaRequests)) {
+ prompt_factory_->set_response_type(response_type);
+ } else {
+ prompt_delegate_.set_response_type(response_type);
+ }
+ }
+
+ size_t TotalPromptRequestCount() {
+ if (base::FeatureList::IsEnabled(
+ features::kUsePermissionManagerForMediaRequests)) {
+ return prompt_factory_->TotalRequestCount();
+ } else {
+ return prompt_delegate_.TotalRequestCount();
+ }
+ }
+
+ bool WasPermissionShown(ContentSettingsType type) {
+ if (base::FeatureList::IsEnabled(
+ features::kUsePermissionManagerForMediaRequests)) {
+ if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) {
+ return prompt_factory_->RequestTypeSeen(
+ PermissionRequestType::PERMISSION_MEDIASTREAM_MIC);
+ } else if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) {
+ return prompt_factory_->RequestTypeSeen(
+ PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA);
+ } else {
+ NOTREACHED();
+ return false;
+ }
+ } else {
+ return prompt_delegate_.WasRequested(type);
+ }
+ }
+
+ void ResetPromptCounters() {
+ if (base::FeatureList::IsEnabled(
+ features::kUsePermissionManagerForMediaRequests)) {
+ prompt_factory_->ResetCounts();
+ } else {
+ prompt_delegate_.Reset();
+ }
+ }
+
private:
void SetUpOnMainThread() override {
WebRtcTestBase::SetUpOnMainThread();
+ if (static_cast<TestType>(GetParam()) ==
+ TestType::TEST_WITH_GROUPED_MEDIA_REQUESTS) {
+ scoped_feature_list_.InitAndEnableFeature(
+ features::kUsePermissionManagerForMediaRequests);
+ PermissionRequestManager* manager =
+ PermissionRequestManager::FromWebContents(
+ browser()->tab_strip_model()->GetActiveWebContents());
+ prompt_factory_.reset(new MockPermissionPromptFactory(manager));
+ manager->DisplayPendingRequests();
+ }
+
// Cleanup.
media_stream_devices_.clear();
media_stream_result_ = content::NUM_MEDIA_REQUEST_RESULTS;
@@ -218,6 +292,12 @@ class MediaStreamDevicesControllerTest : public WebRtcTestBase {
video_devices);
}
+ void TearDownOnMainThread() override {
+ prompt_factory_.reset();
+
+ WebRtcTestBase::TearDownOnMainThread();
+ }
+
GURL example_url_;
const std::string example_audio_id_;
const std::string example_video_id_;
@@ -225,16 +305,21 @@ class MediaStreamDevicesControllerTest : public WebRtcTestBase {
content::MediaStreamDevices media_stream_devices_;
content::MediaStreamRequestResult media_stream_result_;
+ base::Closure quit_closure_;
+
TestPermissionPromptDelegate prompt_delegate_;
+ std::unique_ptr<MockPermissionPromptFactory> prompt_factory_;
+
+ base::test::ScopedFeatureList scoped_feature_list_;
};
// Request and allow microphone access.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndAllowMic) {
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndAllowMic) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), std::string()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -257,12 +342,12 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndAllowMic) {
}
// Request and allow camera access.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndAllowCam) {
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndAllowCam) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(std::string(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -285,12 +370,12 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndAllowCam) {
}
// Request and block microphone access.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndBlockMic) {
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndBlockMic) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), std::string()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -314,12 +399,12 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndBlockMic) {
}
// Request and block camera access.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndBlockCam) {
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndBlockCam) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(std::string(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -343,14 +428,14 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndBlockCam) {
}
// Request and allow microphone and camera access.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
RequestAndAllowMicCam) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED);
SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -378,14 +463,14 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
}
// Request and block microphone and camera access.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
RequestAndBlockMicCam) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -415,14 +500,14 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
}
// Request microphone and camera access. Allow microphone, block camera.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
RequestMicCamBlockCam) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED);
SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -451,14 +536,14 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
}
// Request microphone and camera access. Block microphone, allow camera.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
RequestMicCamBlockMic) {
InitWithUrl(GURL("https://www.example.com"));
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -488,14 +573,14 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
// Request microphone access. Requesting camera should not change microphone
// state.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
RequestCamDoesNotChangeMic) {
InitWithUrl(GURL("https://www.example.com"));
// Request mic and deny.
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), std::string()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -536,14 +621,14 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
}
// Denying mic access after camera access should still show the camera as state.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
DenyMicDoesNotChangeCam) {
InitWithUrl(GURL("https://www.example.com"));
// Request cam and allow
SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(std::string(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -576,7 +661,7 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
// Ensure the prompt is accepted if necessary such that tab specific content
// settings are updated.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), std::string()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
@@ -648,7 +733,7 @@ struct ContentSettingsTestData {
// Test all combinations of cam/mic content settings. Then tests the result of
// clicking both accept/deny on the infobar. Both cam/mic are requested.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, ContentSettings) {
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, ContentSettings) {
InitWithUrl(GURL("https://www.example.com"));
static const ContentSettingsTestData tests[] = {
// Settings that won't result in an infobar.
@@ -677,32 +762,28 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, ContentSettings) {
for (auto& test : tests) {
SetContentSettings(test.mic, test.cam);
- prompt_delegate()->Reset();
+ ResetPromptCounters();
// Accept or deny the infobar if it's showing.
if (test.ExpectMicInfobar() || test.ExpectCamInfobar()) {
if (test.accept_infobar) {
- prompt_delegate()->set_response_type(
- PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
} else {
- prompt_delegate()->set_response_type(
- PermissionRequestManager::DENY_ALL);
+ SetPromptResponseType(PermissionRequestManager::DENY_ALL);
}
} else {
- prompt_delegate()->set_response_type(PermissionRequestManager::NONE);
+ SetPromptResponseType(PermissionRequestManager::NONE);
}
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
base::Unretained(this)));
- ASSERT_LE(prompt_delegate()->TotalRequestCount(), 2u);
- ASSERT_EQ(
- test.ExpectMicInfobar(),
- prompt_delegate()->WasRequested(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
+ ASSERT_LE(TotalPromptRequestCount(), 2u);
+ ASSERT_EQ(test.ExpectMicInfobar(),
+ WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
ASSERT_EQ(test.ExpectCamInfobar(),
- prompt_delegate()->WasRequested(
- CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
+ WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
// Check the media stream result is expected and the devices returned are
// expected;
@@ -715,7 +796,7 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, ContentSettings) {
}
// Request and allow camera access on WebUI pages without prompting.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
WebUIRequestAndAllowCam) {
InitWithUrl(GURL("chrome://test-page"));
RequestPermissions(
@@ -723,27 +804,25 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
base::Unretained(this)));
- ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount());
+ ASSERT_EQ(0u, TotalPromptRequestCount());
ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result());
ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE));
ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE));
}
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
ExtensionRequestMicCam) {
InitWithUrl(GURL("chrome-extension://test-page"));
// Test that a prompt is required.
- prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL);
+ SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
base::Unretained(this)));
- ASSERT_EQ(2u, prompt_delegate()->TotalRequestCount());
- ASSERT_TRUE(prompt_delegate()->WasRequested(
- CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
- ASSERT_TRUE(
- prompt_delegate()->WasRequested(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
+ ASSERT_EQ(2u, TotalPromptRequestCount());
+ ASSERT_TRUE(WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
+ ASSERT_TRUE(WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
// Accept the prompt.
ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result());
@@ -751,12 +830,12 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE));
// Check that re-requesting allows without prompting.
- prompt_delegate()->Reset();
+ ResetPromptCounters();
RequestPermissions(
GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
base::Unretained(this)));
- ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount());
+ ASSERT_EQ(0u, TotalPromptRequestCount());
ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result());
ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE));
@@ -765,7 +844,7 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
// For Pepper request from insecure origin, even if it's ALLOW, it won't be
// changed to ASK.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
PepperRequestInsecure) {
InitWithUrl(GURL("http://www.example.com"));
SetContentSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ALLOW);
@@ -776,11 +855,11 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
content::MEDIA_OPEN_DEVICE_PEPPER_ONLY),
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
base::Unretained(this)));
- ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount());
+ ASSERT_EQ(0u, TotalPromptRequestCount());
}
// Request and block microphone and camera access with kill switch.
-IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
+IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
RequestAndKillSwitchMicCam) {
std::map<std::string, std::string> params;
params[PermissionUtil::GetPermissionString(
@@ -803,9 +882,15 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest,
base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
base::Unretained(this)));
- ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount());
+ ASSERT_EQ(0u, TotalPromptRequestCount());
ASSERT_EQ(content::MEDIA_DEVICE_KILL_SWITCH_ON, media_stream_result());
ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE));
ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE));
}
+
+INSTANTIATE_TEST_CASE_P(
+ MediaStreamDevicesControllerTestInstance,
+ MediaStreamDevicesControllerTest,
+ ::testing::Values(TestType::DEFAULT,
+ TestType::TEST_WITH_GROUPED_MEDIA_REQUESTS));
« no previous file with comments | « no previous file | chrome/browser/permissions/permission_request_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698