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

Side by Side Diff: content/renderer/media/media_stream_dependency_factory_unittest.cc

Issue 14346002: Connect webrtc MediaSourceInterface ready states with webkit WebMediaStreamSource (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase Created 7 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "content/common/media/media_stream_options.h" 6 #include "content/common/media/media_stream_options.h"
7 #include "content/renderer/media/media_stream_extra_data.h" 7 #include "content/renderer/media/media_stream_extra_data.h"
8 #include "content/renderer/media/media_stream_source_extra_data.h" 8 #include "content/renderer/media/media_stream_source_extra_data.h"
9 #include "content/renderer/media/mock_media_stream_dependency_factory.h" 9 #include "content/renderer/media/mock_media_stream_dependency_factory.h"
10 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" 10 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 bool result_; 42 bool result_;
43 WebKit::WebMediaStream* description_; 43 WebKit::WebMediaStream* description_;
44 }; 44 };
45 45
46 class MediaStreamDependencyFactoryTest : public ::testing::Test { 46 class MediaStreamDependencyFactoryTest : public ::testing::Test {
47 public: 47 public:
48 virtual void SetUp() { 48 virtual void SetUp() {
49 dependency_factory_.reset(new MockMediaStreamDependencyFactory()); 49 dependency_factory_.reset(new MockMediaStreamDependencyFactory());
50 } 50 }
51 51
52 virtual void TearDown() OVERRIDE {
53 // TODO(tommyw): Remove this once WebKit::MediaStreamSource::Owner has been
54 // implemented to fully avoid a circular dependency.
55 for (size_t i = 0; i < audio_sources_.size(); ++i)
56 audio_sources_[i].setExtraData(NULL);
57
58 for (size_t i = 0; i < video_sources_.size(); ++i)
59 video_sources_[i].setExtraData(NULL);
60 }
61
52 WebKit::WebMediaStream CreateWebKitMediaStream(bool audio, bool video) { 62 WebKit::WebMediaStream CreateWebKitMediaStream(bool audio, bool video) {
53 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources( 63 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources(
54 audio ? static_cast<size_t>(1) : 0); 64 audio ? static_cast<size_t>(1) : 0);
55 WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources( 65 WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources(
56 video ? static_cast<size_t>(1) : 0); 66 video ? static_cast<size_t>(1) : 0);
57 67
58 if (audio) { 68 if (audio) {
59 StreamDeviceInfo info; 69 StreamDeviceInfo info;
60 info.device.type = content::MEDIA_DEVICE_AUDIO_CAPTURE; 70 info.device.type = content::MEDIA_DEVICE_AUDIO_CAPTURE;
61 info.device.name = "audio"; 71 info.device.name = "audio";
62 info.device.sample_rate = 0; 72 info.device.sample_rate = 0;
63 info.device.channel_layout = 0; 73 info.device.channel_layout = 0;
64 info.session_id = 99; 74 info.session_id = 99;
65 audio_sources[0].initialize("audio", 75 audio_sources[0].initialize("audio",
66 WebKit::WebMediaStreamSource::TypeAudio, 76 WebKit::WebMediaStreamSource::TypeAudio,
67 "audio"); 77 "audio");
68 audio_sources[0].setExtraData( 78 audio_sources[0].setExtraData(
69 new MediaStreamSourceExtraData(info)); 79 new MediaStreamSourceExtraData(info, audio_sources[0]));
80 audio_sources_.assign(audio_sources);
70 } 81 }
71 if (video) { 82 if (video) {
72 StreamDeviceInfo info; 83 StreamDeviceInfo info;
73 info.device.type = content::MEDIA_DEVICE_VIDEO_CAPTURE; 84 info.device.type = content::MEDIA_DEVICE_VIDEO_CAPTURE;
74 info.device.name = "video"; 85 info.device.name = "video";
75 info.session_id = 98; 86 info.session_id = 98;
76 video_sources[0].initialize("video", 87 video_sources[0].initialize("video",
77 WebKit::WebMediaStreamSource::TypeVideo, 88 WebKit::WebMediaStreamSource::TypeVideo,
78 "video"); 89 "video");
79 video_sources[0].setExtraData( 90 video_sources[0].setExtraData(
80 new MediaStreamSourceExtraData(info)); 91 new MediaStreamSourceExtraData(info, video_sources[0]));
92 video_sources_.assign(video_sources);
81 } 93 }
82 WebKit::WebMediaStream stream_desc; 94 WebKit::WebMediaStream stream_desc;
83 stream_desc.initialize("media stream", audio_sources, video_sources); 95 stream_desc.initialize("media stream", audio_sources, video_sources);
84 96
85 return stream_desc; 97 return stream_desc;
86 } 98 }
87 99
88 void CreateNativeSources(WebKit::WebMediaStream* descriptor) { 100 void CreateNativeSources(WebKit::WebMediaStream* descriptor) {
89 static const int kRenderViewId = 1; 101 static const int kRenderViewId = 1;
90 102
(...skipping 25 matching lines...) Expand all
116 content::MediaStreamExtraData* extra_data = 128 content::MediaStreamExtraData* extra_data =
117 static_cast<content::MediaStreamExtraData*>(stream_desc.extraData()); 129 static_cast<content::MediaStreamExtraData*>(stream_desc.extraData());
118 ASSERT_TRUE(extra_data && extra_data->stream()); 130 ASSERT_TRUE(extra_data && extra_data->stream());
119 EXPECT_TRUE(extra_data->is_local()); 131 EXPECT_TRUE(extra_data->is_local());
120 EXPECT_EQ(num_audio_tracks, extra_data->stream()->GetAudioTracks().size()); 132 EXPECT_EQ(num_audio_tracks, extra_data->stream()->GetAudioTracks().size());
121 EXPECT_EQ(num_video_tracks, extra_data->stream()->GetVideoTracks().size()); 133 EXPECT_EQ(num_video_tracks, extra_data->stream()->GetVideoTracks().size());
122 } 134 }
123 135
124 protected: 136 protected:
125 scoped_ptr<MockMediaStreamDependencyFactory> dependency_factory_; 137 scoped_ptr<MockMediaStreamDependencyFactory> dependency_factory_;
138 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources_;
139 WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources_;
126 }; 140 };
127 141
128 TEST_F(MediaStreamDependencyFactoryTest, CreateRTCPeerConnectionHandler) { 142 TEST_F(MediaStreamDependencyFactoryTest, CreateRTCPeerConnectionHandler) {
129 MockWebRTCPeerConnectionHandlerClient client_jsep; 143 MockWebRTCPeerConnectionHandlerClient client_jsep;
130 scoped_ptr<WebKit::WebRTCPeerConnectionHandler> pc_handler( 144 scoped_ptr<WebKit::WebRTCPeerConnectionHandler> pc_handler(
131 dependency_factory_->CreateRTCPeerConnectionHandler(&client_jsep)); 145 dependency_factory_->CreateRTCPeerConnectionHandler(&client_jsep));
132 EXPECT_TRUE(pc_handler.get() != NULL); 146 EXPECT_TRUE(pc_handler.get() != NULL);
133 } 147 }
134 148
135 TEST_F(MediaStreamDependencyFactoryTest, CreateNativeMediaStream) { 149 TEST_F(MediaStreamDependencyFactoryTest, CreateNativeMediaStream) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 EXPECT_TRUE(dependency_factory_->RemoveNativeMediaStreamTrack( 199 EXPECT_TRUE(dependency_factory_->RemoveNativeMediaStreamTrack(
186 stream_desc, video_tracks[0])); 200 stream_desc, video_tracks[0]));
187 VerifyMediaStream(stream_desc, 1, 0); 201 VerifyMediaStream(stream_desc, 1, 0);
188 202
189 EXPECT_TRUE(dependency_factory_->AddNativeMediaStreamTrack( 203 EXPECT_TRUE(dependency_factory_->AddNativeMediaStreamTrack(
190 stream_desc, video_tracks[0])); 204 stream_desc, video_tracks[0]));
191 VerifyMediaStream(stream_desc, 1, 1); 205 VerifyMediaStream(stream_desc, 1, 1);
192 } 206 }
193 207
194 } // namespace content 208 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698