Index: content/renderer/media/render_media_client_unittest.cc |
diff --git a/content/renderer/media/render_media_client_unittest.cc b/content/renderer/media/render_media_client_unittest.cc |
deleted file mode 100644 |
index 21e3bb8d96c5749ac4fca7e21b3ec63ce081a67f..0000000000000000000000000000000000000000 |
--- a/content/renderer/media/render_media_client_unittest.cc |
+++ /dev/null |
@@ -1,184 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/test/simple_test_tick_clock.h" |
-#include "content/public/renderer/content_renderer_client.h" |
-#include "content/renderer/media/render_media_client.h" |
-#include "content/test/test_content_client.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. |
- |
-namespace content { |
- |
-namespace { |
- |
-class TestKeySystemProperties : public media::KeySystemProperties { |
- public: |
- TestKeySystemProperties(const std::string& key_system_name) |
- : key_system_name_(key_system_name) {} |
- |
- std::string GetKeySystemName() const override { return key_system_name_; } |
- bool IsSupportedInitDataType( |
- media::EmeInitDataType init_data_type) const override { |
- return false; |
- } |
- media::SupportedCodecs GetSupportedCodecs() const override { |
- return media::EME_CODEC_NONE; |
- } |
- media::EmeConfigRule GetRobustnessConfigRule( |
- media::EmeMediaType media_type, |
- const std::string& requested_robustness) const override { |
- return requested_robustness.empty() ? media::EmeConfigRule::SUPPORTED |
- : media::EmeConfigRule::NOT_SUPPORTED; |
- } |
- media::EmeSessionTypeSupport GetPersistentLicenseSessionSupport() |
- const override { |
- return media::EmeSessionTypeSupport::NOT_SUPPORTED; |
- } |
- media::EmeSessionTypeSupport GetPersistentReleaseMessageSessionSupport() |
- const override { |
- return media::EmeSessionTypeSupport::NOT_SUPPORTED; |
- } |
- media::EmeFeatureSupport GetPersistentStateSupport() const override { |
- return media::EmeFeatureSupport::NOT_SUPPORTED; |
- } |
- media::EmeFeatureSupport GetDistinctiveIdentifierSupport() const override { |
- return media::EmeFeatureSupport::NOT_SUPPORTED; |
- } |
- |
- private: |
- const std::string key_system_name_; |
-}; |
- |
-class TestContentRendererClient : public ContentRendererClient { |
- public: |
- TestContentRendererClient() : is_extra_key_system_enabled_(false) {} |
- |
- // ContentRendererClient implementation. |
- void AddSupportedKeySystems( |
- std::vector<std::unique_ptr<media::KeySystemProperties>>* |
- key_systems_properties) override { |
- key_systems_properties->emplace_back( |
- new TestKeySystemProperties("test.keysystem")); |
- |
-#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) |
- if (is_extra_key_system_enabled_) { |
- key_systems_properties->emplace_back( |
- new TestKeySystemProperties(kWidevineKeySystem)); |
- } |
-#endif |
- } |
- |
- void EnableExtraKeySystem() { is_extra_key_system_enabled_ = true; } |
- |
- private: |
- // Whether a platform-specific extra key system is "supported" by |this|. |
- bool is_extra_key_system_enabled_; |
-}; |
- |
-#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) |
-bool ContainsWidevine( |
- const std::vector<std::unique_ptr<media::KeySystemProperties>>& |
- key_systems_properties) { |
- for (const auto& key_system_properties : key_systems_properties) { |
- if (key_system_properties->GetKeySystemName() == kWidevineKeySystem) |
- return true; |
- } |
- return false; |
-} |
-#endif |
- |
-} // namespace |
- |
-class RenderMediaClientTest : public testing::Test { |
- protected: |
- RenderMediaClientTest() |
- : render_media_client_(RenderMediaClient::GetInstance()) { |
- SetContentClient(&test_content_client_); |
- SetRendererClientForTesting(&test_content_renderer_client_); |
- } |
- |
- void EnableExtraKeySystem() { |
- test_content_renderer_client_.EnableExtraKeySystem(); |
- } |
- |
- RenderMediaClient* render_media_client_; |
- |
- private: |
- typedef base::hash_map<std::string, std::string> KeySystemNameForUMAMap; |
- |
- TestContentClient test_content_client_; |
- TestContentRendererClient test_content_renderer_client_; |
- KeySystemNameForUMAMap key_system_name_for_uma_map_; |
-}; |
- |
-TEST_F(RenderMediaClientTest, KeySystemNameForUMA) { |
- std::vector<media::KeySystemInfoForUMA> key_systems_info_for_uma; |
- render_media_client_->AddKeySystemsInfoForUMA(&key_systems_info_for_uma); |
- |
- std::string widevine_uma_name; |
- std::string clearkey_uma_name; |
- for (const media::KeySystemInfoForUMA& info : key_systems_info_for_uma) { |
- if (info.key_system == "com.widevine.alpha") |
- widevine_uma_name = info.key_system_name_for_uma; |
- if (info.key_system == "org.w3.clearkey") |
- clearkey_uma_name = info.key_system_name_for_uma; |
- } |
- |
-#if defined(WIDEVINE_CDM_AVAILABLE) |
- EXPECT_EQ("Widevine", widevine_uma_name); |
-#else |
- EXPECT_TRUE(widevine_uma_name.empty()); |
-#endif |
- |
- EXPECT_TRUE(clearkey_uma_name.empty()) << "Clear Key is added by media/ and " |
- "should not be added by the " |
- "MediaClient."; |
-} |
- |
-TEST_F(RenderMediaClientTest, IsKeySystemsUpdateNeeded) { |
- base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock(); |
- render_media_client_->SetTickClockForTesting( |
- std::unique_ptr<base::TickClock>(tick_clock)); |
- |
- // IsKeySystemsUpdateNeeded() always returns true after construction. |
- EXPECT_TRUE(render_media_client_->IsKeySystemsUpdateNeeded()); |
- |
- std::vector<std::unique_ptr<media::KeySystemProperties>> |
- key_systems_properties; |
- render_media_client_->AddSupportedKeySystems(&key_systems_properties); |
- |
- // No update needed immediately after AddSupportedKeySystems() call. |
- EXPECT_FALSE(render_media_client_->IsKeySystemsUpdateNeeded()); |
- |
-#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT) |
- // Widevine not supported because extra key system isn't enabled. |
- EXPECT_FALSE(ContainsWidevine(key_systems_properties)); |
- |
- // This is timing related. The update interval for Widevine is 1000 ms. |
- EXPECT_FALSE(render_media_client_->IsKeySystemsUpdateNeeded()); |
- tick_clock->Advance(base::TimeDelta::FromMilliseconds(990)); |
- EXPECT_FALSE(render_media_client_->IsKeySystemsUpdateNeeded()); |
- tick_clock->Advance(base::TimeDelta::FromMilliseconds(10)); |
- EXPECT_TRUE(render_media_client_->IsKeySystemsUpdateNeeded()); |
- |
- EnableExtraKeySystem(); |
- |
- key_systems_properties.clear(); |
- render_media_client_->AddSupportedKeySystems(&key_systems_properties); |
- EXPECT_TRUE(ContainsWidevine(key_systems_properties)); |
- |
- EXPECT_FALSE(render_media_client_->IsKeySystemsUpdateNeeded()); |
- tick_clock->Advance(base::TimeDelta::FromMilliseconds(1000)); |
- EXPECT_FALSE(render_media_client_->IsKeySystemsUpdateNeeded()); |
- tick_clock->Advance(base::TimeDelta::FromMilliseconds(1000)); |
- EXPECT_FALSE(render_media_client_->IsKeySystemsUpdateNeeded()); |
-#endif |
-} |
- |
-} // namespace content |