Squashed merge 3 CLs.
1. "Change CdmResponseType from enum into a struct" Merged from http://go/wvgerrit/163199 Bug: 253271674 2. "Log request information when server returns 401" Bug: 260760387 Bug: 186031735 Merged from http://go/wvgerrit/162798 3. "Specify server version on the command line" Bug: 251599048 Merged from http://go/wvgerrit/158897 Test: build android.hardware.drm-service.widevine Test: Netflix and Play Movies & TV Test: build_and_run_all_unit_tests.sh Bug: 253271674 Change-Id: I70c950acce070609ee0343920ec68e66b058bc23
This commit is contained in:
@@ -446,7 +446,7 @@ SecurityLevel WVDrmPlugin::mapSecurityLevel(const std::string& level) {
|
||||
|
||||
if (in_keyType == KeyType::RELEASE) {
|
||||
// When releasing keys, we do not have a session ID.
|
||||
status = mapCdmResponseType<Status>(res);
|
||||
status = mapCdmResponseType(res);
|
||||
} else {
|
||||
// For all other requests, we have a session ID.
|
||||
status = mapAndNotifyOfCdmResponseType(in_scope, res);
|
||||
@@ -949,7 +949,8 @@ Status WVDrmPlugin::unprovisionDevice() {
|
||||
std::string level = info[wvcdm::QUERY_KEY_SECURITY_LEVEL];
|
||||
securityLevel = mapSecurityLevel(level);
|
||||
} else {
|
||||
ALOGE("Failed to query security level, status=%d", status);
|
||||
ALOGE("Failed to query security level, status=%d",
|
||||
static_cast<int>(status));
|
||||
}
|
||||
|
||||
*_aidl_return = securityLevel;
|
||||
@@ -971,7 +972,7 @@ Status WVDrmPlugin::unprovisionDevice() {
|
||||
vector<CdmSecurityLevel> levels = {wvcdm::kSecurityLevelL1,
|
||||
wvcdm::kSecurityLevelL3};
|
||||
|
||||
CdmResponseType res = wvcdm::UNKNOWN_ERROR;
|
||||
CdmResponseType res(wvcdm::UNKNOWN_ERROR);
|
||||
|
||||
for (auto level : levels) {
|
||||
vector<CdmKeySetId> cdmKeySetIds;
|
||||
@@ -1010,7 +1011,7 @@ Status WVDrmPlugin::unprovisionDevice() {
|
||||
return toNdkScopedAStatus(status);
|
||||
}
|
||||
|
||||
CdmResponseType res = wvcdm::UNKNOWN_ERROR;
|
||||
CdmResponseType res = wvcdm::CdmResponseType(wvcdm::UNKNOWN_ERROR);
|
||||
CdmKeySetId keySetIdStr(in_keySetId.keySetId.begin(),
|
||||
in_keySetId.keySetId.end());
|
||||
|
||||
@@ -1056,7 +1057,7 @@ Status WVDrmPlugin::unprovisionDevice() {
|
||||
return toNdkScopedAStatus(status);
|
||||
}
|
||||
|
||||
CdmResponseType res = wvcdm::UNKNOWN_ERROR;
|
||||
CdmResponseType res(wvcdm::UNKNOWN_ERROR);
|
||||
|
||||
res = mCDM->RemoveOfflineLicense(
|
||||
std::string(in_keySetId.keySetId.begin(), in_keySetId.keySetId.end()),
|
||||
@@ -1313,6 +1314,7 @@ Status WVDrmPlugin::unprovisionDevice() {
|
||||
CdmResponseType res = mCDM->SetDecryptHash(_value.c_str(), &sessionId);
|
||||
|
||||
if (wvcdm::NO_ERROR == res) mDecryptHashSessionId = sessionId;
|
||||
|
||||
return toNdkScopedAStatus(mapCdmResponseType(res));
|
||||
} else if (name == "decryptHashSessionId") {
|
||||
mDecryptHashSessionId = _value.c_str();
|
||||
@@ -1846,7 +1848,7 @@ Status WVDrmPlugin::queryProperty(RequestedSecurityLevel securityLevel,
|
||||
mCDM->QueryStatus(securityLevel, property, &stringValue);
|
||||
|
||||
if (res != wvcdm::NO_ERROR) {
|
||||
ALOGE("Error querying CDM status: %u", res);
|
||||
ALOGE("Error querying CDM status: %d", static_cast<int>(res));
|
||||
}
|
||||
return mapCdmResponseType(res);
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ template <uint8_t DIGIT>
|
||||
CdmResponseType setSessionIdOnMap(testing::Unused, CdmQueryMap *map) {
|
||||
static const char oecId[] = {DIGIT + '0', '\0'};
|
||||
(*map)[QUERY_KEY_OEMCRYPTO_SESSION_ID] = oecId;
|
||||
return wvcdm::NO_ERROR;
|
||||
return CdmResponseType(wvcdm::NO_ERROR);
|
||||
}
|
||||
|
||||
MATCHER_P(HasOrigin, origin, "") { return arg.origin == origin; }
|
||||
@@ -319,7 +319,7 @@ public:
|
||||
keySetId.keySetId.assign(keySetIdRaw, keySetIdRaw + kKeySetIdSize);
|
||||
|
||||
// Set default return values for gMock
|
||||
DefaultValue<CdmResponseType>::Set(wvcdm::NO_ERROR);
|
||||
DefaultValue<CdmResponseType>::Set(CdmResponseType(wvcdm::NO_ERROR));
|
||||
DefaultValue<OEMCryptoResult>::Set(OEMCrypto_SUCCESS);
|
||||
DefaultValue<bool>::Set(true);
|
||||
|
||||
@@ -365,9 +365,9 @@ TEST_F(WVDrmPluginHalTest, OpensSessions) {
|
||||
// Provide expected mock behavior
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SECURITY_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L1),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L3),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
CdmQueryMap securityLevelQueryMap;
|
||||
securityLevelQueryMap[wvcdm::QUERY_KEY_SECURITY_LEVEL] =
|
||||
@@ -375,12 +375,12 @@ TEST_F(WVDrmPluginHalTest, OpensSessions) {
|
||||
|
||||
EXPECT_CALL(*mCdm, QuerySessionStatus(_, NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(securityLevelQueryMap),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
|
||||
@@ -410,7 +410,7 @@ TEST_F(WVDrmPluginHalTest, ClosesSessions) {
|
||||
|
||||
TEST_F(WVDrmPluginHalTest, ClosesSessionWithError) {
|
||||
EXPECT_CALL(*mCdm, CloseSession(mCdmSessionId))
|
||||
.WillOnce(testing::Return(wvcdm::SESSION_NOT_FOUND_1));
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::SESSION_NOT_FOUND_1)));
|
||||
|
||||
auto ret = mPlugin->closeSession(sessionId);
|
||||
EXPECT_EQ(static_cast<int>(Status::ERROR_DRM_SESSION_NOT_OPENED),
|
||||
@@ -523,23 +523,26 @@ TEST_F(WVDrmPluginHalTest, DISABLED_GeneratesKeyRequests) {
|
||||
GenerateKeyRequest(mCdmSessionId, "", mimeType, initData,
|
||||
kLicenseTypeOffline, mCdmParameters,
|
||||
NotNull(), HasOrigin(EMPTY_ORIGIN), _))
|
||||
.WillOnce(DoAll(SetArgPointee<8>(initialRequest),
|
||||
testing::Return(wvcdm::KEY_MESSAGE)));
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<8>(initialRequest),
|
||||
testing::Return(CdmResponseType(wvcdm::KEY_MESSAGE))));
|
||||
|
||||
EXPECT_CALL(*mCdm,
|
||||
GenerateKeyRequest(mCdmSessionId, "", mimeType, initData,
|
||||
kLicenseTypeStreaming, mCdmParameters,
|
||||
NotNull(), HasOrigin(EMPTY_ORIGIN), _))
|
||||
.WillOnce(DoAll(SetArgPointee<8>(renewalRequest),
|
||||
testing::Return(wvcdm::KEY_MESSAGE)));
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<8>(renewalRequest),
|
||||
testing::Return(CdmResponseType(wvcdm::KEY_MESSAGE))));
|
||||
|
||||
EXPECT_CALL(*mCdm,
|
||||
GenerateKeyRequest("", mCdmKeySetId, mimeType, initData,
|
||||
kLicenseTypeRelease, mCdmParameters,
|
||||
NotNull(), HasOrigin(EMPTY_ORIGIN), _))
|
||||
|
||||
.WillOnce(DoAll(SetArgPointee<8>(releaseRequest),
|
||||
testing::Return(wvcdm::KEY_MESSAGE)));
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<8>(releaseRequest),
|
||||
testing::Return(CdmResponseType(wvcdm::KEY_MESSAGE))));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -593,8 +596,9 @@ TEST_F(WVDrmPluginHalTest, AddsKeys) {
|
||||
|
||||
EXPECT_CALL(*mCdm, AddKey(mCdmSessionId,
|
||||
ElementsAreArray(responseRaw, kResponseSize), _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(mCdmKeySetId),
|
||||
testing::Return(wvcdm::KEY_ADDED)));
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>(mCdmKeySetId),
|
||||
testing::Return(wvcdm::CdmResponseType(wvcdm::KEY_ADDED))));
|
||||
|
||||
EXPECT_CALL(*mCdm, AddKey("", ElementsAreArray(responseRaw, kResponseSize),
|
||||
Pointee(mCdmKeySetId)))
|
||||
@@ -618,7 +622,7 @@ TEST_F(WVDrmPluginHalTest, HandlesPrivacyCertCaseOfAddKey) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -634,7 +638,7 @@ TEST_F(WVDrmPluginHalTest, HandlesPrivacyCertCaseOfAddKey) {
|
||||
fclose(fp);
|
||||
|
||||
EXPECT_CALL(*mCdm, AddKey(_, _, _))
|
||||
.WillRepeatedly(testing::Return(wvcdm::NEED_KEY));
|
||||
.WillRepeatedly(testing::Return(CdmResponseType(wvcdm::NEED_KEY)));
|
||||
|
||||
SessionId sessionId;
|
||||
auto ret = mPlugin->openSession(SecurityLevel::DEFAULT, &sessionId);
|
||||
@@ -685,7 +689,7 @@ TEST_F(WVDrmPluginHalTest, QueriesKeyStatus) {
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryKeyStatus(mCdmSessionId, _))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(mCdmLicenseStatus),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
std::vector<KeyValue> keyValues;
|
||||
auto ret = mPlugin->queryKeyStatus(sessionId, &keyValues);
|
||||
@@ -716,7 +720,7 @@ TEST_F(WVDrmPluginHalTest, GetsProvisioningRequests) {
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SECURITY_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L1),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// The first and the third invocation should be at default security level,
|
||||
// while the second one should be L3
|
||||
@@ -726,13 +730,13 @@ TEST_F(WVDrmPluginHalTest, GetsProvisioningRequests) {
|
||||
.Times(2)
|
||||
.WillRepeatedly(DoAll(SetArgPointee<5>(mCdmRequest),
|
||||
SetArgPointee<6>(kDefaultUrl),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
EXPECT_CALL(*mCdm, GetProvisioningRequest(kCertificateWidevine, IsEmpty(),
|
||||
HasOrigin(EMPTY_ORIGIN), IsEmpty(),
|
||||
wvcdm::kLevel3, _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<5>(mCdmRequest),
|
||||
SetArgPointee<6>(kDefaultUrl),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Make 3 provisioning requests at security level default then L3 then L1
|
||||
ProvisionRequest result;
|
||||
@@ -791,7 +795,7 @@ TEST_F(WVDrmPluginHalTest, HandlesProvisioningResponses) {
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SECURITY_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L1),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// The first and the third invocation should be at default security level,
|
||||
// while the second one should be L3
|
||||
@@ -845,13 +849,13 @@ TEST_F(WVDrmPluginHalTest, MuxesUnprovisioningErrors) {
|
||||
// Tests that both Unprovisions are called even if one fails. Also tests that
|
||||
// no matter which fails, the function always propagates the error.
|
||||
EXPECT_CALL(*mCdm, Unprovision(kSecurityLevelL1, HasOrigin(EMPTY_ORIGIN)))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::NO_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::NO_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)));
|
||||
EXPECT_CALL(*mCdm, Unprovision(kSecurityLevelL3, HasOrigin(EMPTY_ORIGIN)))
|
||||
.WillOnce(testing::Return(wvcdm::NO_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::NO_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)));
|
||||
|
||||
Status res = mPlugin->unprovisionDevice();
|
||||
ASSERT_NE(Status::OK, res);
|
||||
@@ -889,8 +893,8 @@ TEST_F(WVDrmPluginHalTest, UnprovisionsGloballyWithSpoid) {
|
||||
ASSERT_TRUE(cdm) << "Failed to create mocked CDM";
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_DEVICE_ID, _))
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<2>(kDeviceId), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kDeviceId),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL1, HasOrigin(EMPTY_ORIGIN)))
|
||||
.Times(1);
|
||||
@@ -927,13 +931,13 @@ TEST_F(WVDrmPluginHalTest, MuxesOriginUnprovisioningErrors) {
|
||||
// Tests that both Unprovisions are called even if one fails. Also tests that
|
||||
// no matter which fails, the function always propagates the error.
|
||||
EXPECT_CALL(*mCdm, Unprovision(kSecurityLevelL1, HasOrigin(kOrigin.c_str())))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::NO_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::NO_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)));
|
||||
EXPECT_CALL(*mCdm, Unprovision(kSecurityLevelL3, HasOrigin(kOrigin.c_str())))
|
||||
.WillOnce(testing::Return(wvcdm::NO_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR))
|
||||
.WillOnce(testing::Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::NO_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::UNKNOWN_ERROR)));
|
||||
|
||||
auto ret =
|
||||
mPlugin->setPropertyString(std::string("origin"), std::string(kOrigin));
|
||||
@@ -991,104 +995,105 @@ TEST_F(WVDrmPluginHalTest, ReturnsExpectedPropertyValues) {
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SECURITY_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L1),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L3),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_DEVICE_ID, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>(kDeviceId), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kDeviceId),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SYSTEM_ID, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>(systemId), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>(systemId),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_PROVISIONING_ID, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(provisioningId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_NUMBER_OF_OPEN_SESSIONS, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(openSessions),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_MAX_NUMBER_OF_SESSIONS, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(maxSessions),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_OEMCRYPTO_API_VERSION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoApiVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_OEMCRYPTO_API_MINOR_VERSION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoApiMinorVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SRM_UPDATE_SUPPORT, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>("True"), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>("True"),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_CURRENT_SRM_VERSION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(currentSRMVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_WVCDM_VERSION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(mCdmVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_RESOURCE_RATING_TIER, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(resourceRatingTier),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_DECRYPT_HASH_SUPPORT, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>("1"), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>("1"),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoBuildInformation),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, GetDecryptHashError(_, _))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(decryptHashErrorBadHashAndFrameNumber),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_PROVISIONING_MODEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(provisioningModel),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_ANALOG_OUTPUT_CAPABILITIES, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(analogOutputCap),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_CAN_DISABLE_ANALOG_OUTPUT, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>("True"), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>("True"),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_CURRENT_HDCP_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(currentHdcpLevel),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_MAX_HDCP_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(maxHdcpLevel),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_MAX_USAGE_TABLE_ENTRIES, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(maxUsageEntries),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_PRODUCTION_READY, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(wvcdm::QUERY_VALUE_TRUE),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_USAGE_SUPPORT, _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>("True"), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>("True"),
|
||||
testing::Return(CdmResponseType(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)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, GetMetrics(_, _))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(expected_metrics),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
std::string stringResult;
|
||||
std::vector<uint8_t> vectorResult;
|
||||
@@ -1242,7 +1247,7 @@ TEST_F(WVDrmPluginHalTest, ReturnsExpectedPropertyValues) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _,
|
||||
HasOrigin(EMPTY_ORIGIN), _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(AtLeast(1))
|
||||
@@ -1338,8 +1343,9 @@ TEST_F(WVDrmPluginHalTest, CompliesWithSpoidVariability) {
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_DEVICE_ID, _))
|
||||
.Times(AtLeast(kPluginsPerCdm))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(deviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<2>(deviceId),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
for (size_t appIndex = 0; appIndex < kAppCount; ++appIndex) {
|
||||
const std::string &appPackageName = kAppNames[appIndex];
|
||||
@@ -1419,13 +1425,13 @@ TEST_F(WVDrmPluginHalTest, ReturnsSameL1Spoid) {
|
||||
EXPECT_CALL(*cdm, QueryStatus(wvcdm::kLevelDefault, QUERY_KEY_DEVICE_ID, _))
|
||||
.Times(kSpoidQuery)
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kL1DeviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior to support session creation
|
||||
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(kSpoidQuery)
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(kSpoidQuery)
|
||||
@@ -1471,13 +1477,13 @@ TEST_F(WVDrmPluginHalTest, ReturnsL3SpoidsWhenL3ProvisionedUsingL3Spoid) {
|
||||
EXPECT_CALL(*cdm, QueryStatus(wvcdm::kLevel3, QUERY_KEY_DEVICE_ID, _))
|
||||
.Times(kSpoidQuery)
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kL3DeviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior to support session creation
|
||||
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(kSpoidQuery)
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(kSpoidQuery)
|
||||
@@ -1535,19 +1541,19 @@ TEST_F(WVDrmPluginHalTest, ReturnsL3SpoidsWhenL3Unprovisioned) {
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(wvcdm::kLevelDefault, QUERY_KEY_DEVICE_ID, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kL1DeviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(wvcdm::kLevel3, QUERY_KEY_DEVICE_ID, _))
|
||||
.Times(kSpoidQuery)
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kL3DeviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior to support session creation
|
||||
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(kSpoidQuery)
|
||||
.WillOnce(testing::Return(wvcdm::NEED_PROVISIONING))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::NEED_PROVISIONING)))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.WillOnce(Invoke(setSessionIdOnMap<4>));
|
||||
@@ -1628,13 +1634,13 @@ TEST_F(WVDrmPluginHalTest, ReturnsL1SpoidsWhenL3ProvisionedUsingL1Spoid) {
|
||||
|
||||
EXPECT_CALL(*cdm1, QueryStatus(wvcdm::kLevelDefault, QUERY_KEY_DEVICE_ID, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kL1DeviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior to support session creation
|
||||
EXPECT_CALL(*cdm1, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
.WillOnce(testing::Return(wvcdm::NEED_PROVISIONING));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(testing::Return(CdmResponseType(wvcdm::NEED_PROVISIONING)));
|
||||
|
||||
EXPECT_CALL(*cdm1, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.WillOnce(Invoke(setSessionIdOnMap<4>));
|
||||
@@ -1686,16 +1692,16 @@ TEST_F(WVDrmPluginHalTest, ReturnsL1SpoidsWhenL3ProvisionedUsingL1Spoid) {
|
||||
|
||||
EXPECT_CALL(*cdm2, QueryStatus(wvcdm::kLevelDefault, QUERY_KEY_DEVICE_ID, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kL1DeviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*cdm2, QueryStatus(wvcdm::kLevel3, QUERY_KEY_DEVICE_ID, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kL3DeviceId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior to support session creation
|
||||
EXPECT_CALL(*cdm2, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*cdm2, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.WillOnce(Invoke(setSessionIdOnMap<4>));
|
||||
@@ -1748,7 +1754,7 @@ TEST_F(WVDrmPluginHalTest, FailsGenericMethodsWithoutAnAlgorithmSet) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(AtLeast(1))
|
||||
@@ -1831,7 +1837,7 @@ TEST_F(WVDrmPluginHalTest, CallsGenericEncrypt) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(AtLeast(1))
|
||||
@@ -1889,7 +1895,7 @@ TEST_F(WVDrmPluginHalTest, CallsGenericDecrypt) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(AtLeast(1))
|
||||
@@ -1949,7 +1955,7 @@ TEST_F(WVDrmPluginHalTest, CallsGenericSign) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(AtLeast(1))
|
||||
@@ -2018,7 +2024,7 @@ TEST_F(WVDrmPluginHalTest, CallsGenericVerify) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(AtLeast(1))
|
||||
@@ -2048,7 +2054,7 @@ TEST_F(WVDrmPluginHalTest, RegistersForEvents) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
.Times(AtLeast(1))
|
||||
@@ -2075,9 +2081,9 @@ TEST_F(WVDrmPluginHalTest, UnregistersForAllEventsOnDestruction) {
|
||||
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId1),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId2),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId1, _))
|
||||
.WillOnce(Invoke(setSessionIdOnMap<4>));
|
||||
@@ -2159,8 +2165,9 @@ TEST_F(WVDrmPluginHalTest, MarshalsEvents) {
|
||||
TEST_F(WVDrmPluginHalTest, GeneratesProvisioningNeededEvent) {
|
||||
EXPECT_CALL(*mCdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NEED_PROVISIONING)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(CdmResponseType(wvcdm::NEED_PROVISIONING))));
|
||||
|
||||
EXPECT_CALL(*mCdm, CloseSession(_)).Times(AtLeast(0));
|
||||
|
||||
@@ -2178,9 +2185,9 @@ TEST_F(WVDrmPluginHalTest, ProvidesExpectedDefaultPropertiesToCdm) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2210,14 +2217,15 @@ TEST_F(WVDrmPluginHalTest, CanSetAppId) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin queries for the security level
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SECURITY_LEVEL, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L3),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L3),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2264,7 +2272,7 @@ TEST_P(WVDrmPluginHalOriginTest, CanSetOrigin) {
|
||||
// Note which mock calls we expect
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, HasOrigin(params.expectedOrigin), _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Set the properties & run the test
|
||||
|
||||
@@ -2295,18 +2303,18 @@ TEST_F(WVDrmPluginHalTest, CanSetSecurityLevel) {
|
||||
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SECURITY_LEVEL, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L3),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L1),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected mock behavior
|
||||
{
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2416,9 +2424,9 @@ TEST_F(WVDrmPluginHalTest, CanSetPrivacyMode) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2472,9 +2480,9 @@ TEST_F(WVDrmPluginHalTest, CanSetServiceCertificate) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2523,9 +2531,9 @@ TEST_F(WVDrmPluginHalTest, CanSetSessionSharing) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2591,9 +2599,9 @@ TEST_F(WVDrmPluginHalTest, AllowsStoringOfSessionSharingId) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2628,14 +2636,15 @@ TEST_F(WVDrmPluginHalTest, CanSetAtscMode) {
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
SaveArg<2>(&mCdmIdAtscModeNotSet),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
.WillOnce(DoAll(
|
||||
SetArgPointee<4>(mCdmSessionId), SaveArg<1>(&propertySet),
|
||||
SaveArg<2>(&mCdmIdAtscModeSet), testing::Return(wvcdm::NO_ERROR)))
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
SaveArg<2>(&mCdmIdAtscModeSet),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
SaveArg<1>(&propertySet),
|
||||
SaveArg<2>(&mCdmIdAtscModeReset),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*cdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2720,8 +2729,9 @@ TEST_F(WVDrmPluginHalTest, CanSetDecryptHashProperties) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2759,8 +2769,9 @@ TEST_F(WVDrmPluginHalTest, DoesNotSetDecryptHashProperties) {
|
||||
// Provide expected behavior in response to OpenSession and store the
|
||||
// property set
|
||||
EXPECT_CALL(*mCdm, OpenSession(_, _, _, _, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<4>(mCdmSessionId),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
// Provide expected behavior when mPlugin requests session control info
|
||||
EXPECT_CALL(*mCdm, QueryOemCryptoSessionId(mCdmSessionId, _))
|
||||
@@ -2837,13 +2848,13 @@ TEST_F(WVDrmPluginHalTest, GetOfflineLicenseIds) {
|
||||
|
||||
EXPECT_CALL(*mCdm,
|
||||
ListStoredLicenses(kSecurityLevelL1, HasOrigin(EMPTY_ORIGIN), _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>(mockIdsL1), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>(mockIdsL1),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm,
|
||||
ListStoredLicenses(kSecurityLevelL3, HasOrigin(EMPTY_ORIGIN), _))
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<2>(mockIdsL3), testing::Return(wvcdm::NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<2>(mockIdsL3),
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
std::vector<KeySetId> offlineIds;
|
||||
auto ret = mPlugin->getOfflineLicenseKeySetIds(&offlineIds);
|
||||
@@ -2860,16 +2871,16 @@ TEST_F(WVDrmPluginHalTest, GetOfflineLicenseIds) {
|
||||
TEST_F(WVDrmPluginHalTest, GetOfflineLicenseState) {
|
||||
EXPECT_CALL(*mCdm, QueryStatus(_, QUERY_KEY_SECURITY_LEVEL, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(QUERY_VALUE_SECURITY_LEVEL_L1),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
EXPECT_CALL(*mCdm, GetOfflineLicenseState(_, kSecurityLevelL1,
|
||||
HasOrigin(EMPTY_ORIGIN), _))
|
||||
.WillOnce(DoAll(SetArgPointee<3>(wvcdm::kLicenseStateActive),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(DoAll(SetArgPointee<3>(wvcdm::kLicenseStateReleasing),
|
||||
testing::Return(wvcdm::NO_ERROR)))
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))))
|
||||
.WillOnce(DoAll(SetArgPointee<3>(wvcdm::kLicenseStateUnknown),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
testing::Return(CdmResponseType(wvcdm::NO_ERROR))));
|
||||
|
||||
auto ret = mPlugin->setPropertyString(std::string("securityLevel"),
|
||||
std::string("L1"));
|
||||
|
||||
Reference in New Issue
Block a user