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

Unified Diff: content/renderer/media/render_media_client_unittest.cc

Issue 2712983004: Simplify/Cleanup MediaClient (Closed)
Patch Set: Fix test leak Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/media/render_media_client.cc ('k') | content/renderer/media/webmediaplayer_ms.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « content/renderer/media/render_media_client.cc ('k') | content/renderer/media/webmediaplayer_ms.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698