| Index: content/browser/renderer_host/media/device_request_message_filter_unittest.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/media/device_request_message_filter_unittest.cc (revision 278172)
|
| +++ content/browser/renderer_host/media/device_request_message_filter_unittest.cc (working copy)
|
| @@ -25,15 +25,15 @@
|
|
|
| virtual ~MockMediaStreamManager() {}
|
|
|
| - MOCK_METHOD8(EnumerateDevices,
|
| + MOCK_METHOD7(EnumerateDevices,
|
| std::string(MediaStreamRequester* requester,
|
| int render_process_id,
|
| int render_view_id,
|
| const ResourceContext::SaltCallback& rc,
|
| int page_request_id,
|
| MediaStreamType type,
|
| - const GURL& security_origin,
|
| - bool have_permission));
|
| + const GURL& security_origin));
|
| + MOCK_METHOD1(CancelRequest, void(const std::string& label));
|
|
|
| std::string DoEnumerateDevices(MediaStreamRequester* requester,
|
| int render_process_id,
|
| @@ -41,8 +41,7 @@
|
| const ResourceContext::SaltCallback& rc,
|
| int page_request_id,
|
| MediaStreamType type,
|
| - const GURL& security_origin,
|
| - bool have_permission) {
|
| + const GURL& security_origin) {
|
| if (type == MEDIA_DEVICE_AUDIO_CAPTURE) {
|
| return kAudioLabel;
|
| } else {
|
| @@ -96,12 +95,10 @@
|
| AddVideoDevices(number_video_devices);
|
| GURL origin("https://test.com");
|
| EXPECT_CALL(*media_stream_manager_,
|
| - EnumerateDevices(_, _, _, _, _, MEDIA_DEVICE_AUDIO_CAPTURE,
|
| - _, _))
|
| + EnumerateDevices(_, _, _, _, _, MEDIA_DEVICE_AUDIO_CAPTURE, _))
|
| .Times(1);
|
| EXPECT_CALL(*media_stream_manager_,
|
| - EnumerateDevices(_, _, _, _, _, MEDIA_DEVICE_VIDEO_CAPTURE,
|
| - _, _))
|
| + EnumerateDevices(_, _, _, _, _, MEDIA_DEVICE_VIDEO_CAPTURE, _))
|
| .Times(1);
|
| // Send message to get devices. Should trigger 2 EnumerateDevice() requests.
|
| const int kRequestId = 123;
|
| @@ -113,6 +110,10 @@
|
| EXPECT_EQ(0u, host_->requested_devices().size());
|
|
|
| // After the video device callback is fired, |message| should be populated.
|
| + EXPECT_CALL(*media_stream_manager_, CancelRequest(kAudioLabel))
|
| + .Times(1);
|
| + EXPECT_CALL(*media_stream_manager_, CancelRequest(kVideoLabel))
|
| + .Times(1);
|
| FireVideoDeviceCallback();
|
| EXPECT_EQ(static_cast<size_t>(number_audio_devices + number_video_devices),
|
| host_->requested_devices().size());
|
| @@ -120,6 +121,15 @@
|
| EXPECT_EQ(kRequestId, host_->received_id());
|
| }
|
|
|
| + bool AreLabelsPresent(MediaStreamType type) {
|
| + const StreamDeviceInfoArray& devices = host_->requested_devices();
|
| + for (size_t i = 0; i < devices.size(); i++) {
|
| + if (devices[i].device.type == type && !devices[i].device.name.empty())
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| protected:
|
| virtual ~DeviceRequestMessageFilterTest() {}
|
|
|
| @@ -129,7 +139,7 @@
|
| new TestBrowserThread(BrowserThread::IO, message_loop_.get()));
|
|
|
| media_stream_manager_.reset(new MockMediaStreamManager());
|
| - ON_CALL(*media_stream_manager_, EnumerateDevices(_, _, _, _, _, _, _, _))
|
| + ON_CALL(*media_stream_manager_, EnumerateDevices(_, _, _, _, _, _, _))
|
| .WillByDefault(Invoke(media_stream_manager_.get(),
|
| &MockMediaStreamManager::DoEnumerateDevices));
|
|
|
| @@ -210,4 +220,36 @@
|
| RunTest(0, 0);
|
| }
|
|
|
| +TEST_F(DeviceRequestMessageFilterTest, TestGetSources_DenyMicDenyCamera) {
|
| + resource_context_->set_mic_access(false);
|
| + resource_context_->set_camera_access(false);
|
| + RunTest(3, 3);
|
| + EXPECT_FALSE(AreLabelsPresent(MEDIA_DEVICE_AUDIO_CAPTURE));
|
| + EXPECT_FALSE(AreLabelsPresent(MEDIA_DEVICE_VIDEO_CAPTURE));
|
| +}
|
| +
|
| +TEST_F(DeviceRequestMessageFilterTest, TestGetSources_AllowMicDenyCamera) {
|
| + resource_context_->set_mic_access(true);
|
| + resource_context_->set_camera_access(false);
|
| + RunTest(3, 3);
|
| + EXPECT_TRUE(AreLabelsPresent(MEDIA_DEVICE_AUDIO_CAPTURE));
|
| + EXPECT_FALSE(AreLabelsPresent(MEDIA_DEVICE_VIDEO_CAPTURE));
|
| +}
|
| +
|
| +TEST_F(DeviceRequestMessageFilterTest, TestGetSources_DenyMicAllowCamera) {
|
| + resource_context_->set_mic_access(false);
|
| + resource_context_->set_camera_access(true);
|
| + RunTest(3, 3);
|
| + EXPECT_FALSE(AreLabelsPresent(MEDIA_DEVICE_AUDIO_CAPTURE));
|
| + EXPECT_TRUE(AreLabelsPresent(MEDIA_DEVICE_VIDEO_CAPTURE));
|
| +}
|
| +
|
| +TEST_F(DeviceRequestMessageFilterTest, TestGetSources_AllowMicAllowCamera) {
|
| + resource_context_->set_mic_access(true);
|
| + resource_context_->set_camera_access(true);
|
| + RunTest(3, 3);
|
| + EXPECT_TRUE(AreLabelsPresent(MEDIA_DEVICE_AUDIO_CAPTURE));
|
| + EXPECT_TRUE(AreLabelsPresent(MEDIA_DEVICE_VIDEO_CAPTURE));
|
| +}
|
| +
|
| }; // namespace content
|
|
|