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

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

Issue 562643003: Implement WebUserMediaClient::requestSources (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code review. Created 6 years, 3 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') | no next file » | 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 08f25e450b2ba2ca4d19a297ccb10a4df0376b1f..386ce3416fb743787ad3144abca94b2346f6e3c5 100644
--- a/content/renderer/media/user_media_client_impl_unittest.cc
+++ b/content/renderer/media/user_media_client_impl_unittest.cc
@@ -17,6 +17,7 @@
#include "third_party/WebKit/public/platform/WebMediaStream.h"
#include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
+#include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h"
#include "third_party/WebKit/public/platform/WebString.h"
#include "third_party/WebKit/public/platform/WebVector.h"
#include "third_party/WebKit/public/web/WebHeap.h"
@@ -68,6 +69,12 @@ class UserMediaClientImplUnderTest : public UserMediaClientImpl {
requestMediaDevices(media_devices_request);
}
+ void RequestSources() {
+ blink::WebMediaStreamTrackSourcesRequest sources_request;
+ state_ = REQUEST_NOT_COMPLETE;
+ requestSources(sources_request);
+ }
+
virtual void GetUserMediaRequestSucceeded(
const blink::WebMediaStream& stream,
blink::WebUserMediaRequest* request_info) OVERRIDE {
@@ -100,6 +107,13 @@ class UserMediaClientImplUnderTest : public UserMediaClientImpl {
last_devices_ = devices;
}
+ virtual void EnumerateSourcesSucceded(
+ blink::WebMediaStreamTrackSourcesRequest* request,
+ blink::WebVector<blink::WebSourceInfo>& sources) OVERRIDE {
+ state_ = REQUEST_SUCCEEDED;
+ last_sources_ = sources;
+ }
+
virtual MediaStreamVideoSource* CreateVideoSource(
const StreamDeviceInfo& device,
const MediaStreamSource::SourceStoppedCallback& stop_callback) OVERRIDE {
@@ -117,6 +131,10 @@ class UserMediaClientImplUnderTest : public UserMediaClientImpl {
return last_devices_;
}
+ const blink::WebVector<blink::WebSourceInfo>& last_sources() {
+ return last_sources_;
+ }
+
void ClearLastGeneratedStream() {
last_generated_stream_.reset();
}
@@ -135,6 +153,7 @@ class UserMediaClientImplUnderTest : public UserMediaClientImpl {
content::MediaStreamRequestResult result_;
blink::WebString result_name_;
blink::WebVector<blink::WebMediaDeviceInfo> last_devices_;
+ blink::WebVector<blink::WebSourceInfo> last_sources_;
PeerConnectionDependencyFactory* factory_;
MockMediaStreamVideoCapturerSource* video_source_;
};
@@ -204,6 +223,15 @@ class UserMediaClientImplTest : public ::testing::Test {
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();
@@ -464,40 +492,89 @@ TEST_F(UserMediaClientImplTest, EnumerateMediaDevices) {
EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED,
used_media_impl_->request_state());
+ EXPECT_EQ(static_cast<size_t>(5), used_media_impl_->last_devices().size());
// Audio input device with matched output ID.
- EXPECT_FALSE(used_media_impl_->last_devices()[0].deviceId().isEmpty());
+ const blink::WebMediaDeviceInfo* device =
+ &used_media_impl_->last_devices()[0];
+ EXPECT_FALSE(device->deviceId().isEmpty());
EXPECT_EQ(blink::WebMediaDeviceInfo::MediaDeviceKindAudioInput,
- used_media_impl_->last_devices()[0].kind());
- EXPECT_FALSE(used_media_impl_->last_devices()[0].label().isEmpty());
- EXPECT_FALSE(used_media_impl_->last_devices()[0].groupId().isEmpty());
+ device->kind());
+ EXPECT_FALSE(device->label().isEmpty());
+ EXPECT_FALSE(device->groupId().isEmpty());
// Audio input device without matched output ID.
- EXPECT_FALSE(used_media_impl_->last_devices()[1].deviceId().isEmpty());
+ device = &used_media_impl_->last_devices()[1];
+ EXPECT_FALSE(device->deviceId().isEmpty());
EXPECT_EQ(blink::WebMediaDeviceInfo::MediaDeviceKindAudioInput,
- used_media_impl_->last_devices()[1].kind());
- EXPECT_FALSE(used_media_impl_->last_devices()[1].label().isEmpty());
- EXPECT_FALSE(used_media_impl_->last_devices()[1].groupId().isEmpty());
+ device->kind());
+ EXPECT_FALSE(device->label().isEmpty());
+ EXPECT_FALSE(device->groupId().isEmpty());
+
+ // Video input devices.
+ device = &used_media_impl_->last_devices()[2];
+ EXPECT_FALSE(device->deviceId().isEmpty());
+ EXPECT_EQ(blink::WebMediaDeviceInfo::MediaDeviceKindVideoInput,
+ device->kind());
+ EXPECT_FALSE(device->label().isEmpty());
+ EXPECT_TRUE(device->groupId().isEmpty());
- // Video input device.
- EXPECT_FALSE(used_media_impl_->last_devices()[2].deviceId().isEmpty());
+ device = &used_media_impl_->last_devices()[3];
+ EXPECT_FALSE(device->deviceId().isEmpty());
EXPECT_EQ(blink::WebMediaDeviceInfo::MediaDeviceKindVideoInput,
- used_media_impl_->last_devices()[2].kind());
- EXPECT_FALSE(used_media_impl_->last_devices()[2].label().isEmpty());
- EXPECT_TRUE(used_media_impl_->last_devices()[2].groupId().isEmpty());
+ device->kind());
+ EXPECT_FALSE(device->label().isEmpty());
+ EXPECT_TRUE(device->groupId().isEmpty());
// Audio output device.
- EXPECT_FALSE(used_media_impl_->last_devices()[3].deviceId().isEmpty());
+ device = &used_media_impl_->last_devices()[4];
+ EXPECT_FALSE(device->deviceId().isEmpty());
EXPECT_EQ(blink::WebMediaDeviceInfo::MediaDeviceKindAudioOutput,
- used_media_impl_->last_devices()[3].kind());
- EXPECT_FALSE(used_media_impl_->last_devices()[3].label().isEmpty());
- EXPECT_FALSE(used_media_impl_->last_devices()[3].groupId().isEmpty());
+ device->kind());
+ EXPECT_FALSE(device->label().isEmpty());
+ EXPECT_FALSE(device->groupId().isEmpty());
// Verfify group IDs.
EXPECT_TRUE(used_media_impl_->last_devices()[0].groupId().equals(
- used_media_impl_->last_devices()[3].groupId()));
+ used_media_impl_->last_devices()[4].groupId()));
EXPECT_FALSE(used_media_impl_->last_devices()[1].groupId().equals(
- used_media_impl_->last_devices()[3].groupId()));
+ used_media_impl_->last_devices()[4].groupId()));
+}
+
+TEST_F(UserMediaClientImplTest, EnumerateSources) {
+ used_media_impl_->RequestSources();
+ FakeMediaStreamDispatcherRequestSourcesComplete();
+
+ EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED,
+ used_media_impl_->request_state());
+ EXPECT_EQ(static_cast<size_t>(4), used_media_impl_->last_sources().size());
+
+ // Audio input devices.
+ const blink::WebSourceInfo* source = &used_media_impl_->last_sources()[0];
+ EXPECT_FALSE(source->id().isEmpty());
+ EXPECT_EQ(blink::WebSourceInfo::SourceKindAudio, source->kind());
+ EXPECT_FALSE(source->label().isEmpty());
+ EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeNone, source->facing());
+
+ source = &used_media_impl_->last_sources()[1];
+ EXPECT_FALSE(source->id().isEmpty());
+ EXPECT_EQ(blink::WebSourceInfo::SourceKindAudio, source->kind());
+ EXPECT_FALSE(source->label().isEmpty());
+ EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeNone, source->facing());
+
+ // Video input device user facing.
+ source = &used_media_impl_->last_sources()[2];
+ EXPECT_FALSE(source->id().isEmpty());
+ EXPECT_EQ(blink::WebSourceInfo::SourceKindVideo, source->kind());
+ EXPECT_FALSE(source->label().isEmpty());
+ EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeUser, 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());
}
} // namespace content
« no previous file with comments | « content/renderer/media/user_media_client_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698