From 87dbf0d941e5c00076e6bc14919b6be35bcdcd66 Mon Sep 17 00:00:00 2001 From: Fred Gylys-Colwell Date: Wed, 17 Jun 2015 13:57:44 -0700 Subject: [PATCH] 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 --- .../mediacrypto/test/WVCryptoPlugin_test.cpp | 70 ++-- .../mediadrm/test/WVDrmPlugin_test.cpp | 320 +++++++++--------- 2 files changed, 195 insertions(+), 195 deletions(-) diff --git a/libwvdrmengine/mediacrypto/test/WVCryptoPlugin_test.cpp b/libwvdrmengine/mediacrypto/test/WVCryptoPlugin_test.cpp index de1c2a41..f3db6e79 100644 --- a/libwvdrmengine/mediacrypto/test/WVCryptoPlugin_test.cpp +++ b/libwvdrmengine/mediacrypto/test/WVCryptoPlugin_test.cpp @@ -51,7 +51,7 @@ class WVCryptoPluginTest : public Test { }; TEST_F(WVCryptoPluginTest, CorrectlyReportsSecureBuffers) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); CdmQueryMap l1Map; l1Map[QUERY_KEY_SECURITY_LEVEL] = QUERY_VALUE_SECURITY_LEVEL_L1; @@ -59,17 +59,17 @@ TEST_F(WVCryptoPluginTest, CorrectlyReportsSecureBuffers) { l3Map[QUERY_KEY_SECURITY_LEVEL] = QUERY_VALUE_SECURITY_LEVEL_L3; // Provide the expected behavior for IsOpenSession - EXPECT_CALL(cdm, IsOpenSession(_)) + EXPECT_CALL(*cdm, IsOpenSession(_)) .WillRepeatedly(Return(true)); // Specify the expected calls to QuerySessionStatus - EXPECT_CALL(cdm, QuerySessionStatus(_, _)) + EXPECT_CALL(*cdm, QuerySessionStatus(_, _)) .WillOnce(DoAll(SetArgPointee<1>(l1Map), Return(wvcdm::NO_ERROR))) .WillOnce(DoAll(SetArgPointee<1>(l3Map), Return(wvcdm::NO_ERROR))); - WVCryptoPlugin plugin(sessionId, kSessionIdSize, &cdm); + WVCryptoPlugin plugin(sessionId, kSessionIdSize, cdm.get()); EXPECT_TRUE(plugin.requiresSecureDecoderComponent("video/mp4")) << "WVCryptoPlugin incorrectly allows an insecure video decoder on L1"; @@ -148,7 +148,7 @@ class CDPMatcherFactory { }; TEST_F(WVCryptoPluginTest, AttemptsToDecrypt) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); uint8_t keyId[KEY_ID_SIZE]; uint8_t baseIv[KEY_IV_SIZE]; @@ -190,7 +190,7 @@ TEST_F(WVCryptoPluginTest, AttemptsToDecrypt) { CDPMatcherFactory ParamsAre = CDPMatcherFactory(false, keyId, out, kDataSize); // Provide the expected behavior for IsOpenSession - EXPECT_CALL(cdm, IsOpenSession(_)) + EXPECT_CALL(*cdm, IsOpenSession(_)) .WillRepeatedly(Return(true)); // Specify the expected calls to Decrypt @@ -198,55 +198,55 @@ TEST_F(WVCryptoPluginTest, AttemptsToDecrypt) { InSequence calls; // SubSample 0 - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(true, in, 16, iv[0], 0, 0, OEMCrypto_FirstSubsample))) .Times(1); // SubSample 1 - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(false, in + 16, 16, iv[1], 0, 16, 0))) .Times(1); - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(true, in + 32, 16, iv[1], 0, 32, 0))) .Times(1); // SubSample 2 - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(true, in + 48, 8, iv[2], 0, 48, 0))) .Times(1); // SubSample 3 - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(false, in + 56, 29, iv[2], 0, 56, 0))) .Times(1); - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(true, in + 85, 24, iv[2], 8, 85, 0))) .Times(1); // SubSample 4 - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(true, in + 109, 60, iv[3], 0, 109, 0))) .Times(1); // SubSample 5 - EXPECT_CALL(cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), true, ParamsAre(true, in + 169, 16, iv[4], 12, 169, OEMCrypto_LastSubsample))) .Times(1); } - WVCryptoPlugin plugin(sessionId, kSessionIdSize, &cdm); + WVCryptoPlugin plugin(sessionId, kSessionIdSize, cdm.get()); AString errorDetailMessage; ssize_t res = plugin.decrypt(false, keyId, iv[0], CryptoPlugin::kMode_AES_CTR, @@ -260,7 +260,7 @@ TEST_F(WVCryptoPluginTest, AttemptsToDecrypt) { } TEST_F(WVCryptoPluginTest, CommunicatesSecureBufferRequest) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); uint8_t keyId[KEY_ID_SIZE]; uint8_t iv[KEY_IV_SIZE]; @@ -282,7 +282,7 @@ TEST_F(WVCryptoPluginTest, CommunicatesSecureBufferRequest) { subSamples[0].mNumBytesOfEncryptedData = 16; // Provide the expected behavior for IsOpenSession - EXPECT_CALL(cdm, IsOpenSession(_)) + EXPECT_CALL(*cdm, IsOpenSession(_)) .WillRepeatedly(Return(true)); // Specify the expected calls to Decrypt @@ -291,14 +291,14 @@ TEST_F(WVCryptoPluginTest, CommunicatesSecureBufferRequest) { typedef CdmDecryptionParameters CDP; - EXPECT_CALL(cdm, Decrypt(_, _, Field(&CDP::is_secure, false))) + EXPECT_CALL(*cdm, Decrypt(_, _, Field(&CDP::is_secure, false))) .Times(2); - EXPECT_CALL(cdm, Decrypt(_, _, Field(&CDP::is_secure, true))) + EXPECT_CALL(*cdm, Decrypt(_, _, Field(&CDP::is_secure, true))) .Times(2); } - WVCryptoPlugin plugin(sessionId, kSessionIdSize, &cdm); + WVCryptoPlugin plugin(sessionId, kSessionIdSize, cdm.get()); AString errorDetailMessage; ssize_t res = plugin.decrypt(false, keyId, iv, CryptoPlugin::kMode_AES_CTR, @@ -318,7 +318,7 @@ TEST_F(WVCryptoPluginTest, CommunicatesSecureBufferRequest) { } TEST_F(WVCryptoPluginTest, SetsFlagsForMinimumSubsampleRuns) { - MockCDM cdm; + android::sp cdm = new MockCDM(); uint8_t keyId[KEY_ID_SIZE]; uint8_t iv[KEY_IV_SIZE]; @@ -348,7 +348,7 @@ TEST_F(WVCryptoPluginTest, SetsFlagsForMinimumSubsampleRuns) { mixedSubSamples[0].mNumBytesOfEncryptedData = 8; // Provide the expected behavior for IsOpenSession - EXPECT_CALL(cdm, IsOpenSession(_)) + EXPECT_CALL(*cdm, IsOpenSession(_)) .WillRepeatedly(Return(true)); // Specify the expected calls to Decrypt @@ -357,21 +357,21 @@ TEST_F(WVCryptoPluginTest, SetsFlagsForMinimumSubsampleRuns) { typedef CdmDecryptionParameters CDP; - EXPECT_CALL(cdm, Decrypt(_, _, Field(&CDP::subsample_flags, + EXPECT_CALL(*cdm, Decrypt(_, _, Field(&CDP::subsample_flags, OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample))) .Times(2); - EXPECT_CALL(cdm, Decrypt(_, _, Field(&CDP::subsample_flags, + EXPECT_CALL(*cdm, Decrypt(_, _, Field(&CDP::subsample_flags, OEMCrypto_FirstSubsample))) .Times(1); - EXPECT_CALL(cdm, Decrypt(_, _, Field(&CDP::subsample_flags, + EXPECT_CALL(*cdm, Decrypt(_, _, Field(&CDP::subsample_flags, OEMCrypto_LastSubsample))) .Times(1); } - WVCryptoPlugin plugin(sessionId, kSessionIdSize, &cdm); + WVCryptoPlugin plugin(sessionId, kSessionIdSize, cdm.get()); AString errorDetailMessage; ssize_t res = plugin.decrypt(false, keyId, iv, CryptoPlugin::kMode_AES_CTR, @@ -400,7 +400,7 @@ TEST_F(WVCryptoPluginTest, SetsFlagsForMinimumSubsampleRuns) { } TEST_F(WVCryptoPluginTest, AllowsSessionIdChanges) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); uint8_t keyId[KEY_ID_SIZE]; uint8_t iv[KEY_IV_SIZE]; @@ -429,24 +429,24 @@ TEST_F(WVCryptoPluginTest, AllowsSessionIdChanges) { sessionId2Vector.appendArray(sessionId2, kSessionIdSize); // Provide the expected behavior for IsOpenSession - EXPECT_CALL(cdm, IsOpenSession(_)) + EXPECT_CALL(*cdm, IsOpenSession(_)) .WillRepeatedly(Return(true)); // Specify the expected calls to Decrypt { InSequence calls; - EXPECT_CALL(cdm, + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId, kSessionIdSize), _, _)) .Times(2); - EXPECT_CALL(cdm, + EXPECT_CALL(*cdm, Decrypt(ElementsAreArray(sessionId2, kSessionIdSize), _, _)) .Times(2); } uint8_t blank[1]; // Some compilers will not accept 0. - WVCryptoPlugin plugin(blank, 0, &cdm); + WVCryptoPlugin plugin(blank, 0, cdm.get()); AString errorDetailMessage; ssize_t res; @@ -470,7 +470,7 @@ TEST_F(WVCryptoPluginTest, AllowsSessionIdChanges) { } TEST_F(WVCryptoPluginTest, DisallowsUnopenedSessionIdChanges) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); uint8_t blank[1]; // Some compilers will not accept 0. Vector sessionIdVector; @@ -480,15 +480,15 @@ TEST_F(WVCryptoPluginTest, DisallowsUnopenedSessionIdChanges) { { InSequence calls; - EXPECT_CALL(cdm, IsOpenSession(ElementsAreArray(blank, 0))) + EXPECT_CALL(*cdm, IsOpenSession(ElementsAreArray(blank, 0))) .WillOnce(Return(false)); - EXPECT_CALL(cdm, IsOpenSession(ElementsAreArray(sessionId, kSessionIdSize))) + EXPECT_CALL(*cdm, IsOpenSession(ElementsAreArray(sessionId, kSessionIdSize))) .WillOnce(Return(false)) .WillOnce(Return(true)); } - WVCryptoPlugin plugin(blank, 0, &cdm); + WVCryptoPlugin plugin(blank, 0, cdm.get()); ssize_t res; res = plugin.setMediaDrmSession(sessionIdVector); diff --git a/libwvdrmengine/mediadrm/test/WVDrmPlugin_test.cpp b/libwvdrmengine/mediadrm/test/WVDrmPlugin_test.cpp index 94d71d55..95a16192 100644 --- a/libwvdrmengine/mediadrm/test/WVDrmPlugin_test.cpp +++ b/libwvdrmengine/mediadrm/test/WVDrmPlugin_test.cpp @@ -184,21 +184,21 @@ class WVDrmPluginOriginTest : public WVDrmPluginTest, public WithParamInterface {}; TEST_F(WVDrmPluginTest, OpensSessions) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); sp > listener = new StrictMock(); @@ -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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); KeyedVector 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); Vector cert; Vector key; Vector 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); Vector cert; Vector key; Vector 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); Vector cert; Vector 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); String8 stringResult; Vector vectorResult; @@ -910,9 +910,9 @@ TEST_F(WVDrmPluginTest, DoesNotGetUnknownProperties) { } TEST_F(WVDrmPluginTest, DoesNotSetUnknownProperties) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); Vector keyId; Vector 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); sp > listener = new StrictMock(); @@ -1393,9 +1393,9 @@ TEST_F(WVDrmPluginTest, MarshalsEvents) { } TEST_F(WVDrmPluginTest, GeneratesProvisioningNeededEvent) { - StrictMock cdm; + android::sp> cdm = new StrictMock(); StrictMock crypto; - WVDrmPlugin plugin(&cdm, &crypto); + WVDrmPlugin plugin(cdm.get(), &crypto); sp > listener = new StrictMock(); @@ -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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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 cdm; + android::sp> cdm = new StrictMock(); StrictMock 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)); }