| Index: media/base/key_systems_unittest.cc
|
| diff --git a/media/base/key_systems_unittest.cc b/media/base/key_systems_unittest.cc
|
| index 665e68df4b30d07699ee6c2c25539671d791173a..575258575e47bc06cc61f2e768ad1d8fc94c41a1 100644
|
| --- a/media/base/key_systems_unittest.cc
|
| +++ b/media/base/key_systems_unittest.cc
|
| @@ -19,6 +19,7 @@
|
| #include "media/base/media_client.h"
|
| #include "ppapi/features/features.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +#include "third_party/widevine/cdm/widevine_cdm_common.h"
|
|
|
| namespace media {
|
|
|
| @@ -26,9 +27,7 @@ namespace media {
|
| // kUsesAes uses the AesDecryptor like Clear Key.
|
| // kExternal uses an external CDM, such as Pepper-based or Android platform CDM.
|
| const char kUsesAes[] = "x-org.example.clear";
|
| -const char kUseAesNameForUMA[] = "UseAes";
|
| const char kExternal[] = "x-com.example.test";
|
| -const char kExternalNameForUMA[] = "External";
|
|
|
| const char kClearKey[] = "org.w3.clearkey";
|
| const char kExternalClearKey[] = "org.chromium.externalclearkey";
|
| @@ -174,56 +173,21 @@ class TestMediaClient : public MediaClient {
|
| ~TestMediaClient() override;
|
|
|
| // MediaClient implementation.
|
| - void AddKeySystemsInfoForUMA(
|
| - std::vector<KeySystemInfoForUMA>* key_systems_info_for_uma) final;
|
| - bool IsKeySystemsUpdateNeeded() final;
|
| void AddSupportedKeySystems(std::vector<std::unique_ptr<KeySystemProperties>>*
|
| key_systems_properties) override;
|
| void RecordRapporURL(const std::string& metric, const GURL& url) final;
|
| bool IsSupportedVideoConfig(const media::VideoConfig& config) final;
|
| -
|
| - // Helper function to test the case where IsKeySystemsUpdateNeeded() is true
|
| - // after AddSupportedKeySystems() is called.
|
| - void SetKeySystemsUpdateNeeded();
|
| -
|
| - // Helper function to disable "kExternal" key system support so that we can
|
| - // test the key system update case.
|
| - void DisableExternalKeySystemSupport();
|
| -
|
| - private:
|
| - bool is_update_needed_;
|
| - bool supports_external_key_system_;
|
| };
|
|
|
| -TestMediaClient::TestMediaClient()
|
| - : is_update_needed_(true), supports_external_key_system_(true) {
|
| -}
|
| +TestMediaClient::TestMediaClient() {}
|
|
|
| TestMediaClient::~TestMediaClient() {
|
| }
|
|
|
| -void TestMediaClient::AddKeySystemsInfoForUMA(
|
| - std::vector<KeySystemInfoForUMA>* key_systems_info_for_uma) {
|
| - key_systems_info_for_uma->push_back(
|
| - media::KeySystemInfoForUMA(kUsesAes, kUseAesNameForUMA));
|
| - key_systems_info_for_uma->push_back(
|
| - media::KeySystemInfoForUMA(kExternal, kExternalNameForUMA));
|
| -}
|
| -
|
| -bool TestMediaClient::IsKeySystemsUpdateNeeded() {
|
| - return is_update_needed_;
|
| -}
|
| -
|
| void TestMediaClient::AddSupportedKeySystems(
|
| std::vector<std::unique_ptr<KeySystemProperties>>* key_systems) {
|
| - DCHECK(is_update_needed_);
|
| -
|
| key_systems->emplace_back(new AesKeySystemProperties(kUsesAes));
|
| -
|
| - if (supports_external_key_system_)
|
| - key_systems->emplace_back(new ExternalKeySystemProperties());
|
| -
|
| - is_update_needed_ = false;
|
| + key_systems->emplace_back(new ExternalKeySystemProperties());
|
| }
|
|
|
| void TestMediaClient::RecordRapporURL(const std::string& /* metric */,
|
| @@ -235,47 +199,6 @@ bool TestMediaClient::IsSupportedVideoConfig(const media::VideoConfig& config) {
|
| return true;
|
| }
|
|
|
| -void TestMediaClient::SetKeySystemsUpdateNeeded() {
|
| - is_update_needed_ = true;
|
| -}
|
| -
|
| -void TestMediaClient::DisableExternalKeySystemSupport() {
|
| - supports_external_key_system_ = false;
|
| -}
|
| -
|
| -class PotentiallySupportedNamesTestMediaClient : public TestMediaClient {
|
| - void AddSupportedKeySystems(std::vector<std::unique_ptr<KeySystemProperties>>*
|
| - key_systems_properties) final;
|
| -};
|
| -
|
| -void PotentiallySupportedNamesTestMediaClient::AddSupportedKeySystems(
|
| - std::vector<std::unique_ptr<KeySystemProperties>>* key_systems) {
|
| - // org.w3.clearkey is automatically registered.
|
| - key_systems->emplace_back(new AesKeySystemProperties("com.widevine.alpha"));
|
| - key_systems->emplace_back(
|
| - new AesKeySystemProperties("org.chromium.externalclearkey"));
|
| - key_systems->emplace_back(
|
| - new AesKeySystemProperties("org.chromium.externalclearkey.something"));
|
| - key_systems->emplace_back(
|
| - new AesKeySystemProperties("com.chromecast.something"));
|
| - key_systems->emplace_back(new AesKeySystemProperties("x-something"));
|
| -}
|
| -
|
| -class KeySystemsPotentiallySupportedNamesTest : public testing::Test {
|
| - protected:
|
| - KeySystemsPotentiallySupportedNamesTest() {
|
| - SetMediaClient(&test_media_client_);
|
| - }
|
| -
|
| - ~KeySystemsPotentiallySupportedNamesTest() override {
|
| - // Clear the use of |test_media_client_|, which was set in SetUp().
|
| - SetMediaClient(nullptr);
|
| - }
|
| -
|
| - private:
|
| - PotentiallySupportedNamesTestMediaClient test_media_client_;
|
| -};
|
| -
|
| class KeySystemsTest : public testing::Test {
|
| protected:
|
| KeySystemsTest() {
|
| @@ -320,14 +243,11 @@ class KeySystemsTest : public testing::Test {
|
|
|
| ~KeySystemsTest() override {
|
| // Clear the use of |test_media_client_|, which was set in SetUp().
|
| + // NOTE: This does not clear any cached KeySystemProperties in the global
|
| + // KeySystems instance.
|
| SetMediaClient(nullptr);
|
| }
|
|
|
| - void UpdateClientKeySystems() {
|
| - test_media_client_.SetKeySystemsUpdateNeeded();
|
| - test_media_client_.DisableExternalKeySystemSupport();
|
| - }
|
| -
|
| typedef std::vector<std::string> CodecVector;
|
|
|
| const CodecVector& no_codecs() const { return no_codecs_; }
|
| @@ -436,7 +356,7 @@ TEST_F(KeySystemsTest, Basic_UsesAesDecryptor) {
|
| kVideoWebM, no_codecs(), kUsesAes));
|
|
|
| // No UMA value for this test key system.
|
| - EXPECT_EQ("UseAes", GetKeySystemNameForUMA(kUsesAes));
|
| + EXPECT_EQ("Unknown", GetKeySystemNameForUMA(kUsesAes));
|
|
|
| EXPECT_TRUE(CanUseAesDecryptor(kUsesAes));
|
| #if BUILDFLAG(ENABLE_PEPPER_CDMS)
|
| @@ -710,69 +630,12 @@ TEST_F(
|
|
|
| TEST_F(KeySystemsTest, KeySystemNameForUMA) {
|
| EXPECT_EQ("ClearKey", GetKeySystemNameForUMA(kClearKey));
|
| + EXPECT_EQ("Widevine", GetKeySystemNameForUMA(kWidevineKeySystem));
|
| + EXPECT_EQ("Unknown", GetKeySystemNameForUMA("Foo"));
|
|
|
| // External Clear Key never has a UMA name.
|
| if (CanRunExternalKeySystemTests())
|
| EXPECT_EQ("Unknown", GetKeySystemNameForUMA(kExternalClearKey));
|
| }
|
|
|
| -TEST_F(KeySystemsTest, KeySystemsUpdate) {
|
| - EXPECT_TRUE(IsSupportedKeySystem(kUsesAes));
|
| - EXPECT_TRUE(IsSupportedKeySystemWithMediaMimeType(
|
| - kVideoWebM, no_codecs(), kUsesAes));
|
| -
|
| - if (CanRunExternalKeySystemTests()) {
|
| - EXPECT_TRUE(IsSupportedKeySystem(kExternal));
|
| - EXPECT_TRUE(IsSupportedKeySystemWithMediaMimeType(kVideoWebM, no_codecs(),
|
| - kExternal));
|
| - }
|
| -
|
| - UpdateClientKeySystems();
|
| -
|
| - EXPECT_TRUE(IsSupportedKeySystem(kUsesAes));
|
| - EXPECT_TRUE(IsSupportedKeySystemWithMediaMimeType(
|
| - kVideoWebM, no_codecs(), kUsesAes));
|
| - if (CanRunExternalKeySystemTests())
|
| - EXPECT_FALSE(IsSupportedKeySystem(kExternal));
|
| -}
|
| -
|
| -TEST_F(KeySystemsPotentiallySupportedNamesTest, PotentiallySupportedNames) {
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.w3"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.w3."));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.w3.clearke"));
|
| - EXPECT_TRUE(IsSupportedKeySystem("org.w3.clearkey"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.w3.clearkeys"));
|
| -
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.widevine"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.widevine."));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.widevine.alph"));
|
| - EXPECT_TRUE(IsSupportedKeySystem("com.widevine.alpha"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.widevine.beta"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.widevine.alphabeta"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.widevine.alpha.beta"));
|
| -
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.chromium"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.chromium."));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.chromium.externalclearke"));
|
| - EXPECT_TRUE(IsSupportedKeySystem("org.chromium.externalclearkey"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.chromium.externalclearkeys"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.chromium.externalclearkey."));
|
| - EXPECT_TRUE(IsSupportedKeySystem("org.chromium.externalclearkey.something"));
|
| - EXPECT_FALSE(
|
| - IsSupportedKeySystem("org.chromium.externalclearkey.something.else"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.chromium.externalclearkey.other"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("org.chromium.other"));
|
| -
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.chromecast"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.chromecast."));
|
| - EXPECT_TRUE(IsSupportedKeySystem("com.chromecast.something"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.chromecast.something.else"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("com.chromecast.other"));
|
| -
|
| - EXPECT_FALSE(IsSupportedKeySystem("x-"));
|
| - EXPECT_TRUE(IsSupportedKeySystem("x-something"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("x-something.else"));
|
| - EXPECT_FALSE(IsSupportedKeySystem("x-other"));
|
| -}
|
| -
|
| } // namespace media
|
|
|