| Index: content/renderer/media/media_stream_dispatcher_unittest.cc
|
| diff --git a/content/renderer/media/media_stream_dispatcher_unittest.cc b/content/renderer/media/media_stream_dispatcher_unittest.cc
|
| index 458d61b7e3fdb10bad1b306b615edd2a3d5e1533..a7190b940095e5cb290ee3a3dd917f6580ac6282 100644
|
| --- a/content/renderer/media/media_stream_dispatcher_unittest.cc
|
| +++ b/content/renderer/media/media_stream_dispatcher_unittest.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop.h"
|
| #include "content/common/media/media_stream_messages.h"
|
| +#include "content/public/common/media_stream_request.h"
|
| #include "content/renderer/media/media_stream_dispatcher.h"
|
| #include "content/renderer/media/media_stream_dispatcher_eventhandler.h"
|
| #include "googleurl/src/gurl.h"
|
| @@ -24,6 +25,13 @@ const int kRequestId3 = 30;
|
| const int kRequestId4 = 40;
|
| static const char kLabel[] = "test";
|
|
|
| +const content::MediaStreamDeviceType kAudioType =
|
| + content::MEDIA_DEVICE_AUDIO_CAPTURE;
|
| +const content::MediaStreamDeviceType kVideoType =
|
| + content::MEDIA_DEVICE_VIDEO_CAPTURE;
|
| +const content::MediaStreamDeviceType kNoAudioType =
|
| + content::MEDIA_NO_SERVICE;
|
| +
|
| class MockMediaStreamDispatcherEventHandler
|
| : public MediaStreamDispatcherEventHandler,
|
| public base::SupportsWeakPtr<MockMediaStreamDispatcherEventHandler> {
|
| @@ -108,16 +116,14 @@ TEST(MediaStreamDispatcherTest, BasicStream) {
|
| media_stream::StreamDeviceInfoArray audio_device_array(1);
|
| media_stream::StreamDeviceInfo audio_device_info;
|
| audio_device_info.name = "Microphone";
|
| - audio_device_info.stream_type =
|
| - content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE;
|
| + audio_device_info.stream_type = kAudioType;
|
| audio_device_info.session_id = kAudioSessionId;
|
| audio_device_array[0] = audio_device_info;
|
|
|
| media_stream::StreamDeviceInfoArray video_device_array(1);
|
| media_stream::StreamDeviceInfo video_device_info;
|
| video_device_info.name = "Camera";
|
| - video_device_info.stream_type =
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE;
|
| + video_device_info.stream_type = kVideoType;
|
| video_device_info.session_id = kVideoSessionId;
|
| video_device_array[0] = video_device_info;
|
|
|
| @@ -159,7 +165,78 @@ TEST(MediaStreamDispatcherTest, BasicStream) {
|
| media_stream::StreamDeviceInfo::kNoId);
|
| EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
|
|
|
| - // Verify that the request have been completed.
|
| + // Verify that the request has been completed.
|
| + EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
|
| + EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
|
| +}
|
| +
|
| +TEST(MediaStreamDispatcherTest, BasicStreamForDevice) {
|
| + static const char kDeviceId[] = "/dev/video0";
|
| +
|
| + scoped_ptr<MessageLoop> message_loop(new MessageLoop());
|
| + scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL));
|
| + scoped_ptr<MockMediaStreamDispatcherEventHandler>
|
| + handler(new MockMediaStreamDispatcherEventHandler);
|
| + media_stream::StreamOptions components(kNoAudioType, kVideoType);
|
| + GURL security_origin;
|
| +
|
| + int ipc_request_id1 = dispatcher->next_ipc_id_;
|
| + dispatcher->GenerateStreamForDevice(kRequestId1, handler.get()->AsWeakPtr(),
|
| + components, kDeviceId, security_origin);
|
| + int ipc_request_id2 = dispatcher->next_ipc_id_;
|
| + EXPECT_NE(ipc_request_id1, ipc_request_id2);
|
| + dispatcher->GenerateStreamForDevice(kRequestId2, handler.get()->AsWeakPtr(),
|
| + components, kDeviceId, security_origin);
|
| + EXPECT_EQ(dispatcher->requests_.size(), size_t(2));
|
| +
|
| + // No audio requested.
|
| + media_stream::StreamDeviceInfoArray audio_device_array;
|
| +
|
| + media_stream::StreamDeviceInfoArray video_device_array(1);
|
| + media_stream::StreamDeviceInfo video_device_info;
|
| + video_device_info.name = "Fake Video Capture Device";
|
| + video_device_info.stream_type = kVideoType;
|
| + video_device_info.session_id = kVideoSessionId;
|
| + video_device_array[0] = video_device_info;
|
| +
|
| + // Complete the creation of stream1.
|
| + std::string stream_label1 = std::string("stream1");
|
| + dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated(
|
| + kRouteId, ipc_request_id1, stream_label1,
|
| + audio_device_array, video_device_array));
|
| + EXPECT_EQ(handler->request_id_, kRequestId1);
|
| + EXPECT_EQ(handler->label_, stream_label1);
|
| +
|
| + // Complete the creation of stream2.
|
| + std::string stream_label2 = std::string("stream2");
|
| + dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated(
|
| + kRouteId, ipc_request_id2, stream_label2,
|
| + audio_device_array, video_device_array));
|
| + EXPECT_EQ(handler->request_id_, kRequestId2);
|
| + EXPECT_EQ(handler->label_, stream_label2);
|
| +
|
| + EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
|
| + EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(2));
|
| +
|
| + // Check the session_id of stream2.
|
| + EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), kVideoSessionId);
|
| +
|
| + // Stop stream2.
|
| + dispatcher->StopStream(stream_label2);
|
| + EXPECT_EQ(dispatcher->audio_session_id(stream_label2, 0),
|
| + media_stream::StreamDeviceInfo::kNoId);
|
| + EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0),
|
| + media_stream::StreamDeviceInfo::kNoId);
|
| +
|
| + // Stop stream1.
|
| + dispatcher->StopStream(stream_label1);
|
| + EXPECT_EQ(dispatcher->audio_session_id(stream_label1, 0),
|
| + media_stream::StreamDeviceInfo::kNoId);
|
| + EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0),
|
| + media_stream::StreamDeviceInfo::kNoId);
|
| + EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
|
| +
|
| + // Verify that the request has been completed.
|
| EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
|
| EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
|
| }
|
| @@ -174,22 +251,23 @@ TEST(MediaStreamDispatcherTest, BasicVideoDevice) {
|
| GURL security_origin;
|
|
|
| int ipc_request_id1 = dispatcher->next_ipc_id_;
|
| - dispatcher->EnumerateDevices(kRequestId1, handler1.get()->AsWeakPtr(),
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE,
|
| - security_origin);
|
| + dispatcher->EnumerateDevices(
|
| + kRequestId1, handler1.get()->AsWeakPtr(),
|
| + kVideoType,
|
| + security_origin);
|
| int ipc_request_id2 = dispatcher->next_ipc_id_;
|
| EXPECT_NE(ipc_request_id1, ipc_request_id2);
|
| - dispatcher->EnumerateDevices(kRequestId2, handler2.get()->AsWeakPtr(),
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE,
|
| - security_origin);
|
| + dispatcher->EnumerateDevices(
|
| + kRequestId2, handler2.get()->AsWeakPtr(),
|
| + kVideoType,
|
| + security_origin);
|
| EXPECT_EQ(dispatcher->video_enumeration_state_.requests.size(), size_t(2));
|
|
|
| media_stream::StreamDeviceInfoArray video_device_array(1);
|
| media_stream::StreamDeviceInfo video_device_info;
|
| video_device_info.name = "Camera";
|
| video_device_info.device_id = "device_path";
|
| - video_device_info.stream_type =
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE;
|
| + video_device_info.stream_type = kVideoType;
|
| video_device_info.session_id = kVideoSessionId;
|
| video_device_array[0] = video_device_info;
|
|
|
| @@ -205,13 +283,13 @@ TEST(MediaStreamDispatcherTest, BasicVideoDevice) {
|
| int ipc_request_id3 = dispatcher->next_ipc_id_;
|
| dispatcher->OpenDevice(kRequestId3, handler1.get()->AsWeakPtr(),
|
| video_device_info.device_id,
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE,
|
| + kVideoType,
|
| security_origin);
|
| int ipc_request_id4 = dispatcher->next_ipc_id_;
|
| EXPECT_NE(ipc_request_id3, ipc_request_id4);
|
| dispatcher->OpenDevice(kRequestId4, handler1.get()->AsWeakPtr(),
|
| video_device_info.device_id,
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE,
|
| + kVideoType,
|
| security_origin);
|
| EXPECT_EQ(dispatcher->requests_.size(), size_t(2));
|
|
|
| @@ -277,16 +355,14 @@ TEST(MediaStreamDispatcherTest, TestFailure) {
|
| media_stream::StreamDeviceInfoArray audio_device_array(1);
|
| media_stream::StreamDeviceInfo audio_device_info;
|
| audio_device_info.name = "Microphone";
|
| - audio_device_info.stream_type =
|
| - content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE;
|
| + audio_device_info.stream_type = kAudioType;
|
| audio_device_info.session_id = kAudioSessionId;
|
| audio_device_array[0] = audio_device_info;
|
|
|
| media_stream::StreamDeviceInfoArray video_device_array(1);
|
| media_stream::StreamDeviceInfo video_device_info;
|
| video_device_info.name = "Camera";
|
| - video_device_info.stream_type =
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE;
|
| + video_device_info.stream_type = kVideoType;
|
| video_device_info.session_id = kVideoSessionId;
|
| video_device_array[0] = video_device_info;
|
|
|
| @@ -337,16 +413,14 @@ TEST(MediaStreamDispatcherTest, CancelGenerateStream) {
|
| // Complete the creation of stream1.
|
| media_stream::StreamDeviceInfo audio_device_info;
|
| audio_device_info.name = "Microphone";
|
| - audio_device_info.stream_type =
|
| - content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE;
|
| + audio_device_info.stream_type = kAudioType;
|
| audio_device_info.session_id = kAudioSessionId;
|
| media_stream::StreamDeviceInfoArray audio_device_array(1);
|
| audio_device_array[0] = audio_device_info;
|
|
|
| media_stream::StreamDeviceInfo video_device_info;
|
| video_device_info.name = "Camera";
|
| - video_device_info.stream_type =
|
| - content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE;
|
| + video_device_info.stream_type = kVideoType;
|
| video_device_info.session_id = kVideoSessionId;
|
| media_stream::StreamDeviceInfoArray video_device_array(1);
|
| video_device_array[0] = video_device_info;
|
|
|