Merge "Add missing properties in query test."
This commit is contained in:
@@ -17,14 +17,14 @@
|
||||
|
||||
#include "WVErrors.h"
|
||||
#include "cdm_client_property_set.h"
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "media/stagefright/MediaErrors.h"
|
||||
#include "media/stagefright/foundation/ABase.h"
|
||||
#include "string_conversions.h"
|
||||
#include "wv_cdm_constants.h"
|
||||
#include "wv_cdm_types.h"
|
||||
#include "wv_content_decryption_module.h"
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
namespace {
|
||||
typedef std::vector<::aidl::android::hardware::drm::KeyValue> KeyedVector;
|
||||
@@ -109,20 +109,29 @@ using wvcdm::kLicenseTypeStreaming;
|
||||
using wvcdm::kSecurityLevelL1;
|
||||
using wvcdm::kSecurityLevelL3;
|
||||
using wvcdm::NEVER_EXPIRES;
|
||||
using wvcdm::QUERY_KEY_ANALOG_OUTPUT_CAPABILITIES;
|
||||
using wvcdm::QUERY_KEY_CAN_DISABLE_ANALOG_OUTPUT;
|
||||
using wvcdm::QUERY_KEY_CURRENT_HDCP_LEVEL;
|
||||
using wvcdm::QUERY_KEY_CURRENT_SRM_VERSION;
|
||||
using wvcdm::QUERY_KEY_DECRYPT_HASH_SUPPORT;
|
||||
using wvcdm::QUERY_KEY_DEVICE_ID;
|
||||
using wvcdm::QUERY_KEY_MAX_HDCP_LEVEL;
|
||||
using wvcdm::QUERY_KEY_MAX_NUMBER_OF_SESSIONS;
|
||||
using wvcdm::QUERY_KEY_MAX_USAGE_TABLE_ENTRIES;
|
||||
using wvcdm::QUERY_KEY_NUMBER_OF_OPEN_SESSIONS;
|
||||
using wvcdm::QUERY_KEY_OEMCRYPTO_API_MINOR_VERSION;
|
||||
using wvcdm::QUERY_KEY_OEMCRYPTO_API_VERSION;
|
||||
using wvcdm::QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION;
|
||||
using wvcdm::QUERY_KEY_OEMCRYPTO_SESSION_ID;
|
||||
using wvcdm::QUERY_KEY_PRODUCTION_READY;
|
||||
using wvcdm::QUERY_KEY_PROVISIONING_ID;
|
||||
using wvcdm::QUERY_KEY_PROVISIONING_MODEL;
|
||||
using wvcdm::QUERY_KEY_RESOURCE_RATING_TIER;
|
||||
using wvcdm::QUERY_KEY_SECURITY_LEVEL;
|
||||
using wvcdm::QUERY_KEY_SRM_UPDATE_SUPPORT;
|
||||
using wvcdm::QUERY_KEY_SYSTEM_ID;
|
||||
using wvcdm::QUERY_KEY_USAGE_SUPPORT;
|
||||
using wvcdm::QUERY_KEY_WATERMARKING_SUPPORT;
|
||||
using wvcdm::QUERY_KEY_WVCDM_VERSION;
|
||||
using wvcdm::QUERY_VALUE_SECURITY_LEVEL_L1;
|
||||
using wvcdm::QUERY_VALUE_SECURITY_LEVEL_L3;
|
||||
@@ -1047,11 +1056,16 @@ TEST_F(WVDrmPluginHalTest, ReturnsExpectedPropertyValues) {
|
||||
CdmQueryMap l3Map;
|
||||
l3Map[QUERY_KEY_SECURITY_LEVEL] = QUERY_VALUE_SECURITY_LEVEL_L3;
|
||||
|
||||
static const std::string analogOutputCap = wvcdm::QUERY_VALUE_CGMS_A;
|
||||
static const std::string currentHdcpLevel = wvcdm::QUERY_VALUE_HDCP_NONE;
|
||||
static const std::string maxHdcpLevel = wvcdm::QUERY_VALUE_HDCP_V2_3;
|
||||
static const std::string systemId = "The Universe";
|
||||
static const std::string provisioningId("Life\0&Everything", 16);
|
||||
static const std::string openSessions = "42";
|
||||
static const std::string maxSessions = "54";
|
||||
static const std::string maxUsageEntries = "256";
|
||||
static const std::string oemCryptoApiVersion = "13";
|
||||
static const std::string oemCryptoApiMinorVersion = "2";
|
||||
static const std::string currentSRMVersion = "1";
|
||||
static const std::string mCdmVersion = "Infinity Minus 1";
|
||||
static const std::string resourceRatingTier = "1";
|
||||
@@ -1095,6 +1109,10 @@ TEST_F(WVDrmPluginHalTest, ReturnsExpectedPropertyValues) {
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoApiVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_OEMCRYPTO_API_MINOR_VERSION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoApiMinorVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SRM_UPDATE_SUPPORT, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>("True"), testing::Return(wvcdm::NO_ERROR)));
|
||||
@@ -1126,6 +1144,38 @@ TEST_F(WVDrmPluginHalTest, ReturnsExpectedPropertyValues) {
|
||||
.WillOnce(DoAll(SetArgPointee<2>(provisioningModel),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_ANALOG_OUTPUT_CAPABILITIES, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(analogOutputCap),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_CAN_DISABLE_ANALOG_OUTPUT, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>("True"), testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_CURRENT_HDCP_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(currentHdcpLevel),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_MAX_HDCP_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(maxHdcpLevel),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_MAX_USAGE_TABLE_ENTRIES, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(maxUsageEntries),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_PRODUCTION_READY, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(wvcdm::QUERY_VALUE_TRUE),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_USAGE_SUPPORT, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>("True"), testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_WATERMARKING_SUPPORT, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(wvcdm::QUERY_VALUE_NOT_SUPPORTED),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*mCdm, GetMetrics(_, _))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(expected_metrics),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
@@ -1188,6 +1238,11 @@ TEST_F(WVDrmPluginHalTest, ReturnsExpectedPropertyValues) {
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_STREQ(oemCryptoApiVersion.c_str(), stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("oemCryptoApiMinorVersion"),
|
||||
&stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_STREQ(oemCryptoApiMinorVersion.c_str(), stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("SRMUpdateSupport"),
|
||||
&stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
@@ -1227,6 +1282,44 @@ TEST_F(WVDrmPluginHalTest, ReturnsExpectedPropertyValues) {
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_EQ(provisioningModel, stringResult);
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("analogOutputCapabilities"),
|
||||
&stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_EQ(analogOutputCap, stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("canDisableAnalogOutput"),
|
||||
&stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_STREQ("True", stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("hdcpLevel"), &stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_EQ(currentHdcpLevel, stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("maxHdcpLevel"), &stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_EQ(maxHdcpLevel, stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("maxUsageEntriesSupported"),
|
||||
&stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_EQ(maxUsageEntries, stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("usageReportingSupport"),
|
||||
&stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_STREQ("True", stringResult.c_str());
|
||||
|
||||
ret =
|
||||
mPlugin->getPropertyString(std::string("productionReady"), &stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_EQ(wvcdm::QUERY_VALUE_TRUE, stringResult.c_str());
|
||||
|
||||
ret = mPlugin->getPropertyString(std::string("watermarkingSupport"),
|
||||
&stringResult);
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
EXPECT_EQ(wvcdm::QUERY_VALUE_NOT_SUPPORTED, stringResult.c_str());
|
||||
|
||||
// This call occurs before any open session or other call. This means
|
||||
// that the mCdm identifier is not yet sealed, and metrics return empty
|
||||
// metrics data.
|
||||
|
||||
Reference in New Issue
Block a user