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

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

Issue 287383002: Implement getMediaDevices. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase 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
« no previous file with comments | « content/renderer/media/media_stream_impl.cc ('k') | content/renderer/media/mock_media_stream_dispatcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/media_stream_impl_unittest.cc
diff --git a/content/renderer/media/media_stream_impl_unittest.cc b/content/renderer/media/media_stream_impl_unittest.cc
index c516aff14fea4202a8493b66b8e893b8539d89c4..7db70db61c1ec0aebccc8840c6e3368b0afa22f6 100644
--- a/content/renderer/media/media_stream_impl_unittest.cc
+++ b/content/renderer/media/media_stream_impl_unittest.cc
@@ -13,6 +13,7 @@
#include "content/renderer/media/mock_media_stream_video_source.h"
#include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h"
#include "third_party/WebKit/public/platform/WebMediaStream.h"
#include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
@@ -57,6 +58,12 @@ class MediaStreamImplUnderTest : public MediaStreamImpl {
requestUserMedia(user_media_request);
}
+ void RequestMediaDevices() {
+ blink::WebMediaDevicesRequest media_devices_request;
+ state_ = REQUEST_NOT_COMPLETE;
+ requestMediaDevices(media_devices_request);
+ }
+
virtual void GetUserMediaRequestSucceeded(
const blink::WebMediaStream& stream,
blink::WebUserMediaRequest* request_info) OVERRIDE {
@@ -72,6 +79,13 @@ class MediaStreamImplUnderTest : public MediaStreamImpl {
result_ = result;
}
+ virtual void EnumerateDevicesSucceded(
+ blink::WebMediaDevicesRequest* request,
+ blink::WebVector<blink::WebMediaDeviceInfo>& devices) OVERRIDE {
+ state_ = REQUEST_SUCCEEDED;
+ last_devices_ = devices;
+ }
+
virtual MediaStreamVideoSource* CreateVideoSource(
const StreamDeviceInfo& device,
const MediaStreamSource::SourceStoppedCallback& stop_callback) OVERRIDE {
@@ -85,6 +99,10 @@ class MediaStreamImplUnderTest : public MediaStreamImpl {
return last_generated_stream_;
}
+ const blink::WebVector<blink::WebMediaDeviceInfo>& last_devices() {
+ return last_devices_;
+ }
+
void ClearLastGeneratedStream() {
last_generated_stream_.reset();
}
@@ -100,6 +118,7 @@ class MediaStreamImplUnderTest : public MediaStreamImpl {
blink::WebMediaStream last_generated_stream_;
RequestState state_;
content::MediaStreamRequestResult result_;
+ blink::WebVector<blink::WebMediaDeviceInfo> last_devices_;
PeerConnectionDependencyFactory* factory_;
MockMediaStreamVideoCapturerSource* video_source_;
};
@@ -117,7 +136,7 @@ class MediaStreamImplTest : public ::testing::Test {
blink::WebMediaStream RequestLocalMediaStream() {
ms_impl_->RequestUserMedia();
- FakeMediaStreamDispatcherComplete();
+ FakeMediaStreamDispatcherRequestUserMediaComplete();
StartMockedVideoSource();
EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_SUCCEEDED,
@@ -142,13 +161,21 @@ class MediaStreamImplTest : public ::testing::Test {
return desc;
}
- void FakeMediaStreamDispatcherComplete() {
- ms_impl_->OnStreamGenerated(ms_dispatcher_->request_id(),
+ void FakeMediaStreamDispatcherRequestUserMediaComplete() {
+ // Audio request ID is used as the shared request ID.
+ ms_impl_->OnStreamGenerated(ms_dispatcher_->audio_request_id(),
ms_dispatcher_->stream_label(),
ms_dispatcher_->audio_array(),
ms_dispatcher_->video_array());
}
+ void FakeMediaStreamDispatcherRequestMediaDevicesComplete() {
+ ms_impl_->OnDevicesEnumerated(ms_dispatcher_->audio_request_id(),
+ ms_dispatcher_->audio_array());
+ ms_impl_->OnDevicesEnumerated(ms_dispatcher_->video_request_id(),
+ ms_dispatcher_->video_array());
+ }
+
void StartMockedVideoSource() {
MockMediaStreamVideoCapturerSource* video_source =
ms_impl_->last_created_video_source();
@@ -317,7 +344,7 @@ TEST_F(MediaStreamImplTest, FrameWillClose) {
// This test what happens if a video source to a MediaSteam fails to start.
TEST_F(MediaStreamImplTest, MediaVideoSourceFailToStart) {
ms_impl_->RequestUserMedia();
- FakeMediaStreamDispatcherComplete();
+ FakeMediaStreamDispatcherRequestUserMediaComplete();
FailToStartMockedVideoSource();
EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_FAILED,
ms_impl_->request_state());
@@ -332,7 +359,7 @@ TEST_F(MediaStreamImplTest, MediaVideoSourceFailToStart) {
TEST_F(MediaStreamImplTest, MediaAudioSourceFailToInitialize) {
FailToCreateNextAudioCapturer();
ms_impl_->RequestUserMedia();
- FakeMediaStreamDispatcherComplete();
+ FakeMediaStreamDispatcherRequestUserMediaComplete();
StartMockedVideoSource();
EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_FAILED,
ms_impl_->request_state());
@@ -347,7 +374,7 @@ TEST_F(MediaStreamImplTest, MediaAudioSourceFailToInitialize) {
// started.
TEST_F(MediaStreamImplTest, MediaStreamImplShutDown) {
ms_impl_->RequestUserMedia();
- FakeMediaStreamDispatcherComplete();
+ FakeMediaStreamDispatcherRequestUserMediaComplete();
EXPECT_EQ(1, ms_dispatcher_->request_stream_counter());
EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_NOT_COMPLETE,
ms_impl_->request_state());
@@ -370,7 +397,7 @@ TEST_F(MediaStreamImplTest, ReloadFrameWhileGeneratingStream) {
// started.
TEST_F(MediaStreamImplTest, ReloadFrameWhileGeneratingSources) {
ms_impl_->RequestUserMedia();
- FakeMediaStreamDispatcherComplete();
+ FakeMediaStreamDispatcherRequestUserMediaComplete();
EXPECT_EQ(1, ms_dispatcher_->request_stream_counter());
ms_impl_->FrameWillClose(NULL);
EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
@@ -401,4 +428,22 @@ TEST_F(MediaStreamImplTest, StopTrackAfterReload) {
EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
}
+TEST_F(MediaStreamImplTest, EnumerateMediaDevices) {
+ ms_impl_->RequestMediaDevices();
+ FakeMediaStreamDispatcherRequestMediaDevicesComplete();
+
+ EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_SUCCEEDED,
+ ms_impl_->request_state());
+
+ EXPECT_FALSE(ms_impl_->last_devices()[0].deviceId().isEmpty());
+ EXPECT_EQ(blink::WebMediaDeviceInfo::MediaDeviceKindAudioInput,
+ ms_impl_->last_devices()[0].kind());
+ EXPECT_FALSE(ms_impl_->last_devices()[0].label().isEmpty());
+
+ EXPECT_FALSE(ms_impl_->last_devices()[1].deviceId().isEmpty());
+ EXPECT_EQ(blink::WebMediaDeviceInfo::MediaDeviceKindVideoInput,
+ ms_impl_->last_devices()[1].kind());
+ EXPECT_FALSE(ms_impl_->last_devices()[1].label().isEmpty());
+}
+
} // namespace content
« no previous file with comments | « content/renderer/media/media_stream_impl.cc ('k') | content/renderer/media/mock_media_stream_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698