Support Device Unprovisioning
Merge of https://widevine-internal-review.googlesource.com/#/c/10845/ from the widevine cdm repo. Bug: 12247651 Change-Id: Ice6ec95865640fa2f736c7a9f09956395d648337
This commit is contained in:
@@ -66,6 +66,8 @@ class MockCDM : public WvContentDecryptionModule {
|
||||
|
||||
MOCK_METHOD1(GetUsageInfo, CdmResponseType(CdmUsageInfo*));
|
||||
|
||||
MOCK_METHOD1(Unprovision, CdmResponseType(CdmSecurityLevel));
|
||||
|
||||
MOCK_METHOD1(ReleaseUsageInfo,
|
||||
CdmResponseType(const CdmUsageInfoReleaseMessage&));
|
||||
|
||||
@@ -554,6 +556,44 @@ TEST_F(WVDrmPluginTest, HandlesProvisioningResponses) {
|
||||
ASSERT_EQ(OK, res);
|
||||
}
|
||||
|
||||
TEST_F(WVDrmPluginTest, UnprovisionsDevice) {
|
||||
StrictMock<MockCDM> cdm;
|
||||
StrictMock<MockCrypto> crypto;
|
||||
WVDrmPlugin plugin(&cdm, &crypto);
|
||||
|
||||
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL1))
|
||||
.Times(1);
|
||||
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL3))
|
||||
.Times(1);
|
||||
|
||||
status_t res = plugin.unprovisionDevice();
|
||||
ASSERT_EQ(OK, res);
|
||||
}
|
||||
|
||||
TEST_F(WVDrmPluginTest, MuxesUnprovisioningErrors) {
|
||||
StrictMock<MockCDM> cdm;
|
||||
StrictMock<MockCrypto> crypto;
|
||||
WVDrmPlugin plugin(&cdm, &crypto);
|
||||
|
||||
// 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(cdm, Unprovision(kSecurityLevelL1))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR))
|
||||
.WillOnce(Return(wvcdm::NO_ERROR))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL3))
|
||||
.WillOnce(Return(wvcdm::NO_ERROR))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
|
||||
status_t res = plugin.unprovisionDevice();
|
||||
ASSERT_NE(OK, res);
|
||||
res = plugin.unprovisionDevice();
|
||||
ASSERT_NE(OK, res);
|
||||
res = plugin.unprovisionDevice();
|
||||
ASSERT_NE(OK, res);
|
||||
}
|
||||
|
||||
TEST_F(WVDrmPluginTest, GetsSecureStops) {
|
||||
StrictMock<MockCDM> cdm;
|
||||
StrictMock<MockCrypto> crypto;
|
||||
|
||||
Reference in New Issue
Block a user