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

Unified Diff: content/renderer/media/user_media_client_impl_unittest.cc

Issue 2380793002: Migrate MediaDevices.enumerateDevices to Mojo (Closed)
Patch Set: rebase Created 4 years, 2 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 | « content/renderer/media/user_media_client_impl.cc ('k') | content/test/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/user_media_client_impl_unittest.cc
diff --git a/content/renderer/media/user_media_client_impl_unittest.cc b/content/renderer/media/user_media_client_impl_unittest.cc
index 0e36428281baf2afcc6bb7bb856bddd672121f4a..99e11b1188ee14088ef5534cd63bd9024f04e742 100644
--- a/content/renderer/media/user_media_client_impl_unittest.cc
+++ b/content/renderer/media/user_media_client_impl_unittest.cc
@@ -8,10 +8,13 @@
#include <memory>
#include <utility>
+#include <vector>
#include "base/message_loop/message_loop.h"
+#include "base/run_loop.h"
#include "base/strings/utf_string_conversions.h"
#include "content/child/child_process.h"
+#include "content/common/media/media_devices.h"
#include "content/renderer/media/media_stream.h"
#include "content/renderer/media/media_stream_audio_source.h"
#include "content/renderer/media/media_stream_track.h"
@@ -19,6 +22,7 @@
#include "content/renderer/media/mock_media_stream_dispatcher.h"
#include "content/renderer/media/mock_media_stream_video_source.h"
#include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.h"
+#include "mojo/public/cpp/bindings/binding.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h"
#include "third_party/WebKit/public/platform/WebMediaStream.h"
@@ -43,6 +47,43 @@ class MockMediaStreamVideoCapturerSource : public MockMediaStreamVideoSource {
}
};
+class MockMediaDevicesDispatcherHost
+ : public ::mojom::MediaDevicesDispatcherHost {
+ public:
+ MockMediaDevicesDispatcherHost() : binding_(this) {}
+ void EnumerateDevices(bool request_audio_input,
+ bool request_video_input,
+ bool request_audio_output,
+ const url::Origin& security_origin,
+ const EnumerateDevicesCallback& callback) override {
+ std::vector<std::vector<MediaDeviceInfo>> result(NUM_MEDIA_DEVICE_TYPES);
+ if (request_audio_input) {
+ result[MEDIA_DEVICE_TYPE_AUDIO_INPUT].push_back(MediaDeviceInfo(
+ "fake_audio_input 1", "Fake Audio Input 1", "fake_group 1"));
+ result[MEDIA_DEVICE_TYPE_AUDIO_INPUT].push_back(MediaDeviceInfo(
+ "fake_audio_input 2", "Fake Audio Input 2", "fake_group 2"));
+ }
+ if (request_video_input) {
+ result[MEDIA_DEVICE_TYPE_VIDEO_INPUT].push_back(
+ MediaDeviceInfo("fake_video_input 1", "Fake Video Input 1", ""));
+ result[MEDIA_DEVICE_TYPE_VIDEO_INPUT].push_back(
+ MediaDeviceInfo("fake_video_input 2", "Fake Video Input 2", ""));
+ }
+ if (request_audio_output) {
+ result[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].push_back(MediaDeviceInfo(
+ "fake_audio_output 1", "Fake Audio Input 1", "fake_group 1"));
+ }
+ callback.Run(result);
+ }
+
+ mojom::MediaDevicesDispatcherHostPtr CreateInterfacePtrAndBind() {
+ return binding_.CreateInterfacePtrAndBind();
+ }
+
+ private:
+ mojo::Binding<mojom::MediaDevicesDispatcherHost> binding_;
+};
+
class UserMediaClientImplUnderTest : public UserMediaClientImpl {
public:
enum RequestState {
@@ -220,6 +261,8 @@ class UserMediaClientImplTest : public ::testing::Test {
used_media_impl_.reset(new UserMediaClientImplUnderTest(
dependency_factory_.get(),
std::unique_ptr<MediaStreamDispatcher>(ms_dispatcher_)));
+ used_media_impl_->SetMediaDevicesDispatcherForTesting(
+ media_devices_dispatcher_.CreateInterfacePtrAndBind());
}
void TearDown() override {
@@ -267,37 +310,6 @@ class UserMediaClientImplTest : public ::testing::Test {
ms_dispatcher_->video_array());
}
- void FakeMediaStreamDispatcherRequestMediaDevicesComplete() {
- // There may be repeated replies due to device or configuration changes.
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->audio_input_request_id(),
- ms_dispatcher_->audio_input_array());
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->audio_input_request_id(),
- ms_dispatcher_->audio_input_array());
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->audio_output_request_id(),
- ms_dispatcher_->audio_output_array());
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->audio_output_request_id(),
- ms_dispatcher_->audio_output_array());
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->video_request_id(),
- ms_dispatcher_->video_array());
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->video_request_id(),
- ms_dispatcher_->video_array());
- }
-
- void FakeMediaStreamDispatcherRequestSourcesComplete() {
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->audio_input_request_id(),
- ms_dispatcher_->audio_input_array());
- used_media_impl_->OnDevicesEnumerated(
- ms_dispatcher_->video_request_id(),
- ms_dispatcher_->video_array());
- }
-
void StartMockedVideoSource() {
MockMediaStreamVideoCapturerSource* video_source =
used_media_impl_->last_created_video_source();
@@ -330,6 +342,7 @@ class UserMediaClientImplTest : public ::testing::Test {
base::MessageLoop message_loop_;
std::unique_ptr<ChildProcess> child_process_;
MockMediaStreamDispatcher* ms_dispatcher_; // Owned by |used_media_impl_|.
+ MockMediaDevicesDispatcherHost media_devices_dispatcher_;
std::unique_ptr<UserMediaClientImplUnderTest> used_media_impl_;
std::unique_ptr<MockPeerConnectionDependencyFactory> dependency_factory_;
};
@@ -564,7 +577,7 @@ TEST_F(UserMediaClientImplTest, StopTrackAfterReload) {
TEST_F(UserMediaClientImplTest, EnumerateMediaDevices) {
used_media_impl_->RequestMediaDevices();
- FakeMediaStreamDispatcherRequestMediaDevicesComplete();
+ base::RunLoop().RunUntilIdle();
EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED,
used_media_impl_->request_state());
@@ -619,7 +632,7 @@ TEST_F(UserMediaClientImplTest, EnumerateMediaDevices) {
TEST_F(UserMediaClientImplTest, EnumerateSources) {
used_media_impl_->RequestSources();
- FakeMediaStreamDispatcherRequestSourcesComplete();
+ base::RunLoop().RunUntilIdle();
EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED,
used_media_impl_->request_state());
@@ -643,14 +656,14 @@ TEST_F(UserMediaClientImplTest, EnumerateSources) {
EXPECT_FALSE(source->id().isEmpty());
EXPECT_EQ(blink::WebSourceInfo::SourceKindVideo, source->kind());
EXPECT_FALSE(source->label().isEmpty());
- EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeUser, source->facing());
+ EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeNone, source->facing());
// Video input device environment facing.
source = &used_media_impl_->last_sources()[3];
EXPECT_FALSE(source->id().isEmpty());
EXPECT_EQ(blink::WebSourceInfo::SourceKindVideo, source->kind());
EXPECT_FALSE(source->label().isEmpty());
- EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeEnvironment, source->facing());
+ EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeNone, source->facing());
}
TEST_F(UserMediaClientImplTest, RenderToAssociatedSinkConstraint) {
« no previous file with comments | « content/renderer/media/user_media_client_impl.cc ('k') | content/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698