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

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

Issue 10912004: Begin adding support for tab mirroring via the MediaStream audio/video capturing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: REBASE Created 8 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
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;
« no previous file with comments | « content/renderer/media/media_stream_dispatcher.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