Merge "Remove ExpiryOnReleaseOfflineKeyTest" into oc-mr1-dev am: 4c69cf6245
am: 5f92786d31
Change-Id: Ic61622799037e2a69d4ba967ed6864bf9ecc76a2
This commit is contained in:
@@ -50,7 +50,7 @@ class CdmLicense {
|
|||||||
const CdmKeyResponse& license_response,
|
const CdmKeyResponse& license_response,
|
||||||
const CdmKeyResponse& license_renewal_response,
|
const CdmKeyResponse& license_renewal_response,
|
||||||
int64_t playback_start_time, int64_t last_playback_time,
|
int64_t playback_start_time, int64_t last_playback_time,
|
||||||
int64_t grace_period_end_time);
|
int64_t grace_period_end_time, CdmSession* cdm_session);
|
||||||
virtual bool RestoreLicenseForRelease(const CdmKeyMessage& license_request,
|
virtual bool RestoreLicenseForRelease(const CdmKeyMessage& license_request,
|
||||||
const CdmKeyResponse& license_response);
|
const CdmKeyResponse& license_response);
|
||||||
virtual bool HasInitData() { return stored_init_data_.get(); }
|
virtual bool HasInitData() { return stored_init_data_.get(); }
|
||||||
|
|||||||
@@ -240,7 +240,8 @@ CdmResponseType CdmSession::RestoreOfflineSession(
|
|||||||
} else {
|
} else {
|
||||||
if (!license_parser_->RestoreOfflineLicense(
|
if (!license_parser_->RestoreOfflineLicense(
|
||||||
key_request_, key_response_, offline_key_renewal_response_,
|
key_request_, key_response_, offline_key_renewal_response_,
|
||||||
playback_start_time, last_playback_time, grace_period_end_time)) {
|
playback_start_time, last_playback_time, grace_period_end_time,
|
||||||
|
this)) {
|
||||||
return RESTORE_OFFLINE_LICENSE_ERROR_2;
|
return RESTORE_OFFLINE_LICENSE_ERROR_2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -628,7 +628,8 @@ bool CdmLicense::RestoreOfflineLicense(
|
|||||||
const CdmKeyMessage& license_request,
|
const CdmKeyMessage& license_request,
|
||||||
const CdmKeyResponse& license_response,
|
const CdmKeyResponse& license_response,
|
||||||
const CdmKeyResponse& license_renewal_response, int64_t playback_start_time,
|
const CdmKeyResponse& license_renewal_response, int64_t playback_start_time,
|
||||||
int64_t last_playback_time, int64_t grace_period_end_time) {
|
int64_t last_playback_time, int64_t grace_period_end_time,
|
||||||
|
CdmSession* cdm_session) {
|
||||||
if (license_request.empty() || license_response.empty()) {
|
if (license_request.empty() || license_response.empty()) {
|
||||||
LOGE(
|
LOGE(
|
||||||
"CdmLicense::RestoreOfflineLicense: key_request or response empty: "
|
"CdmLicense::RestoreOfflineLicense: key_request or response empty: "
|
||||||
@@ -670,9 +671,15 @@ bool CdmLicense::RestoreOfflineLicense(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!provider_session_token_.empty()) {
|
if (!provider_session_token_.empty()) {
|
||||||
|
if (cdm_session) {
|
||||||
|
CdmResponseType status = cdm_session->UpdateUsageEntryInformation();
|
||||||
|
if (NO_ERROR != status) return false;
|
||||||
|
}
|
||||||
|
|
||||||
std::string usage_report;
|
std::string usage_report;
|
||||||
CryptoSession::UsageDurationStatus usage_duration_status =
|
CryptoSession::UsageDurationStatus usage_duration_status =
|
||||||
CryptoSession::kUsageDurationsInvalid;
|
CryptoSession::kUsageDurationsInvalid;
|
||||||
|
|
||||||
int64_t seconds_since_started, seconds_since_last_played;
|
int64_t seconds_since_started, seconds_since_last_played;
|
||||||
sts = crypto_session_->GenerateUsageReport(
|
sts = crypto_session_->GenerateUsageReport(
|
||||||
provider_session_token_, &usage_report, &usage_duration_status,
|
provider_session_token_, &usage_report, &usage_duration_status,
|
||||||
|
|||||||
@@ -2023,55 +2023,6 @@ TEST_F(WvCdmRequestLicenseTest,
|
|||||||
VerifyKeyRequestResponse(g_license_server, client_auth);
|
VerifyKeyRequestResponse(g_license_server, client_auth);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(WvCdmRequestLicenseTest, ExpiryOnReleaseOfflineKeyTest) {
|
|
||||||
Unprovision();
|
|
||||||
Provision(kLevelDefault);
|
|
||||||
|
|
||||||
// override default settings unless configured through the command line
|
|
||||||
std::string key_id;
|
|
||||||
std::string client_auth;
|
|
||||||
GetOfflineConfiguration(&key_id, &client_auth);
|
|
||||||
|
|
||||||
decryptor_.OpenSession(g_key_system, NULL, kDefaultCdmIdentifier, NULL,
|
|
||||||
&session_id_);
|
|
||||||
GenerateKeyRequest(key_id, kLicenseTypeOffline);
|
|
||||||
VerifyKeyRequestResponse(g_license_server, client_auth);
|
|
||||||
|
|
||||||
CdmKeySetId key_set_id = key_set_id_;
|
|
||||||
EXPECT_FALSE(key_set_id_.empty());
|
|
||||||
decryptor_.CloseSession(session_id_);
|
|
||||||
|
|
||||||
session_id_.clear();
|
|
||||||
key_set_id_.clear();
|
|
||||||
StrictMock<TestWvCdmEventListener> listener;
|
|
||||||
decryptor_.OpenSession(g_key_system, NULL, kDefaultCdmIdentifier, &listener,
|
|
||||||
&session_id_);
|
|
||||||
CdmSessionId restore_session_id = session_id_;
|
|
||||||
EXPECT_CALL(
|
|
||||||
listener,
|
|
||||||
OnSessionKeysChange(
|
|
||||||
restore_session_id,
|
|
||||||
AllOf(Each(Pair(_, kKeyStatusUsable)), Not(IsEmpty())), true));
|
|
||||||
EXPECT_CALL(listener, OnExpirationUpdate(restore_session_id, _));
|
|
||||||
EXPECT_EQ(wvcdm::KEY_ADDED,
|
|
||||||
decryptor_.RestoreKey(restore_session_id, key_set_id));
|
|
||||||
|
|
||||||
session_id_.clear();
|
|
||||||
key_set_id_.clear();
|
|
||||||
// Maybe called since VerifyKeyRequestResponse could take some time.
|
|
||||||
EXPECT_CALL(listener, OnSessionRenewalNeeded(restore_session_id))
|
|
||||||
.Times(AtLeast(0));
|
|
||||||
EXPECT_CALL(
|
|
||||||
listener,
|
|
||||||
OnSessionKeysChange(
|
|
||||||
restore_session_id,
|
|
||||||
AllOf(Each(Pair(_, kKeyStatusExpired)), Not(IsEmpty())), false));
|
|
||||||
GenerateKeyRelease(key_set_id);
|
|
||||||
key_set_id_ = key_set_id;
|
|
||||||
VerifyKeyRequestResponse(g_license_server, client_auth);
|
|
||||||
decryptor_.CloseSession(restore_session_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
// This test verifies that repeated generation of the key release message
|
// This test verifies that repeated generation of the key release message
|
||||||
// for the same key_set_id results in the previous session being
|
// for the same key_set_id results in the previous session being
|
||||||
// deallocated (rather than leaked) and a new one allocated.
|
// deallocated (rather than leaked) and a new one allocated.
|
||||||
|
|||||||
Reference in New Issue
Block a user