Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 626 | 626 |
| 627 ASSERT_TRUE(SelectConfigReturnsError()); | 627 ASSERT_TRUE(SelectConfigReturnsError()); |
| 628 } | 628 } |
| 629 | 629 |
| 630 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_SubsetSupported) { | 630 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_SubsetSupported) { |
| 631 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(2); | 631 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(2); |
| 632 video_capabilities[0].contentType = "a"; | 632 video_capabilities[0].contentType = "a"; |
| 633 video_capabilities[0].mimeType = kUnsupportedContainer; | 633 video_capabilities[0].mimeType = kUnsupportedContainer; |
| 634 video_capabilities[1].contentType = "b"; | 634 video_capabilities[1].contentType = "b"; |
| 635 video_capabilities[1].mimeType = kSupportedVideoContainer; | 635 video_capabilities[1].mimeType = kSupportedVideoContainer; |
| 636 video_capabilities[1].codecs = kSupportedVideoCodec; | |
|
xhwang
2017/02/09 20:07:55
Can we add a test where everything in the capabili
jrummell
2017/02/09 23:36:08
Done.
| |
| 636 | 637 |
| 637 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 638 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 638 config.videoCapabilities = video_capabilities; | 639 config.videoCapabilities = video_capabilities; |
| 639 configs_.push_back(config); | 640 configs_.push_back(config); |
| 640 | 641 |
| 641 ASSERT_TRUE(SelectConfigReturnsConfig()); | 642 ASSERT_TRUE(SelectConfigReturnsConfig()); |
| 642 ASSERT_EQ(1u, config_.videoCapabilities.size()); | 643 ASSERT_EQ(1u, config_.videoCapabilities.size()); |
| 643 EXPECT_EQ("b", config_.videoCapabilities[0].contentType); | 644 EXPECT_EQ("b", config_.videoCapabilities[0].contentType); |
| 644 EXPECT_EQ(kSupportedVideoContainer, config_.videoCapabilities[0].mimeType); | 645 EXPECT_EQ(kSupportedVideoContainer, config_.videoCapabilities[0].mimeType); |
| 645 } | 646 } |
| 646 | 647 |
| 647 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_AllSupported) { | 648 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_AllSupported) { |
| 648 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(2); | 649 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(2); |
| 649 video_capabilities[0].contentType = "a"; | 650 video_capabilities[0].contentType = "a"; |
| 650 video_capabilities[0].mimeType = kSupportedVideoContainer; | 651 video_capabilities[0].mimeType = kSupportedVideoContainer; |
| 652 video_capabilities[0].codecs = kSupportedVideoCodecs; | |
| 651 video_capabilities[1].contentType = "b"; | 653 video_capabilities[1].contentType = "b"; |
| 652 video_capabilities[1].mimeType = kSupportedVideoContainer; | 654 video_capabilities[1].mimeType = kSupportedVideoContainer; |
| 653 video_capabilities[1].codecs = kSupportedVideoCodecs; | 655 video_capabilities[1].codecs = kSupportedVideoCodecs; |
| 654 | 656 |
| 655 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 657 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 656 config.videoCapabilities = video_capabilities; | 658 config.videoCapabilities = video_capabilities; |
| 657 configs_.push_back(config); | 659 configs_.push_back(config); |
| 658 | 660 |
| 659 ASSERT_TRUE(SelectConfigReturnsConfig()); | 661 ASSERT_TRUE(SelectConfigReturnsConfig()); |
| 660 ASSERT_EQ(2u, config_.videoCapabilities.size()); | 662 ASSERT_EQ(2u, config_.videoCapabilities.size()); |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 688 | 690 |
| 689 ASSERT_TRUE(SelectConfigReturnsConfig()); | 691 ASSERT_TRUE(SelectConfigReturnsConfig()); |
| 690 ASSERT_EQ(1u, config_.videoCapabilities.size()); | 692 ASSERT_EQ(1u, config_.videoCapabilities.size()); |
| 691 EXPECT_EQ(kSupportedVideoCodecs, config_.videoCapabilities[0].codecs); | 693 EXPECT_EQ(kSupportedVideoCodecs, config_.videoCapabilities[0].codecs); |
| 692 } | 694 } |
| 693 | 695 |
| 694 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Empty) { | 696 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Empty) { |
| 695 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); | 697 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| 696 video_capabilities[0].contentType = "a"; | 698 video_capabilities[0].contentType = "a"; |
| 697 video_capabilities[0].mimeType = kSupportedVideoContainer; | 699 video_capabilities[0].mimeType = kSupportedVideoContainer; |
| 700 video_capabilities[0].codecs = kSupportedVideoCodec; | |
| 698 ASSERT_TRUE(video_capabilities[0].robustness.isEmpty()); | 701 ASSERT_TRUE(video_capabilities[0].robustness.isEmpty()); |
| 699 | 702 |
| 700 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 703 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 701 config.videoCapabilities = video_capabilities; | 704 config.videoCapabilities = video_capabilities; |
| 702 configs_.push_back(config); | 705 configs_.push_back(config); |
| 703 | 706 |
| 704 ASSERT_TRUE(SelectConfigReturnsConfig()); | 707 ASSERT_TRUE(SelectConfigReturnsConfig()); |
| 705 ASSERT_EQ(1u, config_.videoCapabilities.size()); | 708 ASSERT_EQ(1u, config_.videoCapabilities.size()); |
| 706 EXPECT_TRUE(config_.videoCapabilities[0].robustness.isEmpty()); | 709 EXPECT_TRUE(config_.videoCapabilities[0].robustness.isEmpty()); |
| 707 } | 710 } |
| 708 | 711 |
| 709 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Supported) { | 712 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Supported) { |
| 710 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); | 713 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| 711 video_capabilities[0].contentType = "a"; | 714 video_capabilities[0].contentType = "a"; |
| 712 video_capabilities[0].mimeType = kSupportedVideoContainer; | 715 video_capabilities[0].mimeType = kSupportedVideoContainer; |
| 716 video_capabilities[0].codecs = kSupportedVideoCodec; | |
| 713 video_capabilities[0].robustness = kSupported; | 717 video_capabilities[0].robustness = kSupported; |
| 714 | 718 |
| 715 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 719 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 716 config.videoCapabilities = video_capabilities; | 720 config.videoCapabilities = video_capabilities; |
| 717 configs_.push_back(config); | 721 configs_.push_back(config); |
| 718 | 722 |
| 719 ASSERT_TRUE(SelectConfigReturnsConfig()); | 723 ASSERT_TRUE(SelectConfigReturnsConfig()); |
| 720 ASSERT_EQ(1u, config_.videoCapabilities.size()); | 724 ASSERT_EQ(1u, config_.videoCapabilities.size()); |
| 721 EXPECT_EQ(kSupported, config_.videoCapabilities[0].robustness); | 725 EXPECT_EQ(kSupported, config_.videoCapabilities[0].robustness); |
| 722 } | 726 } |
| 723 | 727 |
| 724 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Unsupported) { | 728 TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Unsupported) { |
| 725 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); | 729 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| 726 video_capabilities[0].contentType = "a"; | 730 video_capabilities[0].contentType = "a"; |
| 727 video_capabilities[0].mimeType = kSupportedVideoContainer; | 731 video_capabilities[0].mimeType = kSupportedVideoContainer; |
| 732 video_capabilities[0].codecs = kSupportedVideoCodec; | |
| 728 video_capabilities[0].robustness = kUnsupported; | 733 video_capabilities[0].robustness = kUnsupported; |
| 729 | 734 |
| 730 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 735 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 731 config.videoCapabilities = video_capabilities; | 736 config.videoCapabilities = video_capabilities; |
| 732 configs_.push_back(config); | 737 configs_.push_back(config); |
| 733 | 738 |
| 734 ASSERT_TRUE(SelectConfigReturnsError()); | 739 ASSERT_TRUE(SelectConfigReturnsError()); |
| 735 } | 740 } |
| 736 | 741 |
| 737 TEST_F(KeySystemConfigSelectorTest, | 742 TEST_F(KeySystemConfigSelectorTest, |
| 738 VideoCapabilities_Robustness_PermissionCanBeRequired) { | 743 VideoCapabilities_Robustness_PermissionCanBeRequired) { |
| 739 media_permission_->is_granted = true; | 744 media_permission_->is_granted = true; |
| 740 key_systems_->distinctive_identifier = EmeFeatureSupport::REQUESTABLE; | 745 key_systems_->distinctive_identifier = EmeFeatureSupport::REQUESTABLE; |
| 741 | 746 |
| 742 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); | 747 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| 743 video_capabilities[0].contentType = "a"; | 748 video_capabilities[0].contentType = "a"; |
| 744 video_capabilities[0].mimeType = kSupportedVideoContainer; | 749 video_capabilities[0].mimeType = kSupportedVideoContainer; |
| 750 video_capabilities[0].codecs = kSupportedVideoCodec; | |
| 745 video_capabilities[0].robustness = kRequireIdentifier; | 751 video_capabilities[0].robustness = kRequireIdentifier; |
| 746 | 752 |
| 747 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 753 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 748 config.videoCapabilities = video_capabilities; | 754 config.videoCapabilities = video_capabilities; |
| 749 configs_.push_back(config); | 755 configs_.push_back(config); |
| 750 | 756 |
| 751 ASSERT_TRUE(SelectConfigRequestsPermissionAndReturnsConfig()); | 757 ASSERT_TRUE(SelectConfigRequestsPermissionAndReturnsConfig()); |
| 752 EXPECT_EQ(blink::WebMediaKeySystemConfiguration::Requirement::Required, | 758 EXPECT_EQ(blink::WebMediaKeySystemConfiguration::Requirement::Required, |
| 753 config_.distinctiveIdentifier); | 759 config_.distinctiveIdentifier); |
| 754 } | 760 } |
| 755 | 761 |
| 756 TEST_F(KeySystemConfigSelectorTest, | 762 TEST_F(KeySystemConfigSelectorTest, |
| 757 VideoCapabilities_Robustness_PermissionCanBeRecommended) { | 763 VideoCapabilities_Robustness_PermissionCanBeRecommended) { |
| 758 media_permission_->is_granted = false; | 764 media_permission_->is_granted = false; |
| 759 key_systems_->distinctive_identifier = EmeFeatureSupport::REQUESTABLE; | 765 key_systems_->distinctive_identifier = EmeFeatureSupport::REQUESTABLE; |
| 760 | 766 |
| 761 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); | 767 std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| 762 video_capabilities[0].contentType = "a"; | 768 video_capabilities[0].contentType = "a"; |
| 763 video_capabilities[0].mimeType = kSupportedVideoContainer; | 769 video_capabilities[0].mimeType = kSupportedVideoContainer; |
| 770 video_capabilities[0].codecs = kSupportedVideoCodec; | |
| 764 video_capabilities[0].robustness = kRecommendIdentifier; | 771 video_capabilities[0].robustness = kRecommendIdentifier; |
| 765 | 772 |
| 766 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 773 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 767 config.videoCapabilities = video_capabilities; | 774 config.videoCapabilities = video_capabilities; |
| 768 configs_.push_back(config); | 775 configs_.push_back(config); |
| 769 | 776 |
| 770 ASSERT_TRUE(SelectConfigRequestsPermissionAndReturnsConfig()); | 777 ASSERT_TRUE(SelectConfigRequestsPermissionAndReturnsConfig()); |
| 771 EXPECT_EQ(blink::WebMediaKeySystemConfiguration::Requirement::NotAllowed, | 778 EXPECT_EQ(blink::WebMediaKeySystemConfiguration::Requirement::NotAllowed, |
| 772 config_.distinctiveIdentifier); | 779 config_.distinctiveIdentifier); |
| 773 } | 780 } |
| 774 | 781 |
| 775 // --- audioCapabilities --- | 782 // --- audioCapabilities --- |
| 776 // These are handled by the same code as |videoCapabilities|, so only minimal | 783 // These are handled by the same code as |videoCapabilities|, so only minimal |
| 777 // additional testing is done. | 784 // additional testing is done. |
| 778 | 785 |
| 779 TEST_F(KeySystemConfigSelectorTest, AudioCapabilities_SubsetSupported) { | 786 TEST_F(KeySystemConfigSelectorTest, AudioCapabilities_SubsetSupported) { |
| 780 std::vector<blink::WebMediaKeySystemMediaCapability> audio_capabilities(2); | 787 std::vector<blink::WebMediaKeySystemMediaCapability> audio_capabilities(2); |
| 781 audio_capabilities[0].contentType = "a"; | 788 audio_capabilities[0].contentType = "a"; |
| 782 audio_capabilities[0].mimeType = kUnsupportedContainer; | 789 audio_capabilities[0].mimeType = kUnsupportedContainer; |
| 783 audio_capabilities[1].contentType = "b"; | 790 audio_capabilities[1].contentType = "b"; |
| 784 audio_capabilities[1].mimeType = kSupportedAudioContainer; | 791 audio_capabilities[1].mimeType = kSupportedAudioContainer; |
| 792 audio_capabilities[1].codecs = kSupportedAudioCodec; | |
| 785 | 793 |
| 786 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); | 794 blink::WebMediaKeySystemConfiguration config = EmptyConfiguration(); |
| 787 config.audioCapabilities = audio_capabilities; | 795 config.audioCapabilities = audio_capabilities; |
| 788 configs_.push_back(config); | 796 configs_.push_back(config); |
| 789 | 797 |
| 790 ASSERT_TRUE(SelectConfigReturnsConfig()); | 798 ASSERT_TRUE(SelectConfigReturnsConfig()); |
| 791 ASSERT_EQ(1u, config_.audioCapabilities.size()); | 799 ASSERT_EQ(1u, config_.audioCapabilities.size()); |
| 792 EXPECT_EQ("b", config_.audioCapabilities[0].contentType); | 800 EXPECT_EQ("b", config_.audioCapabilities[0].contentType); |
| 793 EXPECT_EQ(kSupportedAudioContainer, config_.audioCapabilities[0].mimeType); | 801 EXPECT_EQ(kSupportedAudioContainer, config_.audioCapabilities[0].mimeType); |
| 794 } | 802 } |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 854 | 862 |
| 855 blink::WebMediaKeySystemConfiguration config2 = UsableConfiguration(); | 863 blink::WebMediaKeySystemConfiguration config2 = UsableConfiguration(); |
| 856 config2.label = "b"; | 864 config2.label = "b"; |
| 857 configs_.push_back(config2); | 865 configs_.push_back(config2); |
| 858 | 866 |
| 859 ASSERT_TRUE(SelectConfigRequestsPermissionAndReturnsConfig()); | 867 ASSERT_TRUE(SelectConfigRequestsPermissionAndReturnsConfig()); |
| 860 ASSERT_EQ("b", config_.label); | 868 ASSERT_EQ("b", config_.label); |
| 861 } | 869 } |
| 862 | 870 |
| 863 } // namespace media | 871 } // namespace media |
| OLD | NEW |