Index: media/base/android/media_drm_bridge_unittest.cc |
diff --git a/media/base/android/media_drm_bridge_unittest.cc b/media/base/android/media_drm_bridge_unittest.cc |
index a838203304a535ab293ce809db9e208dda49a001..11c257f29c24d5e565394a771fa8faadd7f74a22 100644 |
--- a/media/base/android/media_drm_bridge_unittest.cc |
+++ b/media/base/android/media_drm_bridge_unittest.cc |
@@ -26,6 +26,10 @@ const char kVideoMp4[] = "video/mp4"; |
const char kAudioWebM[] = "audio/webm"; |
const char kVideoWebM[] = "video/webm"; |
const char kInvalidKeySystem[] = "invalid.keysystem"; |
+const char kFooKeySystem[] = "com.foo.keysystem"; |
+const uint8 kWidevineUuid[16] = { |
+ 0xED, 0xEF, 0x8B, 0xA9, 0x79, 0xD6, 0x4A, 0xCE, |
+ 0xA3, 0xC8, 0x27, 0xDC, 0xD5, 0x1D, 0x21, 0xED }; |
const MediaDrmBridge::SecurityLevel kLNone = |
MediaDrmBridge::SECURITY_LEVEL_NONE; |
const MediaDrmBridge::SecurityLevel kL1 = MediaDrmBridge::SECURITY_LEVEL_1; |
@@ -93,4 +97,33 @@ TEST(MediaDrmBridgeTest, IsKeySystemSupported_InvalidKeySystem) { |
EXPECT_FALSE(IsKeySystemSupportedWithType(kInvalidKeySystem, "audio/mp3")); |
} |
+TEST(MediaDrmBridgeTest, AddNewKeySystemMapping) { |
+ EXPECT_FALSE(IsKeySystemSupported(kFooKeySystem)); |
+ |
+ // Use WV UUID for foo, because it is the only key system we can guarentee |
+ // that it is installed in the test device. |
+ std::vector<uint8> foo_uuid(kWidevineUuid, |
+ kWidevineUuid + arraysize(kWidevineUuid)); |
+ MediaDrmBridge::AddKeySystemUuidMapping(kFooKeySystem, foo_uuid); |
+ |
+ EXPECT_TRUE_IF_AVAILABLE(IsKeySystemSupported(kFooKeySystem)); |
+ EXPECT_TRUE_IF_AVAILABLE( |
+ IsKeySystemSupportedWithType(kFooKeySystem, kVideoMp4)); |
+} |
+ |
+TEST(MediaDrmBridgeTest, ShouldNotOverwriteExistingKeySystem) { |
+ EXPECT_TRUE_IF_AVAILABLE(IsKeySystemSupported(kWidevineKeySystem)); |
+ std::vector<uint8> invalid_uuid = std::vector<uint8>(16, 99); |
+#if DCHECK_IS_ON |
+ ASSERT_DEATH({ |
+ MediaDrmBridge::AddKeySystemUuidMapping(kWidevineKeySystem, invalid_uuid); |
+ }, ""); |
+#else |
+ // Try to add WV keysystem with the invalid UUID. |
+ MediaDrmBridge::AddKeySystemUuidMapping(kWidevineKeySystem, invalid_uuid); |
+ |
+ EXPECT_TRUE_IF_AVAILABLE(IsKeySystemSupported(kWidevineKeySystem)); |
+#endif |
+} |
+ |
} // namespace media |