Chromium Code Reviews| Index: media/blink/key_system_config_selector_unittest.cc |
| diff --git a/media/blink/key_system_config_selector_unittest.cc b/media/blink/key_system_config_selector_unittest.cc |
| index 0ca129571a52937dbfc77eb2da42198cc2b5ff24..6d561cd7ca957777c0cde6447e49234a574288da 100644 |
| --- a/media/blink/key_system_config_selector_unittest.cc |
| +++ b/media/blink/key_system_config_selector_unittest.cc |
| @@ -29,16 +29,16 @@ const char kRecommendIdentifier[] = "recommend_identifier"; |
| const char kRequireIdentifier[] = "require_identifier"; |
| const char kUnsupported[] = "unsupported"; |
| -// TODO(sandersd): Audio and video variants (doesn't matter for now because the |
| -// checks are in KeySystems). |
| -const char kSupportedContainer[] = "video/webm"; |
| +const char kSupportedVideoContainer[] = "video/webm"; |
| +const char kSupportedAudioContainer[] = "audio/webm"; |
| const char kUnsupportedContainer[] = "video/foo"; |
| // TODO(sandersd): Extended codec variants (requires proprietary codec support). |
| -const char kSupportedCodec[] = "vp8"; |
| +const char kSupportedVideoCodec[] = "vp8"; |
| +const char kSupportedAudioCodec[] = "opus"; |
| const char kUnsupportedCodec[] = "foo"; |
| const char kUnsupportedCodecs[] = "vp8,foo"; |
| -const char kSupportedCodecs[] = "vp8,vp8"; |
| +const char kSupportedVideoCodecs[] = "vp8,vp8"; |
| const char kDefaultSecurityOrigin[] = "https://example.com/"; |
| @@ -53,9 +53,18 @@ blink::WebMediaKeySystemConfiguration DefaultConfiguration() { |
| std::vector<blink::WebEncryptedMediaSessionType> session_types; |
| session_types.push_back(blink::WebEncryptedMediaSessionType::Temporary); |
| + // EME spec requires that at least one of |video_capabilities| and |
| + // |audio_capabilities| be specified. Add a single valid audio capability |
| + // here. blink code parses the contentType into mimeType and codecs, so |
| + // mimic that here. |
| + std::vector<blink::WebMediaKeySystemMediaCapability> audio_capabilities(1); |
| + audio_capabilities[0].mimeType = kSupportedAudioContainer; |
| + audio_capabilities[0].codecs = kSupportedAudioCodec; |
| + |
| blink::WebMediaKeySystemConfiguration config; |
| config.label = ""; |
| config.sessionTypes = session_types; |
| + config.audioCapabilities = audio_capabilities; |
| return config; |
| } |
| @@ -95,11 +104,25 @@ class FakeKeySystems : public KeySystems { |
| const std::vector<std::string>& codecs) const override { |
| if (container_mime_type == kUnsupportedContainer) |
| return EmeConfigRule::NOT_SUPPORTED; |
| - DCHECK_EQ(kSupportedContainer, container_mime_type); |
| + switch (media_type) { |
| + case EmeMediaType::AUDIO: |
| + DCHECK_EQ(kSupportedAudioContainer, container_mime_type); |
| + break; |
| + case EmeMediaType::VIDEO: |
| + DCHECK_EQ(kSupportedVideoContainer, container_mime_type); |
| + break; |
| + } |
| for (const std::string& codec : codecs) { |
| if (codec == kUnsupportedCodec) |
| return EmeConfigRule::NOT_SUPPORTED; |
| - DCHECK_EQ(kSupportedCodec, codec); |
| + switch (media_type) { |
| + case EmeMediaType::AUDIO: |
| + DCHECK_EQ(kSupportedAudioCodec, codec); |
| + break; |
| + case EmeMediaType::VIDEO: |
| + DCHECK_EQ(kSupportedVideoCodec, codec); |
| + break; |
| + } |
| } |
| return EmeConfigRule::SUPPORTED; |
| } |
| @@ -273,7 +296,7 @@ TEST_F(KeySystemConfigSelectorTest, DefaultConfig) { |
| ASSERT_EQ(0u, config.initDataTypes.size()); |
| // audioCapabilities = []; |
| - ASSERT_EQ(0u, config.audioCapabilities.size()); |
| + ASSERT_EQ(1u, config.audioCapabilities.size()); |
| // videoCapabilities = []; |
| ASSERT_EQ(0u, config.videoCapabilities.size()); |
| @@ -301,7 +324,7 @@ TEST_F(KeySystemConfigSelectorTest, EmptyConfig) { |
| ASSERT_TRUE(SelectConfigReturnsConfig()); |
| EXPECT_EQ("", config_.label); |
| EXPECT_TRUE(config_.initDataTypes.isEmpty()); |
| - EXPECT_TRUE(config_.audioCapabilities.isEmpty()); |
| + EXPECT_EQ(1u, config_.audioCapabilities.size()); |
|
xhwang
2017/02/02 18:31:20
The test is called EmptyConfig. Is it still accura
jrummell
2017/02/02 20:03:24
Updated the test to make sure EmptyConfig fails, a
|
| EXPECT_TRUE(config_.videoCapabilities.isEmpty()); |
| EXPECT_EQ(blink::WebMediaKeySystemConfiguration::Requirement::NotAllowed, |
| config_.distinctiveIdentifier); |
| @@ -578,7 +601,7 @@ TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_NoneSupported) { |
| video_capabilities[0].contentType = "a"; |
| video_capabilities[0].mimeType = kUnsupportedContainer; |
| video_capabilities[1].contentType = "b"; |
| - video_capabilities[1].mimeType = kSupportedContainer; |
| + video_capabilities[1].mimeType = kSupportedVideoContainer; |
| video_capabilities[1].codecs = kUnsupportedCodec; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| @@ -593,7 +616,7 @@ TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_SubsetSupported) { |
| video_capabilities[0].contentType = "a"; |
| video_capabilities[0].mimeType = kUnsupportedContainer; |
| video_capabilities[1].contentType = "b"; |
| - video_capabilities[1].mimeType = kSupportedContainer; |
| + video_capabilities[1].mimeType = kSupportedVideoContainer; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| config.videoCapabilities = video_capabilities; |
| @@ -602,16 +625,16 @@ TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_SubsetSupported) { |
| ASSERT_TRUE(SelectConfigReturnsConfig()); |
| ASSERT_EQ(1u, config_.videoCapabilities.size()); |
| EXPECT_EQ("b", config_.videoCapabilities[0].contentType); |
| - EXPECT_EQ(kSupportedContainer, config_.videoCapabilities[0].mimeType); |
| + EXPECT_EQ(kSupportedVideoContainer, config_.videoCapabilities[0].mimeType); |
| } |
| TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_AllSupported) { |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(2); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| video_capabilities[1].contentType = "b"; |
| - video_capabilities[1].mimeType = kSupportedContainer; |
| - video_capabilities[1].codecs = kSupportedCodecs; |
| + video_capabilities[1].mimeType = kSupportedVideoContainer; |
| + video_capabilities[1].codecs = kSupportedVideoCodecs; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| config.videoCapabilities = video_capabilities; |
| @@ -627,7 +650,7 @@ TEST_F(KeySystemConfigSelectorTest, |
| VideoCapabilities_Codecs_SubsetSupported) { |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| video_capabilities[0].codecs = kUnsupportedCodecs; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| @@ -640,8 +663,8 @@ TEST_F(KeySystemConfigSelectorTest, |
| TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Codecs_AllSupported) { |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| - video_capabilities[0].codecs = kSupportedCodecs; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| + video_capabilities[0].codecs = kSupportedVideoCodecs; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| config.videoCapabilities = video_capabilities; |
| @@ -649,13 +672,13 @@ TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Codecs_AllSupported) { |
| ASSERT_TRUE(SelectConfigReturnsConfig()); |
| ASSERT_EQ(1u, config_.videoCapabilities.size()); |
| - EXPECT_EQ(kSupportedCodecs, config_.videoCapabilities[0].codecs); |
| + EXPECT_EQ(kSupportedVideoCodecs, config_.videoCapabilities[0].codecs); |
| } |
| TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Empty) { |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| ASSERT_TRUE(video_capabilities[0].robustness.isEmpty()); |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| @@ -670,7 +693,7 @@ TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Empty) { |
| TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Supported) { |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| video_capabilities[0].robustness = kSupported; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| @@ -685,7 +708,7 @@ TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Supported) { |
| TEST_F(KeySystemConfigSelectorTest, VideoCapabilities_Robustness_Unsupported) { |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| video_capabilities[0].robustness = kUnsupported; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| @@ -702,7 +725,7 @@ TEST_F(KeySystemConfigSelectorTest, |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| video_capabilities[0].robustness = kRequireIdentifier; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| @@ -721,7 +744,7 @@ TEST_F(KeySystemConfigSelectorTest, |
| std::vector<blink::WebMediaKeySystemMediaCapability> video_capabilities(1); |
| video_capabilities[0].contentType = "a"; |
| - video_capabilities[0].mimeType = kSupportedContainer; |
| + video_capabilities[0].mimeType = kSupportedVideoContainer; |
| video_capabilities[0].robustness = kRecommendIdentifier; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| @@ -742,7 +765,7 @@ TEST_F(KeySystemConfigSelectorTest, AudioCapabilities_SubsetSupported) { |
| audio_capabilities[0].contentType = "a"; |
| audio_capabilities[0].mimeType = kUnsupportedContainer; |
| audio_capabilities[1].contentType = "b"; |
| - audio_capabilities[1].mimeType = kSupportedContainer; |
| + audio_capabilities[1].mimeType = kSupportedAudioContainer; |
| blink::WebMediaKeySystemConfiguration config = DefaultConfiguration(); |
| config.audioCapabilities = audio_capabilities; |
| @@ -751,7 +774,7 @@ TEST_F(KeySystemConfigSelectorTest, AudioCapabilities_SubsetSupported) { |
| ASSERT_TRUE(SelectConfigReturnsConfig()); |
| ASSERT_EQ(1u, config_.audioCapabilities.size()); |
| EXPECT_EQ("b", config_.audioCapabilities[0].contentType); |
| - EXPECT_EQ(kSupportedContainer, config_.audioCapabilities[0].mimeType); |
| + EXPECT_EQ(kSupportedAudioContainer, config_.audioCapabilities[0].mimeType); |
| } |
| // --- Multiple configurations --- |