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

Side by Side Diff: content/browser/renderer_host/media/media_devices_manager_unittest.cc

Issue 2368213002: Remove AudioOutputDeviceEnumerator. Replace usage with MediaDevicesManager. (Closed)
Patch Set: Remove BoolDeviceTypes std::array literals Created 4 years, 2 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "content/browser/renderer_host/media/media_devices_manager.h" 5 #include "content/browser/renderer_host/media/media_devices_manager.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 DISALLOW_COPY_AND_ASSIGN(MediaDevicesManagerTest); 160 DISALLOW_COPY_AND_ASSIGN(MediaDevicesManagerTest);
161 }; 161 };
162 162
163 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheAudioInput) { 163 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheAudioInput) {
164 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)) 164 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_))
165 .Times(kNumCalls); 165 .Times(kNumCalls);
166 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 166 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
167 .Times(0); 167 .Times(0);
168 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0); 168 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0);
169 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls); 169 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls);
170 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
171 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_INPUT] = true;
170 for (int i = 0; i < kNumCalls; i++) { 172 for (int i = 0; i < kNumCalls; i++) {
171 base::RunLoop run_loop; 173 base::RunLoop run_loop;
172 media_devices_manager_->EnumerateDevices( 174 media_devices_manager_->EnumerateDevices(
173 {{true, false, false}}, 175 devices_to_enumerate,
174 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 176 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
175 base::Unretained(this), &run_loop)); 177 base::Unretained(this), &run_loop));
176 run_loop.Run(); 178 run_loop.Run();
177 } 179 }
178 } 180 }
179 181
180 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheVideoInput) { 182 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheVideoInput) {
181 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0); 183 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0);
182 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 184 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
183 .Times(kNumCalls); 185 .Times(kNumCalls);
184 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0); 186 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0);
185 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls); 187 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls);
188 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
189 devices_to_enumerate[MEDIA_DEVICE_TYPE_VIDEO_INPUT] = true;
186 for (int i = 0; i < kNumCalls; i++) { 190 for (int i = 0; i < kNumCalls; i++) {
187 base::RunLoop run_loop; 191 base::RunLoop run_loop;
188 media_devices_manager_->EnumerateDevices( 192 media_devices_manager_->EnumerateDevices(
189 {{false, true, false}}, 193 devices_to_enumerate,
190 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 194 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
191 base::Unretained(this), &run_loop)); 195 base::Unretained(this), &run_loop));
192 run_loop.Run(); 196 run_loop.Run();
193 } 197 }
194 } 198 }
195 199
196 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheAudioOutput) { 200 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheAudioOutput) {
197 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0); 201 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0);
198 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 202 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
199 .Times(0); 203 .Times(0);
200 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)) 204 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_))
201 .Times(kNumCalls); 205 .Times(kNumCalls);
202 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls); 206 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls);
207 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
208 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT] = true;
203 for (int i = 0; i < kNumCalls; i++) { 209 for (int i = 0; i < kNumCalls; i++) {
204 base::RunLoop run_loop; 210 base::RunLoop run_loop;
205 media_devices_manager_->EnumerateDevices( 211 media_devices_manager_->EnumerateDevices(
206 {{false, false, true}}, 212 devices_to_enumerate,
207 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 213 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
208 base::Unretained(this), &run_loop)); 214 base::Unretained(this), &run_loop));
209 run_loop.Run(); 215 run_loop.Run();
210 } 216 }
211 } 217 }
212 218
213 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheAudio) { 219 TEST_F(MediaDevicesManagerTest, EnumerateNoCacheAudio) {
214 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)) 220 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_))
215 .Times(kNumCalls); 221 .Times(kNumCalls);
216 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)) 222 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_))
217 .Times(kNumCalls); 223 .Times(kNumCalls);
218 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls); 224 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls);
225 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
226 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_INPUT] = true;
227 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT] = true;
219 for (int i = 0; i < kNumCalls; i++) { 228 for (int i = 0; i < kNumCalls; i++) {
220 base::RunLoop run_loop; 229 base::RunLoop run_loop;
221 media_devices_manager_->EnumerateDevices( 230 media_devices_manager_->EnumerateDevices(
222 {{true, false, true}}, 231 devices_to_enumerate,
223 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 232 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
224 base::Unretained(this), &run_loop)); 233 base::Unretained(this), &run_loop));
225 run_loop.Run(); 234 run_loop.Run();
226 } 235 }
227 } 236 }
228 237
229 TEST_F(MediaDevicesManagerTest, EnumerateCacheAudio) { 238 TEST_F(MediaDevicesManagerTest, EnumerateCacheAudio) {
230 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(1); 239 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(1);
231 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 240 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
232 .Times(0); 241 .Times(0);
233 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(1); 242 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(1);
234 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls); 243 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls);
235 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_INPUT); 244 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_INPUT);
236 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_OUTPUT); 245 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_OUTPUT);
246 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
247 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_INPUT] = true;
248 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT] = true;
237 for (int i = 0; i < kNumCalls; i++) { 249 for (int i = 0; i < kNumCalls; i++) {
238 base::RunLoop run_loop; 250 base::RunLoop run_loop;
239 media_devices_manager_->EnumerateDevices( 251 media_devices_manager_->EnumerateDevices(
240 {{true, false, true}}, 252 devices_to_enumerate,
241 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 253 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
242 base::Unretained(this), &run_loop)); 254 base::Unretained(this), &run_loop));
243 run_loop.Run(); 255 run_loop.Run();
244 } 256 }
245 } 257 }
246 258
247 TEST_F(MediaDevicesManagerTest, EnumerateCacheVideo) { 259 TEST_F(MediaDevicesManagerTest, EnumerateCacheVideo) {
248 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0); 260 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0);
249 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 261 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
250 .Times(1); 262 .Times(1);
251 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0); 263 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0);
252 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls); 264 EXPECT_CALL(*this, MockCallback(_)).Times(kNumCalls);
253 EnableCache(MEDIA_DEVICE_TYPE_VIDEO_INPUT); 265 EnableCache(MEDIA_DEVICE_TYPE_VIDEO_INPUT);
266 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
267 devices_to_enumerate[MEDIA_DEVICE_TYPE_VIDEO_INPUT] = true;
254 for (int i = 0; i < kNumCalls; i++) { 268 for (int i = 0; i < kNumCalls; i++) {
255 base::RunLoop run_loop; 269 base::RunLoop run_loop;
256 media_devices_manager_->EnumerateDevices( 270 media_devices_manager_->EnumerateDevices(
257 {{false, true, false}}, 271 devices_to_enumerate,
258 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 272 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
259 base::Unretained(this), &run_loop)); 273 base::Unretained(this), &run_loop));
260 run_loop.Run(); 274 run_loop.Run();
261 } 275 }
262 } 276 }
263 277
264 TEST_F(MediaDevicesManagerTest, EnumerateCacheAudioWithDeviceChanges) { 278 TEST_F(MediaDevicesManagerTest, EnumerateCacheAudioWithDeviceChanges) {
265 MediaDeviceEnumeration enumeration; 279 MediaDeviceEnumeration enumeration;
266 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(2); 280 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(2);
267 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 281 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
268 .Times(0); 282 .Times(0);
269 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(2); 283 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(2);
270 EXPECT_CALL(*this, MockCallback(_)) 284 EXPECT_CALL(*this, MockCallback(_))
271 .Times(2 * kNumCalls) 285 .Times(2 * kNumCalls)
272 .WillRepeatedly(SaveArg<0>(&enumeration)); 286 .WillRepeatedly(SaveArg<0>(&enumeration));
273 287
274 size_t num_audio_input_devices = 5; 288 size_t num_audio_input_devices = 5;
275 size_t num_audio_output_devices = 3; 289 size_t num_audio_output_devices = 3;
276 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices); 290 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices);
277 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices); 291 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices);
278 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_INPUT); 292 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_INPUT);
279 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_OUTPUT); 293 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_OUTPUT);
294 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
295 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_INPUT] = true;
296 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT] = true;
280 for (int i = 0; i < kNumCalls; i++) { 297 for (int i = 0; i < kNumCalls; i++) {
281 base::RunLoop run_loop; 298 base::RunLoop run_loop;
282 media_devices_manager_->EnumerateDevices( 299 media_devices_manager_->EnumerateDevices(
283 {{true, false, true}}, 300 devices_to_enumerate,
284 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 301 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
285 base::Unretained(this), &run_loop)); 302 base::Unretained(this), &run_loop));
286 run_loop.Run(); 303 run_loop.Run();
287 EXPECT_EQ(num_audio_input_devices, 304 EXPECT_EQ(num_audio_input_devices,
288 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size()); 305 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size());
289 EXPECT_EQ(num_audio_output_devices, 306 EXPECT_EQ(num_audio_output_devices,
290 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size()); 307 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size());
291 } 308 }
292 309
293 // Simulate device change 310 // Simulate device change
294 num_audio_input_devices = 3; 311 num_audio_input_devices = 3;
295 num_audio_output_devices = 4; 312 num_audio_output_devices = 4;
296 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices); 313 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices);
297 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices); 314 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices);
298 media_devices_manager_->OnDevicesChanged(base::SystemMonitor::DEVTYPE_AUDIO); 315 media_devices_manager_->OnDevicesChanged(base::SystemMonitor::DEVTYPE_AUDIO);
299 316
300 for (int i = 0; i < kNumCalls; i++) { 317 for (int i = 0; i < kNumCalls; i++) {
301 base::RunLoop run_loop; 318 base::RunLoop run_loop;
302 media_devices_manager_->EnumerateDevices( 319 media_devices_manager_->EnumerateDevices(
303 {{true, false, true}}, 320 devices_to_enumerate,
304 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 321 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
305 base::Unretained(this), &run_loop)); 322 base::Unretained(this), &run_loop));
306 run_loop.Run(); 323 run_loop.Run();
307 EXPECT_EQ(num_audio_input_devices, 324 EXPECT_EQ(num_audio_input_devices,
308 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size()); 325 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size());
309 EXPECT_EQ(num_audio_output_devices, 326 EXPECT_EQ(num_audio_output_devices,
310 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size()); 327 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size());
311 } 328 }
312 } 329 }
313 330
314 TEST_F(MediaDevicesManagerTest, EnumerateCacheVideoWithDeviceChanges) { 331 TEST_F(MediaDevicesManagerTest, EnumerateCacheVideoWithDeviceChanges) {
315 MediaDeviceEnumeration enumeration; 332 MediaDeviceEnumeration enumeration;
316 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0); 333 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(0);
317 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 334 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
318 .Times(2); 335 .Times(2);
319 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0); 336 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(0);
320 EXPECT_CALL(*this, MockCallback(_)) 337 EXPECT_CALL(*this, MockCallback(_))
321 .Times(2 * kNumCalls) 338 .Times(2 * kNumCalls)
322 .WillRepeatedly(SaveArg<0>(&enumeration)); 339 .WillRepeatedly(SaveArg<0>(&enumeration));
323 340
324 // Simulate device change 341 // Simulate device change
325 size_t num_video_input_devices = 5; 342 size_t num_video_input_devices = 5;
326 video_capture_device_factory_->set_number_of_devices(num_video_input_devices); 343 video_capture_device_factory_->set_number_of_devices(num_video_input_devices);
327 EnableCache(MEDIA_DEVICE_TYPE_VIDEO_INPUT); 344 EnableCache(MEDIA_DEVICE_TYPE_VIDEO_INPUT);
345 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
346 devices_to_enumerate[MEDIA_DEVICE_TYPE_VIDEO_INPUT] = true;
328 for (int i = 0; i < kNumCalls; i++) { 347 for (int i = 0; i < kNumCalls; i++) {
329 base::RunLoop run_loop; 348 base::RunLoop run_loop;
330 media_devices_manager_->EnumerateDevices( 349 media_devices_manager_->EnumerateDevices(
331 {{false, true, false}}, 350 devices_to_enumerate,
332 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 351 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
333 base::Unretained(this), &run_loop)); 352 base::Unretained(this), &run_loop));
334 run_loop.Run(); 353 run_loop.Run();
335 EXPECT_EQ(num_video_input_devices, 354 EXPECT_EQ(num_video_input_devices,
336 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size()); 355 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size());
337 } 356 }
338 357
339 // Simulate device change 358 // Simulate device change
340 num_video_input_devices = 9; 359 num_video_input_devices = 9;
341 video_capture_device_factory_->set_number_of_devices(num_video_input_devices); 360 video_capture_device_factory_->set_number_of_devices(num_video_input_devices);
342 media_devices_manager_->OnDevicesChanged( 361 media_devices_manager_->OnDevicesChanged(
343 base::SystemMonitor::DEVTYPE_VIDEO_CAPTURE); 362 base::SystemMonitor::DEVTYPE_VIDEO_CAPTURE);
344 363
345 for (int i = 0; i < kNumCalls; i++) { 364 for (int i = 0; i < kNumCalls; i++) {
346 base::RunLoop run_loop; 365 base::RunLoop run_loop;
347 media_devices_manager_->EnumerateDevices( 366 media_devices_manager_->EnumerateDevices(
348 {{false, true, false}}, 367 devices_to_enumerate,
349 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 368 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
350 base::Unretained(this), &run_loop)); 369 base::Unretained(this), &run_loop));
351 run_loop.Run(); 370 run_loop.Run();
352 EXPECT_EQ(num_video_input_devices, 371 EXPECT_EQ(num_video_input_devices,
353 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size()); 372 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size());
354 } 373 }
355 } 374 }
356 375
357 TEST_F(MediaDevicesManagerTest, EnumerateCacheAllWithDeviceChanges) { 376 TEST_F(MediaDevicesManagerTest, EnumerateCacheAllWithDeviceChanges) {
358 MediaDeviceEnumeration enumeration; 377 MediaDeviceEnumeration enumeration;
359 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(2); 378 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(2);
360 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors()) 379 EXPECT_CALL(*video_capture_device_factory_, MockGetDeviceDescriptors())
361 .Times(2); 380 .Times(2);
362 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(2); 381 EXPECT_CALL(*audio_manager_, MockGetAudioInputDeviceNames(_)).Times(2);
363 EXPECT_CALL(*this, MockCallback(_)) 382 EXPECT_CALL(*this, MockCallback(_))
364 .Times(2 * kNumCalls) 383 .Times(2 * kNumCalls)
365 .WillRepeatedly(SaveArg<0>(&enumeration)); 384 .WillRepeatedly(SaveArg<0>(&enumeration));
366 385
367 size_t num_audio_input_devices = 5; 386 size_t num_audio_input_devices = 5;
368 size_t num_video_input_devices = 4; 387 size_t num_video_input_devices = 4;
369 size_t num_audio_output_devices = 3; 388 size_t num_audio_output_devices = 3;
370 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices); 389 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices);
371 video_capture_device_factory_->set_number_of_devices(num_video_input_devices); 390 video_capture_device_factory_->set_number_of_devices(num_video_input_devices);
372 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices); 391 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices);
373 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_INPUT); 392 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_INPUT);
374 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_OUTPUT); 393 EnableCache(MEDIA_DEVICE_TYPE_AUDIO_OUTPUT);
375 EnableCache(MEDIA_DEVICE_TYPE_VIDEO_INPUT); 394 EnableCache(MEDIA_DEVICE_TYPE_VIDEO_INPUT);
395 MediaDevicesManager::BoolDeviceTypes devices_to_enumerate;
396 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_INPUT] = true;
397 devices_to_enumerate[MEDIA_DEVICE_TYPE_VIDEO_INPUT] = true;
398 devices_to_enumerate[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT] = true;
376 for (int i = 0; i < kNumCalls; i++) { 399 for (int i = 0; i < kNumCalls; i++) {
377 base::RunLoop run_loop; 400 base::RunLoop run_loop;
378 media_devices_manager_->EnumerateDevices( 401 media_devices_manager_->EnumerateDevices(
379 {{true, true, true}}, 402 devices_to_enumerate,
380 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 403 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
381 base::Unretained(this), &run_loop)); 404 base::Unretained(this), &run_loop));
382 run_loop.Run(); 405 run_loop.Run();
383 EXPECT_EQ(num_audio_input_devices, 406 EXPECT_EQ(num_audio_input_devices,
384 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size()); 407 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size());
385 EXPECT_EQ(num_video_input_devices, 408 EXPECT_EQ(num_video_input_devices,
386 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size()); 409 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size());
387 EXPECT_EQ(num_audio_output_devices, 410 EXPECT_EQ(num_audio_output_devices,
388 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size()); 411 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size());
389 } 412 }
390 413
391 // Simulate device changes 414 // Simulate device changes
392 num_audio_input_devices = 3; 415 num_audio_input_devices = 3;
393 num_video_input_devices = 2; 416 num_video_input_devices = 2;
394 num_audio_output_devices = 4; 417 num_audio_output_devices = 4;
395 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices); 418 audio_manager_->SetNumAudioInputDevices(num_audio_input_devices);
396 video_capture_device_factory_->set_number_of_devices(num_video_input_devices); 419 video_capture_device_factory_->set_number_of_devices(num_video_input_devices);
397 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices); 420 audio_manager_->SetNumAudioOutputDevices(num_audio_output_devices);
398 media_devices_manager_->OnDevicesChanged(base::SystemMonitor::DEVTYPE_AUDIO); 421 media_devices_manager_->OnDevicesChanged(base::SystemMonitor::DEVTYPE_AUDIO);
399 media_devices_manager_->OnDevicesChanged( 422 media_devices_manager_->OnDevicesChanged(
400 base::SystemMonitor::DEVTYPE_VIDEO_CAPTURE); 423 base::SystemMonitor::DEVTYPE_VIDEO_CAPTURE);
401 424
402 for (int i = 0; i < kNumCalls; i++) { 425 for (int i = 0; i < kNumCalls; i++) {
403 base::RunLoop run_loop; 426 base::RunLoop run_loop;
404 media_devices_manager_->EnumerateDevices( 427 media_devices_manager_->EnumerateDevices(
405 {{true, true, true}}, 428 devices_to_enumerate,
406 base::Bind(&MediaDevicesManagerTest::EnumerateCallback, 429 base::Bind(&MediaDevicesManagerTest::EnumerateCallback,
407 base::Unretained(this), &run_loop)); 430 base::Unretained(this), &run_loop));
408 run_loop.Run(); 431 run_loop.Run();
409 EXPECT_EQ(num_audio_input_devices, 432 EXPECT_EQ(num_audio_input_devices,
410 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size()); 433 enumeration[MEDIA_DEVICE_TYPE_AUDIO_INPUT].size());
411 EXPECT_EQ(num_video_input_devices, 434 EXPECT_EQ(num_video_input_devices,
412 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size()); 435 enumeration[MEDIA_DEVICE_TYPE_VIDEO_INPUT].size());
413 EXPECT_EQ(num_audio_output_devices, 436 EXPECT_EQ(num_audio_output_devices,
414 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size()); 437 enumeration[MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].size());
415 } 438 }
416 } 439 }
417 440
418 } // namespace content 441 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698