OLD | NEW |
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 #include <queue> | 6 #include <queue> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 } | 325 } |
326 | 326 |
327 bool DoesEveryDeviceMapToRawId(const StreamDeviceInfoArray& devices, | 327 bool DoesEveryDeviceMapToRawId(const StreamDeviceInfoArray& devices, |
328 const GURL& origin) { | 328 const GURL& origin) { |
329 for (size_t i = 0; i < devices.size(); ++i) { | 329 for (size_t i = 0; i < devices.size(); ++i) { |
330 bool found_match = false; | 330 bool found_match = false; |
331 media::AudioDeviceNames::const_iterator audio_it = | 331 media::AudioDeviceNames::const_iterator audio_it = |
332 physical_audio_devices_.begin(); | 332 physical_audio_devices_.begin(); |
333 for (; audio_it != physical_audio_devices_.end(); ++audio_it) { | 333 for (; audio_it != physical_audio_devices_.end(); ++audio_it) { |
334 if (content::DoesMediaDeviceIDMatchHMAC( | 334 if (content::DoesMediaDeviceIDMatchHMAC( |
335 browser_context_.GetResourceContext(), | 335 browser_context_.GetResourceContext()->GetMediaDeviceIDSalt(), |
336 origin, | 336 origin, |
337 devices[i].device.id, | 337 devices[i].device.id, |
338 audio_it->unique_id)) { | 338 audio_it->unique_id)) { |
339 EXPECT_FALSE(found_match); | 339 EXPECT_FALSE(found_match); |
340 found_match = true; | 340 found_match = true; |
341 } | 341 } |
342 } | 342 } |
343 media::VideoCaptureDevice::Names::const_iterator video_it = | 343 media::VideoCaptureDevice::Names::const_iterator video_it = |
344 physical_video_devices_.begin(); | 344 physical_video_devices_.begin(); |
345 for (; video_it != physical_video_devices_.end(); ++video_it) { | 345 for (; video_it != physical_video_devices_.end(); ++video_it) { |
346 if (content::DoesMediaDeviceIDMatchHMAC( | 346 if (content::DoesMediaDeviceIDMatchHMAC( |
347 browser_context_.GetResourceContext(), | 347 browser_context_.GetResourceContext()->GetMediaDeviceIDSalt(), |
348 origin, | 348 origin, |
349 devices[i].device.id, | 349 devices[i].device.id, |
350 video_it->id())) { | 350 video_it->id())) { |
351 EXPECT_FALSE(found_match); | 351 EXPECT_FALSE(found_match); |
352 found_match = true; | 352 found_match = true; |
353 } | 353 } |
354 } | 354 } |
355 if (!found_match) | 355 if (!found_match) |
356 return false; | 356 return false; |
357 } | 357 } |
358 return true; | 358 return true; |
359 } | 359 } |
360 | 360 |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 // Test that we can generate streams where a mandatory sourceId is specified in | 530 // Test that we can generate streams where a mandatory sourceId is specified in |
531 // the request. | 531 // the request. |
532 TEST_F(MediaStreamDispatcherHostTest, GenerateStreamsWithMandatorySourceId) { | 532 TEST_F(MediaStreamDispatcherHostTest, GenerateStreamsWithMandatorySourceId) { |
533 ASSERT_GE(physical_audio_devices_.size(), 1u); | 533 ASSERT_GE(physical_audio_devices_.size(), 1u); |
534 ASSERT_GE(physical_video_devices_.size(), 1u); | 534 ASSERT_GE(physical_video_devices_.size(), 1u); |
535 | 535 |
536 media::AudioDeviceNames::const_iterator audio_it = | 536 media::AudioDeviceNames::const_iterator audio_it = |
537 physical_audio_devices_.begin(); | 537 physical_audio_devices_.begin(); |
538 for (; audio_it != physical_audio_devices_.end(); ++audio_it) { | 538 for (; audio_it != physical_audio_devices_.end(); ++audio_it) { |
539 std::string source_id = content::GetHMACForMediaDeviceID( | 539 std::string source_id = content::GetHMACForMediaDeviceID( |
540 browser_context_.GetResourceContext(), | 540 browser_context_.GetResourceContext()->GetMediaDeviceIDSalt(), |
541 origin_, | 541 origin_, |
542 audio_it->unique_id); | 542 audio_it->unique_id); |
543 ASSERT_FALSE(source_id.empty()); | 543 ASSERT_FALSE(source_id.empty()); |
544 StreamOptions options(true, true); | 544 StreamOptions options(true, true); |
545 AddSourceIdConstraint(source_id, &options.mandatory_audio); | 545 AddSourceIdConstraint(source_id, &options.mandatory_audio); |
546 | 546 |
547 SetupFakeUI(true); | 547 SetupFakeUI(true); |
548 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); | 548 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); |
549 EXPECT_EQ(host_->audio_devices_[0].device.id, source_id); | 549 EXPECT_EQ(host_->audio_devices_[0].device.id, source_id); |
550 } | 550 } |
551 | 551 |
552 media::VideoCaptureDevice::Names::const_iterator video_it = | 552 media::VideoCaptureDevice::Names::const_iterator video_it = |
553 physical_video_devices_.begin(); | 553 physical_video_devices_.begin(); |
554 for (; video_it != physical_video_devices_.end(); ++video_it) { | 554 for (; video_it != physical_video_devices_.end(); ++video_it) { |
555 std::string source_id = content::GetHMACForMediaDeviceID( | 555 std::string source_id = content::GetHMACForMediaDeviceID( |
556 browser_context_.GetResourceContext(), | 556 browser_context_.GetResourceContext()->GetMediaDeviceIDSalt(), |
557 origin_, | 557 origin_, |
558 video_it->id()); | 558 video_it->id()); |
559 ASSERT_FALSE(source_id.empty()); | 559 ASSERT_FALSE(source_id.empty()); |
560 StreamOptions options(true, true); | 560 StreamOptions options(true, true); |
561 AddSourceIdConstraint(source_id, &options.mandatory_video); | 561 AddSourceIdConstraint(source_id, &options.mandatory_video); |
562 | 562 |
563 SetupFakeUI(true); | 563 SetupFakeUI(true); |
564 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); | 564 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); |
565 EXPECT_EQ(host_->video_devices_[0].device.id, source_id); | 565 EXPECT_EQ(host_->video_devices_[0].device.id, source_id); |
566 } | 566 } |
567 } | 567 } |
568 | 568 |
569 // Test that we can generate streams where a optional sourceId is specified in | 569 // Test that we can generate streams where a optional sourceId is specified in |
570 // the request. | 570 // the request. |
571 TEST_F(MediaStreamDispatcherHostTest, GenerateStreamsWithOptionalSourceId) { | 571 TEST_F(MediaStreamDispatcherHostTest, GenerateStreamsWithOptionalSourceId) { |
572 ASSERT_GE(physical_audio_devices_.size(), 1u); | 572 ASSERT_GE(physical_audio_devices_.size(), 1u); |
573 ASSERT_GE(physical_video_devices_.size(), 1u); | 573 ASSERT_GE(physical_video_devices_.size(), 1u); |
574 | 574 |
575 media::AudioDeviceNames::const_iterator audio_it = | 575 media::AudioDeviceNames::const_iterator audio_it = |
576 physical_audio_devices_.begin(); | 576 physical_audio_devices_.begin(); |
577 for (; audio_it != physical_audio_devices_.end(); ++audio_it) { | 577 for (; audio_it != physical_audio_devices_.end(); ++audio_it) { |
578 std::string source_id = content::GetHMACForMediaDeviceID( | 578 std::string source_id = content::GetHMACForMediaDeviceID( |
579 browser_context_.GetResourceContext(), | 579 browser_context_.GetResourceContext()->GetMediaDeviceIDSalt(), |
580 origin_, | 580 origin_, |
581 audio_it->unique_id); | 581 audio_it->unique_id); |
582 ASSERT_FALSE(source_id.empty()); | 582 ASSERT_FALSE(source_id.empty()); |
583 StreamOptions options(true, true); | 583 StreamOptions options(true, true); |
584 AddSourceIdConstraint(source_id, &options.optional_audio); | 584 AddSourceIdConstraint(source_id, &options.optional_audio); |
585 | 585 |
586 SetupFakeUI(true); | 586 SetupFakeUI(true); |
587 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); | 587 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); |
588 EXPECT_EQ(host_->audio_devices_[0].device.id, source_id); | 588 EXPECT_EQ(host_->audio_devices_[0].device.id, source_id); |
589 } | 589 } |
590 | 590 |
591 media::VideoCaptureDevice::Names::const_iterator video_it = | 591 media::VideoCaptureDevice::Names::const_iterator video_it = |
592 physical_video_devices_.begin(); | 592 physical_video_devices_.begin(); |
593 for (; video_it != physical_video_devices_.end(); ++video_it) { | 593 for (; video_it != physical_video_devices_.end(); ++video_it) { |
594 std::string source_id = content::GetHMACForMediaDeviceID( | 594 std::string source_id = content::GetHMACForMediaDeviceID( |
595 browser_context_.GetResourceContext(), | 595 browser_context_.GetResourceContext()->GetMediaDeviceIDSalt(), |
596 origin_, | 596 origin_, |
597 video_it->id()); | 597 video_it->id()); |
598 ASSERT_FALSE(source_id.empty()); | 598 ASSERT_FALSE(source_id.empty()); |
599 StreamOptions options(true, true); | 599 StreamOptions options(true, true); |
600 AddSourceIdConstraint(source_id, &options.optional_video); | 600 AddSourceIdConstraint(source_id, &options.optional_video); |
601 | 601 |
602 SetupFakeUI(true); | 602 SetupFakeUI(true); |
603 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); | 603 GenerateStreamAndWaitForResult(kRenderId, kPageRequestId, options); |
604 EXPECT_EQ(host_->video_devices_[0].device.id, source_id); | 604 EXPECT_EQ(host_->video_devices_[0].device.id, source_id); |
605 } | 605 } |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId, | 824 EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId, |
825 MEDIA_DEVICE_AUDIO_CAPTURE); | 825 MEDIA_DEVICE_AUDIO_CAPTURE); |
826 } | 826 } |
827 | 827 |
828 TEST_F(MediaStreamDispatcherHostTest, EnumerateVideoDevices) { | 828 TEST_F(MediaStreamDispatcherHostTest, EnumerateVideoDevices) { |
829 EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId, | 829 EnumerateDevicesAndWaitForResult(kRenderId, kPageRequestId, |
830 MEDIA_DEVICE_VIDEO_CAPTURE); | 830 MEDIA_DEVICE_VIDEO_CAPTURE); |
831 } | 831 } |
832 | 832 |
833 }; // namespace content | 833 }; // namespace content |
OLD | NEW |