Replace MockCDM with Android Smart Pointer to MockCDM

Merge from widevine repo of http://go/wvgerrit/14742

The CDM object can no longer be created on the stack because it
inherits from RefBase.  This caused some unit tests to hang in the
MockCDM destructor.

bug: 21881298

Change-Id: Ieeb7863031609f12ad3d9188c4525aa2fa1eb736
This commit is contained in:
Fred Gylys-Colwell
2015-06-17 13:57:44 -07:00
parent 8bd1a40cd2
commit 87dbf0d941
2 changed files with 195 additions and 195 deletions

View File

@@ -184,21 +184,21 @@ class WVDrmPluginOriginTest : public WVDrmPluginTest,
public WithParamInterface<OriginTestVariant> {};
TEST_F(WVDrmPluginTest, OpensSessions) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
EXPECT_CALL(cdm,
EXPECT_CALL(*cdm,
OpenSession(StrEq("com.widevine"), _, StrEq(EMPTY_ORIGIN), _, _))
.WillOnce(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.Times(AtLeast(1))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -208,11 +208,11 @@ TEST_F(WVDrmPluginTest, OpensSessions) {
}
TEST_F(WVDrmPluginTest, ClosesSessions) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
EXPECT_CALL(cdm, CloseSession(cdmSessionId))
EXPECT_CALL(*cdm, CloseSession(cdmSessionId))
.Times(1);
status_t res = plugin.closeSession(sessionId);
@@ -221,11 +221,11 @@ TEST_F(WVDrmPluginTest, ClosesSessions) {
}
TEST_F(WVDrmPluginTest, ClosesSessionWithoutReturningError) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
EXPECT_CALL(cdm, CloseSession(cdmSessionId))
EXPECT_CALL(*cdm, CloseSession(cdmSessionId))
.WillOnce(Return(SESSION_NOT_FOUND_1));
status_t res = plugin.closeSession(sessionId);
@@ -234,9 +234,9 @@ TEST_F(WVDrmPluginTest, ClosesSessionWithoutReturningError) {
}
TEST_F(WVDrmPluginTest, GeneratesKeyRequests) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const size_t kInitDataSize = 128;
uint8_t initDataRaw[kInitDataSize];
@@ -316,7 +316,7 @@ TEST_F(WVDrmPluginTest, GeneratesKeyRequests) {
const char* mimeType = testSets[i].mimeType;
const CdmInitData& initData = testSets[i].initDataOut;
EXPECT_CALL(cdm, GenerateKeyRequest(cdmSessionId, "", mimeType, initData,
EXPECT_CALL(*cdm, GenerateKeyRequest(cdmSessionId, "", mimeType, initData,
kLicenseTypeOffline, cdmParameters, _,
_, _, _, _))
.WillOnce(DoAll(SetArgPointee<8>(cdmRequest),
@@ -324,7 +324,7 @@ TEST_F(WVDrmPluginTest, GeneratesKeyRequests) {
SetArgPointee<10>(kDefaultUrl),
Return(wvcdm::KEY_MESSAGE)));
EXPECT_CALL(cdm, GenerateKeyRequest(cdmSessionId, "", mimeType, initData,
EXPECT_CALL(*cdm, GenerateKeyRequest(cdmSessionId, "", mimeType, initData,
kLicenseTypeStreaming, cdmParameters,
_, _, _, _, _))
.WillOnce(DoAll(SetArgPointee<8>(cdmRequest),
@@ -332,7 +332,7 @@ TEST_F(WVDrmPluginTest, GeneratesKeyRequests) {
SetArgPointee<10>(kDefaultUrl),
Return(wvcdm::KEY_MESSAGE)));
EXPECT_CALL(cdm, GenerateKeyRequest("", cdmKeySetId, mimeType, initData,
EXPECT_CALL(*cdm, GenerateKeyRequest("", cdmKeySetId, mimeType, initData,
kLicenseTypeRelease, cdmParameters,
NotNull(), StrEq(EMPTY_ORIGIN), _, _,
_))
@@ -381,9 +381,9 @@ TEST_F(WVDrmPluginTest, GeneratesKeyRequests) {
}
TEST_F(WVDrmPluginTest, AddsKeys) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const uint32_t kResponseSize = 256;
uint8_t responseRaw[kResponseSize];
@@ -403,12 +403,12 @@ TEST_F(WVDrmPluginTest, AddsKeys) {
Vector<uint8_t> emptyKeySetId;
EXPECT_CALL(cdm, AddKey(cdmSessionId,
EXPECT_CALL(*cdm, AddKey(cdmSessionId,
ElementsAreArray(responseRaw, kResponseSize), _))
.WillOnce(DoAll(SetArgPointee<2>(cdmKeySetId),
Return(wvcdm::KEY_ADDED)));
EXPECT_CALL(cdm, AddKey("", ElementsAreArray(responseRaw, kResponseSize),
EXPECT_CALL(*cdm, AddKey("", ElementsAreArray(responseRaw, kResponseSize),
Pointee(cdmKeySetId)))
.Times(1);
@@ -422,9 +422,9 @@ TEST_F(WVDrmPluginTest, AddsKeys) {
}
TEST_F(WVDrmPluginTest, HandlesPrivacyCertCaseOfAddKey) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
sp<StrictMock<MockDrmPluginListener> > listener =
new StrictMock<MockDrmPluginListener>();
@@ -433,16 +433,16 @@ TEST_F(WVDrmPluginTest, HandlesPrivacyCertCaseOfAddKey) {
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
static const uint32_t kResponseSize = 256;
@@ -461,7 +461,7 @@ TEST_F(WVDrmPluginTest, HandlesPrivacyCertCaseOfAddKey) {
NULL))
.Times(1);
EXPECT_CALL(cdm, AddKey(_, _, _))
EXPECT_CALL(*cdm, AddKey(_, _, _))
.WillRepeatedly(Return(wvcdm::NEED_KEY));
plugin.openSession(sessionId);
@@ -479,11 +479,11 @@ TEST_F(WVDrmPluginTest, HandlesPrivacyCertCaseOfAddKey) {
}
TEST_F(WVDrmPluginTest, RemovesKeys) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
EXPECT_CALL(cdm, RemoveKeys(cdmSessionId))
EXPECT_CALL(*cdm, RemoveKeys(cdmSessionId))
.Times(1);
status_t res = plugin.removeKeys(sessionId);
@@ -491,9 +491,9 @@ TEST_F(WVDrmPluginTest, RemovesKeys) {
}
TEST_F(WVDrmPluginTest, RestoresKeys) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const size_t kKeySetIdSize = 32;
uint8_t keySetIdRaw[kKeySetIdSize];
@@ -504,7 +504,7 @@ TEST_F(WVDrmPluginTest, RestoresKeys) {
Vector<uint8_t> keySetId;
keySetId.appendArray(keySetIdRaw, kKeySetIdSize);
EXPECT_CALL(cdm, RestoreKey(cdmSessionId,
EXPECT_CALL(*cdm, RestoreKey(cdmSessionId,
ElementsAreArray(keySetIdRaw, kKeySetIdSize)))
.Times(1);
@@ -513,9 +513,9 @@ TEST_F(WVDrmPluginTest, RestoresKeys) {
}
TEST_F(WVDrmPluginTest, QueriesKeyStatus) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
KeyedVector<String8, String8> expectedLicenseStatus;
CdmQueryMap cdmLicenseStatus;
@@ -527,7 +527,7 @@ TEST_F(WVDrmPluginTest, QueriesKeyStatus) {
expectedLicenseStatus.add(String8("answer"), String8("42"));
cdmLicenseStatus["answer"] = "42";
EXPECT_CALL(cdm, QueryKeyStatus(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyStatus(cdmSessionId, _))
.WillOnce(DoAll(SetArgPointee<1>(cdmLicenseStatus),
Return(wvcdm::NO_ERROR)));
@@ -546,9 +546,9 @@ TEST_F(WVDrmPluginTest, QueriesKeyStatus) {
}
TEST_F(WVDrmPluginTest, GetsProvisioningRequests) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const uint32_t kRequestSize = 256;
uint8_t requestRaw[kRequestSize];
@@ -560,7 +560,7 @@ TEST_F(WVDrmPluginTest, GetsProvisioningRequests) {
static const char* kDefaultUrl = "http://google.com/";
EXPECT_CALL(cdm, GetProvisioningRequest(kCertificateWidevine, IsEmpty(),
EXPECT_CALL(*cdm, GetProvisioningRequest(kCertificateWidevine, IsEmpty(),
EMPTY_ORIGIN, _, _))
.WillOnce(DoAll(SetArgPointee<3>(cdmRequest),
SetArgPointee<4>(kDefaultUrl),
@@ -578,9 +578,9 @@ TEST_F(WVDrmPluginTest, GetsProvisioningRequests) {
}
TEST_F(WVDrmPluginTest, HandlesProvisioningResponses) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const uint32_t kResponseSize = 512;
uint8_t responseRaw[kResponseSize];
@@ -591,7 +591,7 @@ TEST_F(WVDrmPluginTest, HandlesProvisioningResponses) {
Vector<uint8_t> response;
response.appendArray(responseRaw, kResponseSize);
EXPECT_CALL(cdm, HandleProvisioningResponse(EMPTY_ORIGIN,
EXPECT_CALL(*cdm, HandleProvisioningResponse(EMPTY_ORIGIN,
ElementsAreArray(responseRaw,
kResponseSize),
_, _))
@@ -606,13 +606,13 @@ TEST_F(WVDrmPluginTest, HandlesProvisioningResponses) {
}
TEST_F(WVDrmPluginTest, UnprovisionsDevice) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL1, EMPTY_ORIGIN))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL1, EMPTY_ORIGIN))
.Times(1);
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL3, EMPTY_ORIGIN))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL3, EMPTY_ORIGIN))
.Times(1);
status_t res = plugin.unprovisionDevice();
@@ -620,17 +620,17 @@ TEST_F(WVDrmPluginTest, UnprovisionsDevice) {
}
TEST_F(WVDrmPluginTest, MuxesUnprovisioningErrors) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &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, EMPTY_ORIGIN))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL1, EMPTY_ORIGIN))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR))
.WillOnce(Return(wvcdm::NO_ERROR))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL3, EMPTY_ORIGIN))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL3, EMPTY_ORIGIN))
.WillOnce(Return(wvcdm::NO_ERROR))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
@@ -644,18 +644,18 @@ TEST_F(WVDrmPluginTest, MuxesUnprovisioningErrors) {
}
TEST_F(WVDrmPluginTest, UnprovisionsOrigin) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
Vector<uint8_t> cert;
Vector<uint8_t> key;
Vector<uint8_t> specialResponse;
specialResponse.appendArray(kUnprovisionResponse, kUnprovisionResponseSize);
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL1, StrEq(kOrigin.string())))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL1, StrEq(kOrigin.string())))
.Times(1);
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL3, StrEq(kOrigin.string())))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL3, StrEq(kOrigin.string())))
.Times(1);
status_t res = plugin.setPropertyString(String8("origin"), kOrigin);
@@ -665,16 +665,16 @@ TEST_F(WVDrmPluginTest, UnprovisionsOrigin) {
}
TEST_F(WVDrmPluginTest, WillNotUnprovisionWithoutOrigin) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
Vector<uint8_t> cert;
Vector<uint8_t> key;
Vector<uint8_t> specialResponse;
specialResponse.appendArray(kUnprovisionResponse, kUnprovisionResponseSize);
EXPECT_CALL(cdm, Unprovision(_, _))
EXPECT_CALL(*cdm, Unprovision(_, _))
.Times(0);
status_t res = plugin.provideProvisionResponse(specialResponse, cert, key);
@@ -682,9 +682,9 @@ TEST_F(WVDrmPluginTest, WillNotUnprovisionWithoutOrigin) {
}
TEST_F(WVDrmPluginTest, MuxesOriginUnprovisioningErrors) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
Vector<uint8_t> cert;
Vector<uint8_t> key;
@@ -693,11 +693,11 @@ TEST_F(WVDrmPluginTest, 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(cdm, Unprovision(kSecurityLevelL1, StrEq(kOrigin.string())))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL1, StrEq(kOrigin.string())))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR))
.WillOnce(Return(wvcdm::NO_ERROR))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
EXPECT_CALL(cdm, Unprovision(kSecurityLevelL3, StrEq(kOrigin.string())))
EXPECT_CALL(*cdm, Unprovision(kSecurityLevelL3, StrEq(kOrigin.string())))
.WillOnce(Return(wvcdm::NO_ERROR))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR))
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
@@ -713,9 +713,9 @@ TEST_F(WVDrmPluginTest, MuxesOriginUnprovisioningErrors) {
}
TEST_F(WVDrmPluginTest, GetsSecureStops) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
const char* app_id = "my_app_id";
plugin.setPropertyString(String8("appId"), String8(app_id));
@@ -733,7 +733,7 @@ TEST_F(WVDrmPluginTest, GetsSecureStops) {
cdmStops.push_back(string(stopsRaw[i], stopsRaw[i] + kStopSize));
}
EXPECT_CALL(cdm, GetUsageInfo(StrEq(app_id), _))
EXPECT_CALL(*cdm, GetUsageInfo(StrEq(app_id), _))
.WillOnce(DoAll(SetArgPointee<1>(cdmStops),
Return(wvcdm::NO_ERROR)));
@@ -757,14 +757,14 @@ TEST_F(WVDrmPluginTest, GetsSecureStops) {
}
TEST_F(WVDrmPluginTest, ReleasesAllSecureStops) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
status_t res = plugin.setPropertyString(String8("appId"), String8(""));
ASSERT_EQ(OK, res);
EXPECT_CALL(cdm, ReleaseAllUsageInfo(StrEq("")))
EXPECT_CALL(*cdm, ReleaseAllUsageInfo(StrEq("")))
.Times(1);
res = plugin.releaseAllSecureStops();
@@ -772,9 +772,9 @@ TEST_F(WVDrmPluginTest, ReleasesAllSecureStops) {
}
TEST_F(WVDrmPluginTest, ReleasesSecureStops) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const uint32_t kMessageSize = 128;
uint8_t messageRaw[kMessageSize];
@@ -785,7 +785,7 @@ TEST_F(WVDrmPluginTest, ReleasesSecureStops) {
Vector<uint8_t> message;
message.appendArray(messageRaw, kMessageSize);
EXPECT_CALL(cdm, ReleaseUsageInfo(ElementsAreArray(messageRaw,
EXPECT_CALL(*cdm, ReleaseUsageInfo(ElementsAreArray(messageRaw,
kMessageSize)))
.Times(1);
@@ -795,9 +795,9 @@ TEST_F(WVDrmPluginTest, ReleasesSecureStops) {
}
TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
CdmQueryMap l1Map;
l1Map[QUERY_KEY_SECURITY_LEVEL] = QUERY_VALUE_SECURITY_LEVEL_L1;
@@ -825,7 +825,7 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
CdmQueryMap maxSessionsMap;
maxSessionsMap[QUERY_KEY_MAX_NUMBER_OF_SESSIONS] = maxSessions;
EXPECT_CALL(cdm, QueryStatus(_, _))
EXPECT_CALL(*cdm, QueryStatus(_, _))
.WillOnce(DoAll(SetArgPointee<1>(l1Map),
Return(wvcdm::NO_ERROR)))
.WillOnce(DoAll(SetArgPointee<1>(l3Map),
@@ -891,9 +891,9 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
}
TEST_F(WVDrmPluginTest, DoesNotGetUnknownProperties) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
String8 stringResult;
Vector<uint8_t> vectorResult;
@@ -910,9 +910,9 @@ TEST_F(WVDrmPluginTest, DoesNotGetUnknownProperties) {
}
TEST_F(WVDrmPluginTest, DoesNotSetUnknownProperties) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const uint32_t kValueSize = 32;
uint8_t valueRaw[kValueSize];
@@ -932,9 +932,9 @@ TEST_F(WVDrmPluginTest, DoesNotSetUnknownProperties) {
}
TEST_F(WVDrmPluginTest, FailsGenericMethodsWithoutAnAlgorithmSet) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
Vector<uint8_t> keyId;
Vector<uint8_t> input;
@@ -943,16 +943,16 @@ TEST_F(WVDrmPluginTest, FailsGenericMethodsWithoutAnAlgorithmSet) {
bool match;
// Provide expected behavior to support session creation
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
.Times(AtLeast(1))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.Times(AtLeast(1))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -985,9 +985,9 @@ MATCHER_P(IsIV, iv, "") {
}
TEST_F(WVDrmPluginTest, CallsGenericEncrypt) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const size_t kDataSize = 256;
uint8_t keyIdRaw[KEY_ID_SIZE];
@@ -1022,16 +1022,16 @@ TEST_F(WVDrmPluginTest, CallsGenericEncrypt) {
}
// Provide expected behavior to support session creation
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
.Times(AtLeast(1))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.Times(AtLeast(1))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -1045,9 +1045,9 @@ TEST_F(WVDrmPluginTest, CallsGenericEncrypt) {
}
TEST_F(WVDrmPluginTest, CallsGenericDecrypt) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const size_t kDataSize = 256;
uint8_t keyIdRaw[KEY_ID_SIZE];
@@ -1082,16 +1082,16 @@ TEST_F(WVDrmPluginTest, CallsGenericDecrypt) {
}
// Provide expected behavior to support session creation
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
.Times(AtLeast(1))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.Times(AtLeast(1))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -1105,9 +1105,9 @@ TEST_F(WVDrmPluginTest, CallsGenericDecrypt) {
}
TEST_F(WVDrmPluginTest, CallsGenericSign) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const size_t kDataSize = 256;
uint8_t keyIdRaw[KEY_ID_SIZE];
@@ -1144,16 +1144,16 @@ TEST_F(WVDrmPluginTest, CallsGenericSign) {
}
// Provide expected behavior to support session creation
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
.Times(AtLeast(1))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.Times(AtLeast(1))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -1167,9 +1167,9 @@ TEST_F(WVDrmPluginTest, CallsGenericSign) {
}
TEST_F(WVDrmPluginTest, CallsGenericVerify) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
static const size_t kDataSize = 256;
static const size_t kSignatureSize = 16;
@@ -1216,16 +1216,16 @@ TEST_F(WVDrmPluginTest, CallsGenericVerify) {
}
// Provide expected behavior to support session creation
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
.Times(AtLeast(1))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.Times(AtLeast(1))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -1244,21 +1244,21 @@ TEST_F(WVDrmPluginTest, CallsGenericVerify) {
}
TEST_F(WVDrmPluginTest, RegistersForEvents) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
// Provide expected behavior to support session creation
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, &plugin, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, &plugin, _))
.Times(AtLeast(1))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.Times(AtLeast(1))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -1266,11 +1266,11 @@ TEST_F(WVDrmPluginTest, RegistersForEvents) {
}
TEST_F(WVDrmPluginTest, UnregistersForAllEventsOnDestruction) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
{
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
uint8_t sessionIdRaw1[kSessionIdSize];
uint8_t sessionIdRaw2[kSessionIdSize];
@@ -1282,19 +1282,19 @@ TEST_F(WVDrmPluginTest, UnregistersForAllEventsOnDestruction) {
CdmSessionId cdmSessionId1(sessionIdRaw1, sessionIdRaw1 + kSessionIdSize);
CdmSessionId cdmSessionId2(sessionIdRaw2, sessionIdRaw2 + kSessionIdSize);
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
.WillOnce(DoAll(SetArgPointee<4>(cdmSessionId1),
Return(wvcdm::NO_ERROR)))
.WillOnce(DoAll(SetArgPointee<4>(cdmSessionId2),
Return(wvcdm::NO_ERROR)));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId1, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId1, _))
.WillOnce(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId2, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId2, _))
.WillOnce(Invoke(setSessionIdOnMap<5>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.openSession(sessionId);
@@ -1306,9 +1306,9 @@ TEST_F(WVDrmPluginTest, UnregistersForAllEventsOnDestruction) {
}
TEST_F(WVDrmPluginTest, MarshalsEvents) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
sp<StrictMock<MockDrmPluginListener> > listener =
new StrictMock<MockDrmPluginListener>();
@@ -1393,9 +1393,9 @@ TEST_F(WVDrmPluginTest, MarshalsEvents) {
}
TEST_F(WVDrmPluginTest, GeneratesProvisioningNeededEvent) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
sp<StrictMock<MockDrmPluginListener> > listener =
new StrictMock<MockDrmPluginListener>();
@@ -1406,12 +1406,12 @@ TEST_F(WVDrmPluginTest, GeneratesProvisioningNeededEvent) {
NULL))
.Times(1);
EXPECT_CALL(cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(StrEq("com.widevine"), _, _, _, _))
.Times(AtLeast(1))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NEED_PROVISIONING)));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
status_t res = plugin.setListener(listener);
@@ -1422,9 +1422,9 @@ TEST_F(WVDrmPluginTest, GeneratesProvisioningNeededEvent) {
}
TEST_F(WVDrmPluginTest, ProvidesExpectedDefaultPropertiesToCdm) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
const CdmClientPropertySet* propertySet = NULL;
@@ -1432,16 +1432,16 @@ TEST_F(WVDrmPluginTest, ProvidesExpectedDefaultPropertiesToCdm) {
{
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}
@@ -1457,9 +1457,9 @@ TEST_F(WVDrmPluginTest, ProvidesExpectedDefaultPropertiesToCdm) {
}
TEST_F(WVDrmPluginTest, CanSetAppId) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
const CdmClientPropertySet* propertySet = NULL;
@@ -1470,21 +1470,21 @@ TEST_F(WVDrmPluginTest, CanSetAppId) {
{
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin queries for the security level
EXPECT_CALL(cdm, QueryStatus(_, _))
EXPECT_CALL(*cdm, QueryStatus(_, _))
.WillRepeatedly(DoAll(SetArgPointee<1>(l3Map),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}
@@ -1510,24 +1510,24 @@ TEST_F(WVDrmPluginTest, CanSetAppId) {
}
TEST_P(WVDrmPluginOriginTest, CanSetOrigin) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
OriginTestVariant params = GetParam();
// Provide expected mock behavior
{
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
// Provide expected behavior when plugin closes a session
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}
// Note which mock calls we expect
EXPECT_CALL(cdm, OpenSession(_, _, StrEq(params.expectedOrigin), _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, StrEq(params.expectedOrigin), _, _))
.WillOnce(DoAll(SetArgPointee<4>(cdmSessionId),
Return(wvcdm::NO_ERROR)));
@@ -1546,9 +1546,9 @@ INSTANTIATE_TEST_CASE_P(OriginTests, WVDrmPluginOriginTest, Values(
OriginTestVariant("With an Origin", kOrigin, kOrigin.string())));
TEST_F(WVDrmPluginTest, CanSetSecurityLevel) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
const CdmClientPropertySet* propertySet = NULL;
@@ -1558,7 +1558,7 @@ TEST_F(WVDrmPluginTest, CanSetSecurityLevel) {
CdmQueryMap l3Map;
l3Map[QUERY_KEY_SECURITY_LEVEL] = QUERY_VALUE_SECURITY_LEVEL_L3;
EXPECT_CALL(cdm, QueryStatus(_, _))
EXPECT_CALL(*cdm, QueryStatus(_, _))
.WillOnce(DoAll(SetArgPointee<1>(l3Map),
Return(wvcdm::NO_ERROR)))
.WillOnce(DoAll(SetArgPointee<1>(l1Map),
@@ -1568,16 +1568,16 @@ TEST_F(WVDrmPluginTest, CanSetSecurityLevel) {
{
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}
@@ -1643,9 +1643,9 @@ TEST_F(WVDrmPluginTest, CanSetSecurityLevel) {
}
TEST_F(WVDrmPluginTest, CanSetPrivacyMode) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
const CdmClientPropertySet* propertySet = NULL;
@@ -1653,16 +1653,16 @@ TEST_F(WVDrmPluginTest, CanSetPrivacyMode) {
{
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}
@@ -1687,9 +1687,9 @@ TEST_F(WVDrmPluginTest, CanSetPrivacyMode) {
}
TEST_F(WVDrmPluginTest, CanSetServiceCertificate) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
const CdmClientPropertySet* propertySet = NULL;
@@ -1708,16 +1708,16 @@ TEST_F(WVDrmPluginTest, CanSetServiceCertificate) {
{
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}
@@ -1739,9 +1739,9 @@ TEST_F(WVDrmPluginTest, CanSetServiceCertificate) {
}
TEST_F(WVDrmPluginTest, CanSetSessionSharing) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
const CdmClientPropertySet* propertySet = NULL;
@@ -1749,16 +1749,16 @@ TEST_F(WVDrmPluginTest, CanSetSessionSharing) {
{
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}
@@ -1793,9 +1793,9 @@ TEST_F(WVDrmPluginTest, CanSetSessionSharing) {
}
TEST_F(WVDrmPluginTest, AllowsStoringOfSessionSharingId) {
StrictMock<MockCDM> cdm;
android::sp<StrictMock<MockCDM>> cdm = new StrictMock<MockCDM>();
StrictMock<MockCrypto> crypto;
WVDrmPlugin plugin(&cdm, &crypto);
WVDrmPlugin plugin(cdm.get(), &crypto);
CdmClientPropertySet* propertySet = NULL;
@@ -1808,16 +1808,16 @@ TEST_F(WVDrmPluginTest, AllowsStoringOfSessionSharingId) {
{
// Provide expected behavior in response to OpenSession and store the
// property set
EXPECT_CALL(cdm, OpenSession(_, _, _, _, _))
EXPECT_CALL(*cdm, OpenSession(_, _, _, _, _))
.WillRepeatedly(DoAll(SetArgPointee<4>(cdmSessionId),
SaveArg<1>(&propertySet),
Return(wvcdm::NO_ERROR)));
// Provide expected behavior when plugin requests session control info
EXPECT_CALL(cdm, QueryKeyControlInfo(cdmSessionId, _))
EXPECT_CALL(*cdm, QueryKeyControlInfo(cdmSessionId, _))
.WillRepeatedly(Invoke(setSessionIdOnMap<4>));
EXPECT_CALL(cdm, CloseSession(_))
EXPECT_CALL(*cdm, CloseSession(_))
.Times(AtLeast(0));
}