Add CdmKeyStatus kKeyStatusUsableInFuture

Bug: 116738851
Test: unit tests
Change-Id: I49728788e57905806b72e891f3654fbf0c8b1bc0
This commit is contained in:
Robert Shih
2019-05-10 13:29:54 -07:00
parent 127f87770c
commit 69c8f488ca
10 changed files with 105 additions and 29 deletions

View File

@@ -253,7 +253,7 @@ class MockCrypto : public WVGenericCryptoInterface {
RSA_Padding_Scheme));
};
class MockDrmPluginListener : public IDrmPluginListener {
class MockDrmPluginListener : public IDrmPluginListener_V1_2 {
public:
MOCK_METHOD3(sendEvent, Return<void>(EventType, const hidl_vec<uint8_t>&,
const hidl_vec<uint8_t>&));
@@ -264,6 +264,12 @@ class MockDrmPluginListener : public IDrmPluginListener {
MOCK_METHOD3(sendKeysChange, Return<void>(const hidl_vec<uint8_t>&,
const hidl_vec<KeyStatus>&, bool));
MOCK_METHOD1(sendSessionLostState,
Return<void>(const hidl_vec<uint8_t>&));
MOCK_METHOD3(sendKeysChange_1_2, Return<void>(const hidl_vec<uint8_t>&,
const hidl_vec<KeyStatus_V1_2>&, bool));
};
template <uint8_t DIGIT>
@@ -1996,6 +2002,7 @@ TEST_F(WVDrmPluginTest, DISABLED_MarshalsEvents) {
std::string kKeyId2 = "Testing Key2 Id ";
std::string kKeyId3 = "Testing Key3 Id ";
std::string kKeyId4 = "Testing Key4 Id ";
std::string kKeyId5 = "Testing Key5 Id ";
{
InSequence calls;
@@ -2005,17 +2012,17 @@ TEST_F(WVDrmPluginTest, DISABLED_MarshalsEvents) {
hSessionId.setToExternal(sessionIdRaw, kSessionIdSize);
std::vector<uint8_t> keyId;
std::vector<KeyStatus> keyStatusList;
std::vector<KeyStatus_V1_2> keyStatusList;
KeyStatus keyStatus;
KeyStatus_V1_2 keyStatus;
keyId.assign(kKeyId1.begin(), kKeyId1.end());
keyStatus.keyId = toHidlVec(keyId);
keyStatus.type = KeyStatusType::EXPIRED;
keyStatus.type = KeyStatusType_V1_2::EXPIRED;
keyStatusList.push_back(keyStatus);
hidl_vec<KeyStatus> hKeyStatusList = toHidlVec(keyStatusList);
hidl_vec<KeyStatus_V1_2> hKeyStatusList = toHidlVec(keyStatusList);
EXPECT_CALL(*listener,
sendKeysChange(hSessionId, hKeyStatusList, false));
sendKeysChange_1_2(hSessionId, hKeyStatusList, false));
EXPECT_CALL(
*listener,
@@ -2032,20 +2039,23 @@ TEST_F(WVDrmPluginTest, DISABLED_MarshalsEvents) {
keyStatusList.clear();
keyId.clear();
keyId.assign(kKeyId1.begin(), kKeyId1.end());
keyStatus.type = KeyStatusType::USABLE;
keyStatus.type = KeyStatusType_V1_2::USABLE;
keyStatusList.push_back(keyStatus);
keyId.assign(kKeyId2.begin(), kKeyId2.end());
keyStatus.type = KeyStatusType::OUTPUTNOTALLOWED;
keyStatus.type = KeyStatusType_V1_2::OUTPUTNOTALLOWED;
keyStatusList.push_back(keyStatus);
keyId.assign(kKeyId3.begin(), kKeyId3.end());
keyStatus.type = KeyStatusType::INTERNALERROR;
keyStatus.type = KeyStatusType_V1_2::INTERNALERROR;
keyStatusList.push_back(keyStatus);
keyId.assign(kKeyId4.begin(), kKeyId4.end());
keyStatus.type = KeyStatusType::STATUSPENDING;
keyStatus.type = KeyStatusType_V1_2::STATUSPENDING;
keyStatusList.push_back(keyStatus);
keyId.assign(kKeyId5.begin(), kKeyId5.end());
keyStatus.type = KeyStatusType_V1_2::USABLEINFUTURE;
keyStatusList.push_back(keyStatus);
hidl_vec<KeyStatus> hKeyStatusList2 = toHidlVec(keyStatusList);
EXPECT_CALL(*listener, sendKeysChange(hSessionId, hKeyStatusList2, false));
hidl_vec<KeyStatus_V1_2> hKeyStatusList2 = toHidlVec(keyStatusList);
EXPECT_CALL(*listener, sendKeysChange_1_2(hSessionId, hKeyStatusList2, false));
}
WVDrmPlugin plugin(cdm.get(), appPackageName, &crypto, false);
@@ -2063,6 +2073,7 @@ TEST_F(WVDrmPluginTest, DISABLED_MarshalsEvents) {
cdmKeysStatus[kKeyId2] = wvcdm::kKeyStatusOutputNotAllowed;
cdmKeysStatus[kKeyId3] = wvcdm::kKeyStatusInternalError;
cdmKeysStatus[kKeyId4] = wvcdm::kKeyStatusPending;
cdmKeysStatus[kKeyId5] = wvcdm::kKeyStatusUsableInFuture;
plugin.OnSessionKeysChange(cdmSessionId, cdmKeysStatus, true);
}