diff --git a/libwvdrmengine/cdm/core/test/duration_use_case_test.cpp b/libwvdrmengine/cdm/core/test/duration_use_case_test.cpp index eb19cfe3..1f1df36b 100644 --- a/libwvdrmengine/cdm/core/test/duration_use_case_test.cpp +++ b/libwvdrmengine/cdm/core/test/duration_use_case_test.cpp @@ -1557,6 +1557,7 @@ TEST_P(CdmUseCase_RenewOnLicenseLoad, Case1S) { SleepUntil(start_of_playback_); LoadLicense(); SleepUntilRenewalNeeded(); + RequestRenewal(kRenewOnLicenseLoad); const uint64_t start = 15; // time of first decrypt const uint64_t load_renewal = 20; const uint64_t stop = 45; @@ -1569,6 +1570,7 @@ TEST_P(CdmUseCase_RenewOnLicenseLoad, Case1M) { SleepUntil(start_of_playback_); LoadLicense(); SleepUntilRenewalNeeded(); + RequestRenewal(kRenewOnLicenseLoad); const uint64_t start = 20; // time of first decrypt const uint64_t load_renewal = 20; const uint64_t stop = 45; // end of decrypt @@ -1591,8 +1593,9 @@ TEST_P(CdmUseCase_RenewOnLicenseLoad, Case1L) { // License loaded after rental duration window and playback should fail. TEST_P(CdmUseCase_RenewOnLicenseLoad, Case2) { - start_of_playback_ = EndOfRentalWindow() + 1; - ForbidPlayback(start_of_playback_); + start_of_playback_ = EndOfRentalWindow() + kFudge; + SleepUntil(start_of_playback_); + license_holder_.FailLoadLicense(); } // License loaded within rental duration window but renewal not received. @@ -1637,6 +1640,7 @@ TEST_P(CdmUseCase_RenewOnLicenseLoad, Case4) { SleepUntil(start_of_playback_); LoadLicense(); SleepUntilRenewalNeeded(); + RequestRenewal(kRenewOnLicenseLoad); const uint64_t start = 20; // time of first decrypt const uint64_t load_renewal = 20; const uint64_t stop = 45; // end of decrypt diff --git a/libwvdrmengine/cdm/core/test/license_holder.cpp b/libwvdrmengine/cdm/core/test/license_holder.cpp index d37b8e96..317dfdd6 100644 --- a/libwvdrmengine/cdm/core/test/license_holder.cpp +++ b/libwvdrmengine/cdm/core/test/license_holder.cpp @@ -55,6 +55,13 @@ void LicenseHolder::LoadLicense() { } } +void LicenseHolder::FailLoadLicense() { + CdmLicenseType license_type; + ASSERT_NE(KEY_ADDED, cdm_engine_->AddKey(session_id_, key_response_, + &license_type, &key_set_id_)) + << "Unexpected success loading license for " << content_id(); +} + void LicenseHolder::ReloadLicense() { CdmResponseType status = cdm_engine_->RestoreKey(session_id_, key_set_id_); ASSERT_EQ(KEY_ADDED, status) diff --git a/libwvdrmengine/cdm/core/test/license_holder.h b/libwvdrmengine/cdm/core/test/license_holder.h index 3e317f21..914e8d22 100644 --- a/libwvdrmengine/cdm/core/test/license_holder.h +++ b/libwvdrmengine/cdm/core/test/license_holder.h @@ -59,6 +59,9 @@ class LicenseHolder { // Load the license response into the CDM engine. A call to FetchLicense() // must be made first. void LoadLicense(); + // Attempt to load the license response into the CDM engine, but expect a + // failure. + void FailLoadLicense(); // Reload the license. Call OpenSession() before calling // ReloadLicense(). Also, the key_set_id must have been set previously. The // key_set_id is set by calling LoadLicense(), or by calling set_key_set_id().