Report key status change
Also modified PolicyEngine::CanDecrypt to use the new Keys_status_. Bug: 19771431 Merged from Widevine CDM repo: https://widevine-internal-review.googlesource.com/#/c/13904/ Change-Id: If7fb7fa45ecf9ff4e65278cda00ad7230b57f50b
This commit is contained in:
@@ -23,6 +23,12 @@
|
||||
#include "wv_cdm_event_listener.h"
|
||||
#include "wv_content_decryption_module.h"
|
||||
|
||||
using ::testing::_;
|
||||
using ::testing::AtLeast;
|
||||
using ::testing::Each;
|
||||
using ::testing::Field;
|
||||
using ::testing::StrictMock;
|
||||
|
||||
namespace {
|
||||
const char kPathDelimiter = '/';
|
||||
|
||||
@@ -444,6 +450,10 @@ class TestWvCdmEventListener : public WvCdmEventListener {
|
||||
|
||||
MOCK_METHOD1(OnSessionRenewalNeeded, void(const CdmSessionId& session_id));
|
||||
MOCK_METHOD1(OnSessionExpiration, void(const CdmSessionId& session_id));
|
||||
MOCK_METHOD3(OnSessionKeysChange,
|
||||
void(const CdmSessionId& session_id,
|
||||
const std::vector<CdmKeyInformation>& cdm_keys_info,
|
||||
bool has_new_usable_key));
|
||||
MOCK_METHOD2(OnExpirationUpdate,
|
||||
void(const CdmSessionId& session_id, int64_t new_expiry_time));
|
||||
};
|
||||
@@ -1156,10 +1166,15 @@ TEST_F(WvCdmRequestLicenseTest, ExpiryOnReleaseOfflineKeyTest) {
|
||||
|
||||
session_id_.clear();
|
||||
key_set_id_.clear();
|
||||
::testing::StrictMock<TestWvCdmEventListener> listener;
|
||||
StrictMock<TestWvCdmEventListener> listener;
|
||||
decryptor_.OpenSession(g_key_system, NULL, &listener, &session_id_);
|
||||
CdmSessionId restore_session_id = session_id_;
|
||||
EXPECT_CALL(listener, OnExpirationUpdate(restore_session_id, ::testing::_));
|
||||
EXPECT_CALL(listener,
|
||||
OnSessionKeysChange(restore_session_id,
|
||||
Each(Field(&CdmKeyInformation::key_status,
|
||||
kKeyStatusUsable)),
|
||||
true));
|
||||
EXPECT_CALL(listener, OnExpirationUpdate(restore_session_id, _));
|
||||
EXPECT_EQ(wvcdm::KEY_ADDED,
|
||||
decryptor_.RestoreKey(restore_session_id, key_set_id));
|
||||
|
||||
@@ -1167,7 +1182,12 @@ TEST_F(WvCdmRequestLicenseTest, ExpiryOnReleaseOfflineKeyTest) {
|
||||
key_set_id_.clear();
|
||||
// Maybe called since VerifyKeyRequestResponse could take some time.
|
||||
EXPECT_CALL(listener, OnSessionRenewalNeeded(restore_session_id))
|
||||
.Times(::testing::AtLeast(0));
|
||||
.Times(AtLeast(0));
|
||||
EXPECT_CALL(listener,
|
||||
OnSessionKeysChange(restore_session_id,
|
||||
Each(Field(&CdmKeyInformation::key_status,
|
||||
kKeyStatusExpired)),
|
||||
false));
|
||||
EXPECT_CALL(listener, OnSessionExpiration(restore_session_id));
|
||||
GenerateKeyRelease(key_set_id);
|
||||
key_set_id_ = key_set_id;
|
||||
|
||||
Reference in New Issue
Block a user