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

Unified Diff: content/renderer/media/crypto/key_systems_unittest.cc

Issue 23464005: Explicitly register each key system. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Clear Key on Android Created 7 years, 4 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/crypto/key_systems_info.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/crypto/key_systems_unittest.cc
diff --git a/content/renderer/media/crypto/key_systems_unittest.cc b/content/renderer/media/crypto/key_systems_unittest.cc
index f4c2f348d5ccf814a1452a18dd02fee3649df49b..247eb122adf53265fe367629c449abd90cce37e8 100644
--- a/content/renderer/media/crypto/key_systems_unittest.cc
+++ b/content/renderer/media/crypto/key_systems_unittest.cc
@@ -11,28 +11,22 @@
#include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
-// Death tests are not always available. When they are, they use NDEBUG for
-// the DCHECK variant, which is not sufficient when defined(DCHECK_ALWAYS_ON).
-// EXPECT_DCHECK_DEATH handles all these cases. The test will execute correctly
-// except in the case that death tests are not available but DCHECKs are on.
+// Death tests are not always available, including on Android.
+// EXPECT_DEBUG_DEATH_PORTABLE executes tests correctly except in the case that
+// death tests are not available and NDEBUG is not defined.
#if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
-#if defined(DCHECK_ALWAYS_ON)
-#define EXPECT_DCHECK_DEATH(statement, regex) \
- EXPECT_DEATH(statement, regex)
-#else
-#define EXPECT_DCHECK_DEATH(statement, regex) \
+#define EXPECT_DEBUG_DEATH_PORTABLE(statement, regex) \
EXPECT_DEBUG_DEATH(statement, regex)
-#endif // defined(DCHECK_ALWAYS_ON)
-#else // defined(GTEST_HAS_DEATH_TEST)
-#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
-#define EXPECT_DCHECK_DEATH(statement, regex) \
+#else
+#if defined(NDEBUG)
+#define EXPECT_DEBUG_DEATH_PORTABLE(statement, regex) \
do { statement; } while (false)
#else
#include "base/logging.h"
-#define EXPECT_DCHECK_DEATH(statement, regex) \
+#define EXPECT_DEBUG_DEATH_PORTABLE(statement, regex) \
LOG(WARNING) << "Death tests are not supported on this platform.\n" \
<< "Statement '" #statement "' cannot be verified.";
-#endif // defined(NDEBUG) && defined(DCHECK_ALWAYS_ON)
+#endif // defined(NDEBUG)
#endif // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
#if defined(WIDEVINE_CDM_AVAILABLE) && \
@@ -208,7 +202,10 @@ TEST_F(KeySystemsTest, ClearKey_Basic) {
EXPECT_TRUE(CanUseAesDecryptor(kClearKey));
#if defined(ENABLE_PEPPER_CDMS)
- EXPECT_TRUE(GetPepperType(kClearKey).empty()); // Does not use Pepper.
+ std::string type;
+ EXPECT_DEBUG_DEATH(type = GetPepperType(kClearKey),
+ "webkit-org.w3.clearkey is not Pepper-based");
+ EXPECT_TRUE(type.empty());
#endif
}
@@ -224,11 +221,14 @@ TEST_F(KeySystemsTest, ClearKey_Parent) {
// The parent is not supported for most things.
EXPECT_STREQ("Unknown",
KeySystemNameForUMA(WebString::fromUTF8(kClearKeyParent)).c_str());
- EXPECT_FALSE(CanUseAesDecryptor(kClearKeyParent));
+ bool result = false;
+ EXPECT_DEBUG_DEATH_PORTABLE(result = CanUseAesDecryptor(kClearKeyParent),
+ "webkit-org.w3 is not a known concrete system");
+ EXPECT_FALSE(result);
#if defined(ENABLE_PEPPER_CDMS)
std::string type;
- EXPECT_DCHECK_DEATH(type = GetPepperType(kClearKeyParent),
- "webkit-org.w3 is not a concrete system");
+ EXPECT_DEBUG_DEATH(type = GetPepperType(kClearKeyParent),
+ "webkit-org.w3 is not a known concrete system");
EXPECT_TRUE(type.empty());
#endif
}
@@ -393,10 +393,16 @@ TEST_F(KeySystemsTest, ExternalClearKey_Basic) {
"Unknown",
KeySystemNameForUMA(WebString::fromUTF8(kExternalClearKey)).c_str());
- EXPECT_FALSE(CanUseAesDecryptor(kExternalClearKey));
#if defined(ENABLE_PEPPER_CDMS)
+ EXPECT_FALSE(CanUseAesDecryptor(kExternalClearKey));
EXPECT_STREQ("application/x-ppapi-clearkey-cdm",
GetPepperType(kExternalClearKey).c_str());
+#else
+ bool result = false;
+ EXPECT_DEBUG_DEATH_PORTABLE(
+ result = CanUseAesDecryptor(kExternalClearKey),
+ "org.chromium.externalclearkey is not a known concrete system");
+ EXPECT_FALSE(result);
#endif
}
@@ -413,11 +419,15 @@ TEST_F(KeySystemsTest, ExternalClearKey_Parent) {
EXPECT_STREQ("Unknown",
KeySystemNameForUMA(
WebString::fromUTF8(kExternalClearKeyParent)).c_str());
- EXPECT_FALSE(CanUseAesDecryptor(kExternalClearKeyParent));
+ bool result = false;
+ EXPECT_DEBUG_DEATH_PORTABLE(
+ result = CanUseAesDecryptor(kExternalClearKeyParent),
+ "org.chromium is not a known concrete system");
+ EXPECT_FALSE(result);
#if defined(ENABLE_PEPPER_CDMS)
std::string type;
- EXPECT_DCHECK_DEATH(type = GetPepperType(kExternalClearKeyParent),
- "org.chromium is not a concrete system");
+ EXPECT_DEBUG_DEATH(type = GetPepperType(kExternalClearKeyParent),
+ "org.chromium is not a known concrete system");
EXPECT_TRUE(type.empty());
#endif
}
@@ -594,15 +604,24 @@ TEST_F(KeySystemsTest, Widevine_Basic) {
kWidevineUmaName,
KeySystemNameForUMA(WebString::fromUTF8(kWidevineAlpha)).c_str());
+#if defined(WIDEVINE_CDM_AVAILABLE)
EXPECT_FALSE(CanUseAesDecryptor(kWidevineAlpha));
+#else
+ bool result = false;
+ EXPECT_DEBUG_DEATH_PORTABLE(
+ result = CanUseAesDecryptor(kWidevineAlpha),
+ "com.widevine.alpha is not a known concrete system");
+ EXPECT_FALSE(result);
+#endif // defined(WIDEVINE_CDM_AVAILABLE)
+
#if defined(ENABLE_PEPPER_CDMS)
#if defined(WIDEVINE_CDM_AVAILABLE)
EXPECT_STREQ("application/x-ppapi-widevine-cdm",
GetPepperType(kWidevineAlpha).c_str());
#else
std::string type;
- EXPECT_DCHECK_DEATH(type = GetPepperType(kWidevineAlpha),
- "com.widevine.alpha is not a concrete system");
+ EXPECT_DEBUG_DEATH(type = GetPepperType(kWidevineAlpha),
+ "com.widevine.alpha is not a known concrete system");
EXPECT_TRUE(type.empty());
#endif // defined(WIDEVINE_CDM_AVAILABLE)
#endif // defined(ENABLE_PEPPER_CDMS)
@@ -618,11 +637,14 @@ TEST_F(KeySystemsTest, Widevine_Parent) {
// The parent is not supported for most things.
EXPECT_STREQ("Unknown",
KeySystemNameForUMA(WebString::fromUTF8(kWidevine)).c_str());
- EXPECT_FALSE(CanUseAesDecryptor(kWidevine));
+ bool result = false;
+ EXPECT_DEBUG_DEATH_PORTABLE(result = CanUseAesDecryptor(kWidevine),
+ "com.widevine is not a known concrete system");
+ EXPECT_FALSE(result);
#if defined(ENABLE_PEPPER_CDMS)
std::string type;
- EXPECT_DCHECK_DEATH(type = GetPepperType(kWidevine),
- "com.widevine is not a concrete system");
+ EXPECT_DEBUG_DEATH(type = GetPepperType(kWidevine),
+ "com.widevine is not a known concrete system");
EXPECT_TRUE(type.empty());
#endif
}
@@ -802,21 +824,22 @@ TEST_F(KeySystemsTest, GetUUID_Widevine) {
EXPECT_EQ(0xED, uuid[15]);
#else
std::vector<uint8> uuid;
- EXPECT_DCHECK_DEATH(uuid = GetUUID(kWidevineAlpha),
- "com.widevine.alpha is not a concrete system");
+ EXPECT_DEBUG_DEATH_PORTABLE(
+ uuid = GetUUID(kWidevineAlpha),
+ "com.widevine.alpha is not a known concrete system");
EXPECT_TRUE(uuid.empty());
#endif
}
TEST_F(KeySystemsTest, GetUUID_Unrecognized) {
std::vector<uint8> uuid;
- EXPECT_DCHECK_DEATH(uuid = GetUUID(kWidevine),
- "com.widevine is not a concrete system");
+ EXPECT_DEBUG_DEATH_PORTABLE(uuid = GetUUID(kWidevine),
+ "com.widevine is not a known concrete system");
EXPECT_TRUE(uuid.empty());
EXPECT_TRUE(GetUUID(kClearKey).empty());
- EXPECT_DCHECK_DEATH(uuid = GetUUID(""), " is not a concrete system");
+ EXPECT_DEBUG_DEATH_PORTABLE(uuid = GetUUID(""), " is not a concrete system");
EXPECT_TRUE(uuid.empty());
}
#endif // defined(OS_ANDROID)
« no previous file with comments | « content/renderer/media/crypto/key_systems_info.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698