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

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

Issue 11339014: Move content\browser\renderer_host\media to content namespace. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 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 <string> 5 #include <string>
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "content/common/media/media_stream_messages.h" 10 #include "content/common/media/media_stream_messages.h"
(...skipping 22 matching lines...) Expand all
33 class MockMediaStreamDispatcherEventHandler 33 class MockMediaStreamDispatcherEventHandler
34 : public MediaStreamDispatcherEventHandler, 34 : public MediaStreamDispatcherEventHandler,
35 public base::SupportsWeakPtr<MockMediaStreamDispatcherEventHandler> { 35 public base::SupportsWeakPtr<MockMediaStreamDispatcherEventHandler> {
36 public: 36 public:
37 MockMediaStreamDispatcherEventHandler() 37 MockMediaStreamDispatcherEventHandler()
38 : request_id_(-1) {} 38 : request_id_(-1) {}
39 39
40 virtual void OnStreamGenerated( 40 virtual void OnStreamGenerated(
41 int request_id, 41 int request_id,
42 const std::string &label, 42 const std::string &label,
43 const media_stream::StreamDeviceInfoArray& audio_device_array, 43 const StreamDeviceInfoArray& audio_device_array,
44 const media_stream::StreamDeviceInfoArray& video_device_array) OVERRIDE { 44 const StreamDeviceInfoArray& video_device_array) OVERRIDE {
45 request_id_ = request_id; 45 request_id_ = request_id;
46 label_ = label; 46 label_ = label;
47 } 47 }
48 48
49 virtual void OnStreamGenerationFailed(int request_id) OVERRIDE { 49 virtual void OnStreamGenerationFailed(int request_id) OVERRIDE {
50 request_id_ = request_id; 50 request_id_ = request_id;
51 } 51 }
52 52
53 virtual void OnDevicesEnumerated( 53 virtual void OnDevicesEnumerated(
54 int request_id, 54 int request_id,
55 const media_stream::StreamDeviceInfoArray& device_array) OVERRIDE { 55 const StreamDeviceInfoArray& device_array) OVERRIDE {
56 request_id_ = request_id; 56 request_id_ = request_id;
57 } 57 }
58 58
59 virtual void OnDevicesEnumerationFailed(int request_id) OVERRIDE { 59 virtual void OnDevicesEnumerationFailed(int request_id) OVERRIDE {
60 request_id_ = request_id; 60 request_id_ = request_id;
61 } 61 }
62 62
63 virtual void OnDeviceOpened( 63 virtual void OnDeviceOpened(
64 int request_id, 64 int request_id,
65 const std::string& label, 65 const std::string& label,
66 const media_stream::StreamDeviceInfo& video_device) OVERRIDE { 66 const StreamDeviceInfo& video_device) OVERRIDE {
67 request_id_ = request_id; 67 request_id_ = request_id;
68 label_ = label; 68 label_ = label;
69 } 69 }
70 70
71 virtual void OnDeviceOpenFailed(int request_id) OVERRIDE { 71 virtual void OnDeviceOpenFailed(int request_id) OVERRIDE {
72 request_id_ = request_id; 72 request_id_ = request_id;
73 } 73 }
74 74
75 int request_id_; 75 int request_id_;
76 std::string label_; 76 std::string label_;
77 77
78 DISALLOW_COPY_AND_ASSIGN(MockMediaStreamDispatcherEventHandler); 78 DISALLOW_COPY_AND_ASSIGN(MockMediaStreamDispatcherEventHandler);
79 }; 79 };
80 80
81 } // namespace 81 } // namespace
82 82
83 TEST(MediaStreamDispatcherTest, BasicStream) { 83 TEST(MediaStreamDispatcherTest, BasicStream) {
84 scoped_ptr<MessageLoop> message_loop(new MessageLoop()); 84 scoped_ptr<MessageLoop> message_loop(new MessageLoop());
85 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL)); 85 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL));
86 scoped_ptr<MockMediaStreamDispatcherEventHandler> 86 scoped_ptr<MockMediaStreamDispatcherEventHandler>
87 handler(new MockMediaStreamDispatcherEventHandler); 87 handler(new MockMediaStreamDispatcherEventHandler);
88 media_stream::StreamOptions components(kAudioType, kVideoType); 88 StreamOptions components(kAudioType, kVideoType);
89 GURL security_origin; 89 GURL security_origin;
90 90
91 int ipc_request_id1 = dispatcher->next_ipc_id_; 91 int ipc_request_id1 = dispatcher->next_ipc_id_;
92 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), 92 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(),
93 components, security_origin); 93 components, security_origin);
94 int ipc_request_id2 = dispatcher->next_ipc_id_; 94 int ipc_request_id2 = dispatcher->next_ipc_id_;
95 EXPECT_NE(ipc_request_id1, ipc_request_id2); 95 EXPECT_NE(ipc_request_id1, ipc_request_id2);
96 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(), 96 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(),
97 components, security_origin); 97 components, security_origin);
98 EXPECT_EQ(dispatcher->requests_.size(), size_t(2)); 98 EXPECT_EQ(dispatcher->requests_.size(), size_t(2));
99 99
100 media_stream::StreamDeviceInfoArray audio_device_array(1); 100 StreamDeviceInfoArray audio_device_array(1);
101 media_stream::StreamDeviceInfo audio_device_info; 101 StreamDeviceInfo audio_device_info;
102 audio_device_info.name = "Microphone"; 102 audio_device_info.name = "Microphone";
103 audio_device_info.stream_type = kAudioType; 103 audio_device_info.stream_type = kAudioType;
104 audio_device_info.session_id = kAudioSessionId; 104 audio_device_info.session_id = kAudioSessionId;
105 audio_device_array[0] = audio_device_info; 105 audio_device_array[0] = audio_device_info;
106 106
107 media_stream::StreamDeviceInfoArray video_device_array(1); 107 StreamDeviceInfoArray video_device_array(1);
108 media_stream::StreamDeviceInfo video_device_info; 108 StreamDeviceInfo video_device_info;
109 video_device_info.name = "Camera"; 109 video_device_info.name = "Camera";
110 video_device_info.stream_type = kVideoType; 110 video_device_info.stream_type = kVideoType;
111 video_device_info.session_id = kVideoSessionId; 111 video_device_info.session_id = kVideoSessionId;
112 video_device_array[0] = video_device_info; 112 video_device_array[0] = video_device_info;
113 113
114 // Complete the creation of stream1. 114 // Complete the creation of stream1.
115 std::string stream_label1 = std::string("stream1"); 115 std::string stream_label1 = std::string("stream1");
116 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated( 116 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated(
117 kRouteId, ipc_request_id1, stream_label1, 117 kRouteId, ipc_request_id1, stream_label1,
118 audio_device_array, video_device_array)); 118 audio_device_array, video_device_array));
(...skipping 11 matching lines...) Expand all
130 EXPECT_EQ(dispatcher->requests_.size(), size_t(0)); 130 EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
131 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(2)); 131 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(2));
132 132
133 // Check the session_id of stream2. 133 // Check the session_id of stream2.
134 EXPECT_EQ(dispatcher->audio_session_id(stream_label2, 0), kAudioSessionId); 134 EXPECT_EQ(dispatcher->audio_session_id(stream_label2, 0), kAudioSessionId);
135 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), kVideoSessionId); 135 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), kVideoSessionId);
136 136
137 // Stop stream2. 137 // Stop stream2.
138 dispatcher->StopStream(stream_label2); 138 dispatcher->StopStream(stream_label2);
139 EXPECT_EQ(dispatcher->audio_session_id(stream_label2, 0), 139 EXPECT_EQ(dispatcher->audio_session_id(stream_label2, 0),
140 media_stream::StreamDeviceInfo::kNoId); 140 StreamDeviceInfo::kNoId);
141 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), 141 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0),
142 media_stream::StreamDeviceInfo::kNoId); 142 StreamDeviceInfo::kNoId);
143 143
144 // Stop stream1. 144 // Stop stream1.
145 dispatcher->StopStream(stream_label1); 145 dispatcher->StopStream(stream_label1);
146 EXPECT_EQ(dispatcher->audio_session_id(stream_label1, 0), 146 EXPECT_EQ(dispatcher->audio_session_id(stream_label1, 0),
147 media_stream::StreamDeviceInfo::kNoId); 147 StreamDeviceInfo::kNoId);
148 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0), 148 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0),
149 media_stream::StreamDeviceInfo::kNoId); 149 StreamDeviceInfo::kNoId);
150 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 150 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
151 151
152 // Verify that the request has been completed. 152 // Verify that the request has been completed.
153 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 153 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
154 EXPECT_EQ(dispatcher->requests_.size(), size_t(0)); 154 EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
155 } 155 }
156 156
157 TEST(MediaStreamDispatcherTest, BasicStreamForDevice) { 157 TEST(MediaStreamDispatcherTest, BasicStreamForDevice) {
158 static const char kDeviceId[] = "/dev/video0"; 158 static const char kDeviceId[] = "/dev/video0";
159 159
160 scoped_ptr<MessageLoop> message_loop(new MessageLoop()); 160 scoped_ptr<MessageLoop> message_loop(new MessageLoop());
161 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL)); 161 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL));
162 scoped_ptr<MockMediaStreamDispatcherEventHandler> 162 scoped_ptr<MockMediaStreamDispatcherEventHandler>
163 handler(new MockMediaStreamDispatcherEventHandler); 163 handler(new MockMediaStreamDispatcherEventHandler);
164 media_stream::StreamOptions components(kNoAudioType, kVideoType); 164 StreamOptions components(kNoAudioType, kVideoType);
165 components.audio_device_id = kDeviceId; 165 components.audio_device_id = kDeviceId;
166 components.video_device_id = kDeviceId; 166 components.video_device_id = kDeviceId;
167 GURL security_origin; 167 GURL security_origin;
168 168
169 int ipc_request_id1 = dispatcher->next_ipc_id_; 169 int ipc_request_id1 = dispatcher->next_ipc_id_;
170 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), 170 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(),
171 components, security_origin); 171 components, security_origin);
172 int ipc_request_id2 = dispatcher->next_ipc_id_; 172 int ipc_request_id2 = dispatcher->next_ipc_id_;
173 EXPECT_NE(ipc_request_id1, ipc_request_id2); 173 EXPECT_NE(ipc_request_id1, ipc_request_id2);
174 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(), 174 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(),
175 components, security_origin); 175 components, security_origin);
176 EXPECT_EQ(dispatcher->requests_.size(), size_t(2)); 176 EXPECT_EQ(dispatcher->requests_.size(), size_t(2));
177 177
178 // No audio requested. 178 // No audio requested.
179 media_stream::StreamDeviceInfoArray audio_device_array; 179 StreamDeviceInfoArray audio_device_array;
180 180
181 media_stream::StreamDeviceInfoArray video_device_array(1); 181 StreamDeviceInfoArray video_device_array(1);
182 media_stream::StreamDeviceInfo video_device_info; 182 StreamDeviceInfo video_device_info;
183 video_device_info.name = "Fake Video Capture Device"; 183 video_device_info.name = "Fake Video Capture Device";
184 video_device_info.stream_type = kVideoType; 184 video_device_info.stream_type = kVideoType;
185 video_device_info.session_id = kVideoSessionId; 185 video_device_info.session_id = kVideoSessionId;
186 video_device_array[0] = video_device_info; 186 video_device_array[0] = video_device_info;
187 187
188 // Complete the creation of stream1. 188 // Complete the creation of stream1.
189 std::string stream_label1 = std::string("stream1"); 189 std::string stream_label1 = std::string("stream1");
190 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated( 190 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated(
191 kRouteId, ipc_request_id1, stream_label1, 191 kRouteId, ipc_request_id1, stream_label1,
192 audio_device_array, video_device_array)); 192 audio_device_array, video_device_array));
(...skipping 10 matching lines...) Expand all
203 203
204 EXPECT_EQ(dispatcher->requests_.size(), size_t(0)); 204 EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
205 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(2)); 205 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(2));
206 206
207 // Check the session_id of stream2. 207 // Check the session_id of stream2.
208 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), kVideoSessionId); 208 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), kVideoSessionId);
209 209
210 // Stop stream2. 210 // Stop stream2.
211 dispatcher->StopStream(stream_label2); 211 dispatcher->StopStream(stream_label2);
212 EXPECT_EQ(dispatcher->audio_session_id(stream_label2, 0), 212 EXPECT_EQ(dispatcher->audio_session_id(stream_label2, 0),
213 media_stream::StreamDeviceInfo::kNoId); 213 StreamDeviceInfo::kNoId);
214 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), 214 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0),
215 media_stream::StreamDeviceInfo::kNoId); 215 StreamDeviceInfo::kNoId);
216 216
217 // Stop stream1. 217 // Stop stream1.
218 dispatcher->StopStream(stream_label1); 218 dispatcher->StopStream(stream_label1);
219 EXPECT_EQ(dispatcher->audio_session_id(stream_label1, 0), 219 EXPECT_EQ(dispatcher->audio_session_id(stream_label1, 0),
220 media_stream::StreamDeviceInfo::kNoId); 220 StreamDeviceInfo::kNoId);
221 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0), 221 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0),
222 media_stream::StreamDeviceInfo::kNoId); 222 StreamDeviceInfo::kNoId);
223 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 223 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
224 224
225 // Verify that the request has been completed. 225 // Verify that the request has been completed.
226 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 226 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
227 EXPECT_EQ(dispatcher->requests_.size(), size_t(0)); 227 EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
228 } 228 }
229 229
230 TEST(MediaStreamDispatcherTest, BasicVideoDevice) { 230 TEST(MediaStreamDispatcherTest, BasicVideoDevice) {
231 scoped_ptr<MessageLoop> message_loop(new MessageLoop()); 231 scoped_ptr<MessageLoop> message_loop(new MessageLoop());
232 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL)); 232 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL));
233 scoped_ptr<MockMediaStreamDispatcherEventHandler> 233 scoped_ptr<MockMediaStreamDispatcherEventHandler>
234 handler1(new MockMediaStreamDispatcherEventHandler); 234 handler1(new MockMediaStreamDispatcherEventHandler);
235 scoped_ptr<MockMediaStreamDispatcherEventHandler> 235 scoped_ptr<MockMediaStreamDispatcherEventHandler>
236 handler2(new MockMediaStreamDispatcherEventHandler); 236 handler2(new MockMediaStreamDispatcherEventHandler);
237 GURL security_origin; 237 GURL security_origin;
238 238
239 int ipc_request_id1 = dispatcher->next_ipc_id_; 239 int ipc_request_id1 = dispatcher->next_ipc_id_;
240 dispatcher->EnumerateDevices( 240 dispatcher->EnumerateDevices(
241 kRequestId1, handler1.get()->AsWeakPtr(), 241 kRequestId1, handler1.get()->AsWeakPtr(),
242 kVideoType, 242 kVideoType,
243 security_origin); 243 security_origin);
244 int ipc_request_id2 = dispatcher->next_ipc_id_; 244 int ipc_request_id2 = dispatcher->next_ipc_id_;
245 EXPECT_NE(ipc_request_id1, ipc_request_id2); 245 EXPECT_NE(ipc_request_id1, ipc_request_id2);
246 dispatcher->EnumerateDevices( 246 dispatcher->EnumerateDevices(
247 kRequestId2, handler2.get()->AsWeakPtr(), 247 kRequestId2, handler2.get()->AsWeakPtr(),
248 kVideoType, 248 kVideoType,
249 security_origin); 249 security_origin);
250 EXPECT_EQ(dispatcher->video_enumeration_state_.requests.size(), size_t(2)); 250 EXPECT_EQ(dispatcher->video_enumeration_state_.requests.size(), size_t(2));
251 251
252 media_stream::StreamDeviceInfoArray video_device_array(1); 252 StreamDeviceInfoArray video_device_array(1);
253 media_stream::StreamDeviceInfo video_device_info; 253 StreamDeviceInfo video_device_info;
254 video_device_info.name = "Camera"; 254 video_device_info.name = "Camera";
255 video_device_info.device_id = "device_path"; 255 video_device_info.device_id = "device_path";
256 video_device_info.stream_type = kVideoType; 256 video_device_info.stream_type = kVideoType;
257 video_device_info.session_id = kVideoSessionId; 257 video_device_info.session_id = kVideoSessionId;
258 video_device_array[0] = video_device_info; 258 video_device_array[0] = video_device_info;
259 259
260 // Complete the enumeration request and all requesters should receive reply. 260 // Complete the enumeration request and all requesters should receive reply.
261 dispatcher->OnMessageReceived(MediaStreamMsg_DevicesEnumerated( 261 dispatcher->OnMessageReceived(MediaStreamMsg_DevicesEnumerated(
262 kRouteId, ipc_request_id1, kLabel, video_device_array)); 262 kRouteId, ipc_request_id1, kLabel, video_device_array));
263 EXPECT_EQ(handler1->request_id_, kRequestId1); 263 EXPECT_EQ(handler1->request_id_, kRequestId1);
(...skipping 30 matching lines...) Expand all
294 EXPECT_EQ(dispatcher->requests_.size(), size_t(0)); 294 EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
295 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(2)); 295 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(2));
296 296
297 // Check the video_session_id. 297 // Check the video_session_id.
298 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0), kVideoSessionId); 298 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0), kVideoSessionId);
299 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), kVideoSessionId); 299 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), kVideoSessionId);
300 300
301 // Stop stream2. 301 // Stop stream2.
302 dispatcher->StopStream(stream_label2); 302 dispatcher->StopStream(stream_label2);
303 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0), 303 EXPECT_EQ(dispatcher->video_session_id(stream_label2, 0),
304 media_stream::StreamDeviceInfo::kNoId); 304 StreamDeviceInfo::kNoId);
305 305
306 // Stop stream1. 306 // Stop stream1.
307 dispatcher->StopStream(stream_label1); 307 dispatcher->StopStream(stream_label1);
308 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0), 308 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0),
309 media_stream::StreamDeviceInfo::kNoId); 309 StreamDeviceInfo::kNoId);
310 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 310 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
311 311
312 // Verify that the request have been completed. 312 // Verify that the request have been completed.
313 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 313 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
314 EXPECT_EQ(dispatcher->requests_.size(), size_t(0)); 314 EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
315 } 315 }
316 316
317 TEST(MediaStreamDispatcherTest, TestFailure) { 317 TEST(MediaStreamDispatcherTest, TestFailure) {
318 scoped_ptr<MessageLoop> message_loop(new MessageLoop()); 318 scoped_ptr<MessageLoop> message_loop(new MessageLoop());
319 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL)); 319 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL));
320 scoped_ptr<MockMediaStreamDispatcherEventHandler> 320 scoped_ptr<MockMediaStreamDispatcherEventHandler>
321 handler(new MockMediaStreamDispatcherEventHandler); 321 handler(new MockMediaStreamDispatcherEventHandler);
322 media_stream::StreamOptions components(kAudioType, kVideoType); 322 StreamOptions components(kAudioType, kVideoType);
323 GURL security_origin; 323 GURL security_origin;
324 324
325 // Test failure when creating a stream. 325 // Test failure when creating a stream.
326 int ipc_request_id1 = dispatcher->next_ipc_id_; 326 int ipc_request_id1 = dispatcher->next_ipc_id_;
327 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), 327 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(),
328 components, security_origin); 328 components, security_origin);
329 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerationFailed( 329 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerationFailed(
330 kRouteId, ipc_request_id1)); 330 kRouteId, ipc_request_id1));
331 331
332 // Verify that the request have been completed. 332 // Verify that the request have been completed.
333 EXPECT_EQ(handler->request_id_, kRequestId1); 333 EXPECT_EQ(handler->request_id_, kRequestId1);
334 EXPECT_EQ(dispatcher->requests_.size(), size_t(0)); 334 EXPECT_EQ(dispatcher->requests_.size(), size_t(0));
335 335
336 // Create a new stream. 336 // Create a new stream.
337 ipc_request_id1 = dispatcher->next_ipc_id_; 337 ipc_request_id1 = dispatcher->next_ipc_id_;
338 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), 338 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(),
339 components, security_origin); 339 components, security_origin);
340 340
341 media_stream::StreamDeviceInfoArray audio_device_array(1); 341 StreamDeviceInfoArray audio_device_array(1);
342 media_stream::StreamDeviceInfo audio_device_info; 342 StreamDeviceInfo audio_device_info;
343 audio_device_info.name = "Microphone"; 343 audio_device_info.name = "Microphone";
344 audio_device_info.stream_type = kAudioType; 344 audio_device_info.stream_type = kAudioType;
345 audio_device_info.session_id = kAudioSessionId; 345 audio_device_info.session_id = kAudioSessionId;
346 audio_device_array[0] = audio_device_info; 346 audio_device_array[0] = audio_device_info;
347 347
348 media_stream::StreamDeviceInfoArray video_device_array(1); 348 StreamDeviceInfoArray video_device_array(1);
349 media_stream::StreamDeviceInfo video_device_info; 349 StreamDeviceInfo video_device_info;
350 video_device_info.name = "Camera"; 350 video_device_info.name = "Camera";
351 video_device_info.stream_type = kVideoType; 351 video_device_info.stream_type = kVideoType;
352 video_device_info.session_id = kVideoSessionId; 352 video_device_info.session_id = kVideoSessionId;
353 video_device_array[0] = video_device_info; 353 video_device_array[0] = video_device_info;
354 354
355 // Complete the creation of stream1. 355 // Complete the creation of stream1.
356 std::string stream_label1 = std::string("stream1"); 356 std::string stream_label1 = std::string("stream1");
357 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated( 357 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated(
358 kRouteId, ipc_request_id1, stream_label1, 358 kRouteId, ipc_request_id1, stream_label1,
359 audio_device_array, video_device_array)); 359 audio_device_array, video_device_array));
360 EXPECT_EQ(handler->request_id_, kRequestId1); 360 EXPECT_EQ(handler->request_id_, kRequestId1);
361 EXPECT_EQ(handler->label_, stream_label1); 361 EXPECT_EQ(handler->label_, stream_label1);
362 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0), kVideoSessionId); 362 EXPECT_EQ(dispatcher->video_session_id(stream_label1, 0), kVideoSessionId);
363 363
364 // Stop stream1. 364 // Stop stream1.
365 dispatcher->StopStream(stream_label1); 365 dispatcher->StopStream(stream_label1);
366 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0)); 366 EXPECT_EQ(dispatcher->label_stream_map_.size(), size_t(0));
367 } 367 }
368 368
369 TEST(MediaStreamDispatcherTest, CancelGenerateStream) { 369 TEST(MediaStreamDispatcherTest, CancelGenerateStream) {
370 scoped_ptr<MessageLoop> message_loop(new MessageLoop()); 370 scoped_ptr<MessageLoop> message_loop(new MessageLoop());
371 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL)); 371 scoped_ptr<MediaStreamDispatcher> dispatcher(new MediaStreamDispatcher(NULL));
372 scoped_ptr<MockMediaStreamDispatcherEventHandler> 372 scoped_ptr<MockMediaStreamDispatcherEventHandler>
373 handler(new MockMediaStreamDispatcherEventHandler); 373 handler(new MockMediaStreamDispatcherEventHandler);
374 media_stream::StreamOptions components(kAudioType, kVideoType); 374 StreamOptions components(kAudioType, kVideoType);
375 int ipc_request_id1 = dispatcher->next_ipc_id_; 375 int ipc_request_id1 = dispatcher->next_ipc_id_;
376 376
377 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(), 377 dispatcher->GenerateStream(kRequestId1, handler.get()->AsWeakPtr(),
378 components, GURL()); 378 components, GURL());
379 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(), 379 dispatcher->GenerateStream(kRequestId2, handler.get()->AsWeakPtr(),
380 components, GURL()); 380 components, GURL());
381 381
382 EXPECT_EQ(2u, dispatcher->requests_.size()); 382 EXPECT_EQ(2u, dispatcher->requests_.size());
383 dispatcher->CancelGenerateStream(kRequestId2); 383 dispatcher->CancelGenerateStream(kRequestId2);
384 EXPECT_EQ(1u, dispatcher->requests_.size()); 384 EXPECT_EQ(1u, dispatcher->requests_.size());
385 385
386 // Complete the creation of stream1. 386 // Complete the creation of stream1.
387 media_stream::StreamDeviceInfo audio_device_info; 387 StreamDeviceInfo audio_device_info;
388 audio_device_info.name = "Microphone"; 388 audio_device_info.name = "Microphone";
389 audio_device_info.stream_type = kAudioType; 389 audio_device_info.stream_type = kAudioType;
390 audio_device_info.session_id = kAudioSessionId; 390 audio_device_info.session_id = kAudioSessionId;
391 media_stream::StreamDeviceInfoArray audio_device_array(1); 391 StreamDeviceInfoArray audio_device_array(1);
392 audio_device_array[0] = audio_device_info; 392 audio_device_array[0] = audio_device_info;
393 393
394 media_stream::StreamDeviceInfo video_device_info; 394 StreamDeviceInfo video_device_info;
395 video_device_info.name = "Camera"; 395 video_device_info.name = "Camera";
396 video_device_info.stream_type = kVideoType; 396 video_device_info.stream_type = kVideoType;
397 video_device_info.session_id = kVideoSessionId; 397 video_device_info.session_id = kVideoSessionId;
398 media_stream::StreamDeviceInfoArray video_device_array(1); 398 StreamDeviceInfoArray video_device_array(1);
399 video_device_array[0] = video_device_info; 399 video_device_array[0] = video_device_info;
400 400
401 std::string stream_label1 = "stream1"; 401 std::string stream_label1 = "stream1";
402 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated( 402 dispatcher->OnMessageReceived(MediaStreamMsg_StreamGenerated(
403 kRouteId, ipc_request_id1, stream_label1, 403 kRouteId, ipc_request_id1, stream_label1,
404 audio_device_array, video_device_array)); 404 audio_device_array, video_device_array));
405 EXPECT_EQ(handler->request_id_, kRequestId1); 405 EXPECT_EQ(handler->request_id_, kRequestId1);
406 EXPECT_EQ(handler->label_, stream_label1); 406 EXPECT_EQ(handler->label_, stream_label1);
407 EXPECT_EQ(0u, dispatcher->requests_.size()); 407 EXPECT_EQ(0u, dispatcher->requests_.size());
408 } 408 }
409 409
410 } // namespace content 410 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698