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

Unified Diff: content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc

Issue 287383002: Implement getMediaDevices. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Code review fix, a minor test refactoring. And rebase, sorry. Created 6 years, 7 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: content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
diff --git a/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc b/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
index 733787f34109b44eccab55864324facd02977f3f..a09ffea38e48cdf218c4eb376e63fcec4a7edaa0 100644
--- a/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
+++ b/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
@@ -51,8 +51,10 @@ class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost,
MockMediaStreamDispatcherHost(
const ResourceContext::SaltCallback salt_callback,
const scoped_refptr<base::MessageLoopProxy>& message_loop,
- MediaStreamManager* manager)
- : MediaStreamDispatcherHost(kProcessId, salt_callback, manager),
+ MediaStreamManager* manager,
+ ResourceContext* resource_context)
+ : MediaStreamDispatcherHost(kProcessId, salt_callback, manager,
+ resource_context),
message_loop_(message_loop),
current_ipc_(NULL) {}
@@ -230,10 +232,17 @@ class MediaStreamDispatcherHostTest : public testing::Test {
->video_capture_device_factory());
DCHECK(video_capture_device_factory_);
+ MockResourceContext* mock_resource_context =
+ static_cast<MockResourceContext*>(
+ browser_context_.GetResourceContext());
+ mock_resource_context->set_mic_access(true);
+ mock_resource_context->set_camera_access(true);
+
host_ = new MockMediaStreamDispatcherHost(
- browser_context_.GetResourceContext()->GetMediaDeviceIDSalt(),
+ mock_resource_context->GetMediaDeviceIDSalt(),
base::MessageLoopProxy::current(),
- media_stream_manager_.get());
+ media_stream_manager_.get(),
+ mock_resource_context);
// Use the fake content client and browser.
content_client_.reset(new TestContentClient());
@@ -380,6 +389,24 @@ class MediaStreamDispatcherHostTest : public testing::Test {
return true;
}
+ // Returns true if all devices have labels, false otherwise.
+ bool DoesContainLabels(const StreamDeviceInfoArray& devices) {
+ for (size_t i = 0; i < devices.size(); ++i) {
+ if (devices[i].device.name.empty())
+ return false;
+ }
+ return true;
+ }
+
+ // Returns true if no devices have labels, false otherwise.
+ bool DoesNotContainLabels(const StreamDeviceInfoArray& devices) {
+ for (size_t i = 0; i < devices.size(); ++i) {
+ if (!devices[i].device.name.empty())
+ return false;
+ }
+ return true;
+ }
+
void AddSourceIdConstraint(const std::string& source_id,
StreamOptions::Constraints* constraints) {
constraints->push_back(StreamOptions::Constraint(kMediaStreamSourceInfoId,
@@ -852,11 +879,31 @@ TEST_F(MediaStreamDispatcherHostTest, VideoDeviceUnplugged) {
TEST_F(MediaStreamDispatcherHostTest, EnumerateAudioDevices) {
EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId,
MEDIA_DEVICE_AUDIO_CAPTURE);
+ EXPECT_TRUE(DoesContainLabels(host_->enumerated_devices_));
}
TEST_F(MediaStreamDispatcherHostTest, EnumerateVideoDevices) {
EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId,
MEDIA_DEVICE_VIDEO_CAPTURE);
+ EXPECT_TRUE(DoesContainLabels(host_->enumerated_devices_));
+}
+
+TEST_F(MediaStreamDispatcherHostTest, EnumerateAudioDevicesNoAccess) {
+ MockResourceContext* mock_resource_context =
+ static_cast<MockResourceContext*>(browser_context_.GetResourceContext());
+ mock_resource_context->set_mic_access(false);
+ EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId,
+ MEDIA_DEVICE_AUDIO_CAPTURE);
+ EXPECT_TRUE(DoesNotContainLabels(host_->enumerated_devices_));
+}
+
+TEST_F(MediaStreamDispatcherHostTest, EnumerateVideoDevicesNoAccess) {
+ MockResourceContext* mock_resource_context =
+ static_cast<MockResourceContext*>(browser_context_.GetResourceContext());
+ mock_resource_context->set_camera_access(false);
+ EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId,
+ MEDIA_DEVICE_VIDEO_CAPTURE);
+ EXPECT_TRUE(DoesNotContainLabels(host_->enumerated_devices_));
}
}; // namespace content

Powered by Google App Engine
This is Rietveld 408576698