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

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

Issue 63253002: Rename WebKit namespace to blink (part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
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"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" 12 #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
13 #include "third_party/WebKit/public/platform/WebMediaStream.h" 13 #include "third_party/WebKit/public/platform/WebMediaStream.h"
14 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 14 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
15 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 15 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
16 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandler.h" 16 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandler.h"
17 #include "third_party/WebKit/public/platform/WebVector.h" 17 #include "third_party/WebKit/public/platform/WebVector.h"
18 #include "third_party/libjingle/source/talk/app/webrtc/videosourceinterface.h" 18 #include "third_party/libjingle/source/talk/app/webrtc/videosourceinterface.h"
19 19
20 namespace content { 20 namespace content {
21 21
22 class MediaSourceCreatedObserver { 22 class MediaSourceCreatedObserver {
23 public: 23 public:
24 MediaSourceCreatedObserver() 24 MediaSourceCreatedObserver()
25 : result_(false), 25 : result_(false),
26 description_(NULL) { 26 description_(NULL) {
27 } 27 }
28 28
29 void OnCreateNativeSourcesComplete( 29 void OnCreateNativeSourcesComplete(
30 WebKit::WebMediaStream* description, 30 blink::WebMediaStream* description,
31 bool request_succeeded) { 31 bool request_succeeded) {
32 result_ = request_succeeded; 32 result_ = request_succeeded;
33 description_ = description; 33 description_ = description;
34 } 34 }
35 35
36 WebKit::WebMediaStream* description() const { 36 blink::WebMediaStream* description() const {
37 return description_; 37 return description_;
38 } 38 }
39 bool result() const { return result_; } 39 bool result() const { return result_; }
40 40
41 private: 41 private:
42 bool result_; 42 bool result_;
43 WebKit::WebMediaStream* description_; 43 blink::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 WebKit::WebMediaStream CreateWebKitMediaStream(bool audio, bool video) { 52 blink::WebMediaStream CreateWebKitMediaStream(bool audio, bool video) {
53 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources( 53 blink::WebVector<blink::WebMediaStreamSource> audio_sources(
54 audio ? static_cast<size_t>(1) : 0); 54 audio ? static_cast<size_t>(1) : 0);
55 WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources( 55 blink::WebVector<blink::WebMediaStreamSource> video_sources(
56 video ? static_cast<size_t>(1) : 0); 56 video ? static_cast<size_t>(1) : 0);
57 MediaStreamSourceExtraData::SourceStopCallback dummy_callback; 57 MediaStreamSourceExtraData::SourceStopCallback dummy_callback;
58 58
59 if (audio) { 59 if (audio) {
60 StreamDeviceInfo info; 60 StreamDeviceInfo info;
61 info.device.type = content::MEDIA_DEVICE_AUDIO_CAPTURE; 61 info.device.type = content::MEDIA_DEVICE_AUDIO_CAPTURE;
62 info.device.name = "audio"; 62 info.device.name = "audio";
63 info.session_id = 99; 63 info.session_id = 99;
64 audio_sources[0].initialize("audio", 64 audio_sources[0].initialize("audio",
65 WebKit::WebMediaStreamSource::TypeAudio, 65 blink::WebMediaStreamSource::TypeAudio,
66 "audio"); 66 "audio");
67 audio_sources[0].setExtraData( 67 audio_sources[0].setExtraData(
68 new MediaStreamSourceExtraData(info, dummy_callback)); 68 new MediaStreamSourceExtraData(info, dummy_callback));
69 audio_sources_.assign(audio_sources); 69 audio_sources_.assign(audio_sources);
70 } 70 }
71 if (video) { 71 if (video) {
72 StreamDeviceInfo info; 72 StreamDeviceInfo info;
73 info.device.type = content::MEDIA_DEVICE_VIDEO_CAPTURE; 73 info.device.type = content::MEDIA_DEVICE_VIDEO_CAPTURE;
74 info.device.name = "video"; 74 info.device.name = "video";
75 info.session_id = 98; 75 info.session_id = 98;
76 video_sources[0].initialize("video", 76 video_sources[0].initialize("video",
77 WebKit::WebMediaStreamSource::TypeVideo, 77 blink::WebMediaStreamSource::TypeVideo,
78 "video"); 78 "video");
79 video_sources[0].setExtraData( 79 video_sources[0].setExtraData(
80 new MediaStreamSourceExtraData(info, dummy_callback)); 80 new MediaStreamSourceExtraData(info, dummy_callback));
81 video_sources_.assign(video_sources); 81 video_sources_.assign(video_sources);
82 } 82 }
83 WebKit::WebMediaStream stream_desc; 83 blink::WebMediaStream stream_desc;
84 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_track_vector( 84 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector(
85 audio_sources.size()); 85 audio_sources.size());
86 for (size_t i = 0; i < audio_track_vector.size(); ++i) { 86 for (size_t i = 0; i < audio_track_vector.size(); ++i) {
87 audio_track_vector[i].initialize(audio_sources[i].id(), 87 audio_track_vector[i].initialize(audio_sources[i].id(),
88 audio_sources[i]); 88 audio_sources[i]);
89 } 89 }
90 90
91 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_track_vector( 91 blink::WebVector<blink::WebMediaStreamTrack> video_track_vector(
92 video_sources.size()); 92 video_sources.size());
93 for (size_t i = 0; i < video_track_vector.size(); ++i) { 93 for (size_t i = 0; i < video_track_vector.size(); ++i) {
94 video_track_vector[i].initialize(video_sources[i].id(), 94 video_track_vector[i].initialize(video_sources[i].id(),
95 video_sources[i]); 95 video_sources[i]);
96 } 96 }
97 97
98 stream_desc.initialize("media stream", audio_track_vector, 98 stream_desc.initialize("media stream", audio_track_vector,
99 video_track_vector); 99 video_track_vector);
100 return stream_desc; 100 return stream_desc;
101 } 101 }
102 102
103 void CreateNativeSources(WebKit::WebMediaStream* descriptor) { 103 void CreateNativeSources(blink::WebMediaStream* descriptor) {
104 static const int kRenderViewId = 1; 104 static const int kRenderViewId = 1;
105 105
106 MediaSourceCreatedObserver observer; 106 MediaSourceCreatedObserver observer;
107 WebKit::WebMediaConstraints audio_constraints; 107 blink::WebMediaConstraints audio_constraints;
108 dependency_factory_->CreateNativeMediaSources( 108 dependency_factory_->CreateNativeMediaSources(
109 kRenderViewId, 109 kRenderViewId,
110 WebKit::WebMediaConstraints(), 110 blink::WebMediaConstraints(),
111 WebKit::WebMediaConstraints(), 111 blink::WebMediaConstraints(),
112 descriptor, 112 descriptor,
113 base::Bind( 113 base::Bind(
114 &MediaSourceCreatedObserver::OnCreateNativeSourcesComplete, 114 &MediaSourceCreatedObserver::OnCreateNativeSourcesComplete,
115 base::Unretained(&observer))); 115 base::Unretained(&observer)));
116 116
117 EXPECT_FALSE(observer.result()); 117 EXPECT_FALSE(observer.result());
118 // Change the state of the created source to live. This should trigger 118 // Change the state of the created source to live. This should trigger
119 // MediaSourceCreatedObserver::OnCreateNativeSourcesComplete 119 // MediaSourceCreatedObserver::OnCreateNativeSourcesComplete
120 if (dependency_factory_->last_video_source()) { 120 if (dependency_factory_->last_video_source()) {
121 dependency_factory_->last_audio_source()->SetLive(); 121 dependency_factory_->last_audio_source()->SetLive();
122 dependency_factory_->last_video_source()->SetLive(); 122 dependency_factory_->last_video_source()->SetLive();
123 } 123 }
124 EXPECT_TRUE(observer.result()); 124 EXPECT_TRUE(observer.result());
125 EXPECT_TRUE(observer.description() == descriptor); 125 EXPECT_TRUE(observer.description() == descriptor);
126 } 126 }
127 127
128 void VerifyMediaStream(const WebKit::WebMediaStream& stream_desc, 128 void VerifyMediaStream(const blink::WebMediaStream& stream_desc,
129 size_t num_audio_tracks, 129 size_t num_audio_tracks,
130 size_t num_video_tracks) { 130 size_t num_video_tracks) {
131 content::MediaStreamExtraData* extra_data = 131 content::MediaStreamExtraData* extra_data =
132 static_cast<content::MediaStreamExtraData*>(stream_desc.extraData()); 132 static_cast<content::MediaStreamExtraData*>(stream_desc.extraData());
133 ASSERT_TRUE(extra_data && extra_data->stream().get()); 133 ASSERT_TRUE(extra_data && extra_data->stream().get());
134 EXPECT_TRUE(extra_data->is_local()); 134 EXPECT_TRUE(extra_data->is_local());
135 EXPECT_EQ(num_audio_tracks, extra_data->stream()->GetAudioTracks().size()); 135 EXPECT_EQ(num_audio_tracks, extra_data->stream()->GetAudioTracks().size());
136 EXPECT_EQ(num_video_tracks, extra_data->stream()->GetVideoTracks().size()); 136 EXPECT_EQ(num_video_tracks, extra_data->stream()->GetVideoTracks().size());
137 } 137 }
138 138
139 protected: 139 protected:
140 scoped_ptr<MockMediaStreamDependencyFactory> dependency_factory_; 140 scoped_ptr<MockMediaStreamDependencyFactory> dependency_factory_;
141 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources_; 141 blink::WebVector<blink::WebMediaStreamSource> audio_sources_;
142 WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources_; 142 blink::WebVector<blink::WebMediaStreamSource> video_sources_;
143 }; 143 };
144 144
145 TEST_F(MediaStreamDependencyFactoryTest, CreateRTCPeerConnectionHandler) { 145 TEST_F(MediaStreamDependencyFactoryTest, CreateRTCPeerConnectionHandler) {
146 MockWebRTCPeerConnectionHandlerClient client_jsep; 146 MockWebRTCPeerConnectionHandlerClient client_jsep;
147 scoped_ptr<WebKit::WebRTCPeerConnectionHandler> pc_handler( 147 scoped_ptr<blink::WebRTCPeerConnectionHandler> pc_handler(
148 dependency_factory_->CreateRTCPeerConnectionHandler(&client_jsep)); 148 dependency_factory_->CreateRTCPeerConnectionHandler(&client_jsep));
149 EXPECT_TRUE(pc_handler.get() != NULL); 149 EXPECT_TRUE(pc_handler.get() != NULL);
150 } 150 }
151 151
152 TEST_F(MediaStreamDependencyFactoryTest, CreateNativeMediaStream) { 152 TEST_F(MediaStreamDependencyFactoryTest, CreateNativeMediaStream) {
153 WebKit::WebMediaStream stream_desc = CreateWebKitMediaStream(true, true); 153 blink::WebMediaStream stream_desc = CreateWebKitMediaStream(true, true);
154 CreateNativeSources(&stream_desc); 154 CreateNativeSources(&stream_desc);
155 155
156 dependency_factory_->CreateNativeLocalMediaStream(&stream_desc); 156 dependency_factory_->CreateNativeLocalMediaStream(&stream_desc);
157 VerifyMediaStream(stream_desc, 1, 1); 157 VerifyMediaStream(stream_desc, 1, 1);
158 } 158 }
159 159
160 // Test that we don't crash if a MediaStream is created in WebKit with unknown 160 // Test that we don't crash if a MediaStream is created in WebKit with unknown
161 // sources. This can for example happen if a MediaStream is created with 161 // sources. This can for example happen if a MediaStream is created with
162 // remote tracks. 162 // remote tracks.
163 TEST_F(MediaStreamDependencyFactoryTest, CreateNativeMediaStreamWithoutSource) { 163 TEST_F(MediaStreamDependencyFactoryTest, CreateNativeMediaStreamWithoutSource) {
164 // Create a WebKit MediaStream description. 164 // Create a WebKit MediaStream description.
165 WebKit::WebMediaStreamSource audio_source; 165 blink::WebMediaStreamSource audio_source;
166 audio_source.initialize("audio source", 166 audio_source.initialize("audio source",
167 WebKit::WebMediaStreamSource::TypeAudio, 167 blink::WebMediaStreamSource::TypeAudio,
168 "something"); 168 "something");
169 WebKit::WebMediaStreamSource video_source; 169 blink::WebMediaStreamSource video_source;
170 video_source.initialize("video source", 170 video_source.initialize("video source",
171 WebKit::WebMediaStreamSource::TypeVideo, 171 blink::WebMediaStreamSource::TypeVideo,
172 "something"); 172 "something");
173 173
174 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks( 174 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks(
175 static_cast<size_t>(1)); 175 static_cast<size_t>(1));
176 audio_tracks[0].initialize(audio_source.id(), audio_source); 176 audio_tracks[0].initialize(audio_source.id(), audio_source);
177 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks( 177 blink::WebVector<blink::WebMediaStreamTrack> video_tracks(
178 static_cast<size_t>(1)); 178 static_cast<size_t>(1));
179 video_tracks[0].initialize(video_source.id(), video_source); 179 video_tracks[0].initialize(video_source.id(), video_source);
180 180
181 WebKit::WebMediaStream stream_desc; 181 blink::WebMediaStream stream_desc;
182 stream_desc.initialize("new stream", audio_tracks, video_tracks); 182 stream_desc.initialize("new stream", audio_tracks, video_tracks);
183 183
184 EXPECT_TRUE(dependency_factory_->EnsurePeerConnectionFactory()); 184 EXPECT_TRUE(dependency_factory_->EnsurePeerConnectionFactory());
185 dependency_factory_->CreateNativeLocalMediaStream(&stream_desc); 185 dependency_factory_->CreateNativeLocalMediaStream(&stream_desc);
186 VerifyMediaStream(stream_desc, 0, 0); 186 VerifyMediaStream(stream_desc, 0, 0);
187 } 187 }
188 188
189 TEST_F(MediaStreamDependencyFactoryTest, AddAndRemoveNativeTrack) { 189 TEST_F(MediaStreamDependencyFactoryTest, AddAndRemoveNativeTrack) {
190 WebKit::WebMediaStream stream_desc = CreateWebKitMediaStream(true, true); 190 blink::WebMediaStream stream_desc = CreateWebKitMediaStream(true, true);
191 CreateNativeSources(&stream_desc); 191 CreateNativeSources(&stream_desc);
192 192
193 dependency_factory_->CreateNativeLocalMediaStream(&stream_desc); 193 dependency_factory_->CreateNativeLocalMediaStream(&stream_desc);
194 VerifyMediaStream(stream_desc, 1, 1); 194 VerifyMediaStream(stream_desc, 1, 1);
195 195
196 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks; 196 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
197 stream_desc.audioTracks(audio_tracks); 197 stream_desc.audioTracks(audio_tracks);
198 EXPECT_TRUE(dependency_factory_->RemoveNativeMediaStreamTrack( 198 EXPECT_TRUE(dependency_factory_->RemoveNativeMediaStreamTrack(
199 stream_desc, audio_tracks[0])); 199 stream_desc, audio_tracks[0]));
200 VerifyMediaStream(stream_desc, 0, 1); 200 VerifyMediaStream(stream_desc, 0, 1);
201 201
202 EXPECT_TRUE(dependency_factory_->AddNativeMediaStreamTrack( 202 EXPECT_TRUE(dependency_factory_->AddNativeMediaStreamTrack(
203 stream_desc, audio_tracks[0])); 203 stream_desc, audio_tracks[0]));
204 VerifyMediaStream(stream_desc, 1, 1); 204 VerifyMediaStream(stream_desc, 1, 1);
205 205
206 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks; 206 blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
207 stream_desc.videoTracks(video_tracks); 207 stream_desc.videoTracks(video_tracks);
208 EXPECT_TRUE(dependency_factory_->RemoveNativeMediaStreamTrack( 208 EXPECT_TRUE(dependency_factory_->RemoveNativeMediaStreamTrack(
209 stream_desc, video_tracks[0])); 209 stream_desc, video_tracks[0]));
210 VerifyMediaStream(stream_desc, 1, 0); 210 VerifyMediaStream(stream_desc, 1, 0);
211 211
212 EXPECT_TRUE(dependency_factory_->AddNativeMediaStreamTrack( 212 EXPECT_TRUE(dependency_factory_->AddNativeMediaStreamTrack(
213 stream_desc, video_tracks[0])); 213 stream_desc, video_tracks[0]));
214 VerifyMediaStream(stream_desc, 1, 1); 214 VerifyMediaStream(stream_desc, 1, 1);
215 } 215 }
216 216
217 } // namespace content 217 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_dependency_factory.cc ('k') | content/renderer/media/media_stream_extra_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698