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

Side by Side Diff: media/blink/key_system_config_selector_unittest.cc

Issue 2686133002: EME: Require codecs parameter for audio/videoCapabilities (Closed)
Patch Set: Created 3 years, 10 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 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698