Return error codes when storing or retrieving licenses
[ Merge of http://go/wvgerrit/70386 ] This allows error codes from device files to be added as sub-errors when errors such as GET_LICENSE_ERROR are encountered. Bug: 112357085 Bug: 115382201 Test: WV unit/integration tests Change-Id: I505a87086ce584efc7e482984c0f132ac5329e16
This commit is contained in:
@@ -2295,6 +2295,7 @@ TEST_P(DeviceFilesStoreTest, StoreLicense) {
|
||||
.WillOnce(ReturnArg<1>());
|
||||
EXPECT_CALL(*file, Read(_, _)).Times(0);
|
||||
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
DeviceFiles device_files(&file_system);
|
||||
EXPECT_TRUE(device_files.Init(kSecurityLevelL1));
|
||||
EXPECT_TRUE(device_files.StoreLicense(
|
||||
@@ -2310,7 +2311,8 @@ TEST_P(DeviceFilesStoreTest, StoreLicense) {
|
||||
license_test_data[license_num].last_playback_time,
|
||||
license_test_data[license_num].grace_period_end_time, app_parameters,
|
||||
license_test_data[license_num].usage_entry,
|
||||
license_test_data[license_num].usage_entry_number));
|
||||
license_test_data[license_num].usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(StoreLicense, DeviceFilesStoreTest, ::testing::Bool());
|
||||
@@ -2344,6 +2346,7 @@ TEST_F(DeviceFilesTest, StoreLicenses) {
|
||||
EXPECT_CALL(*file, Read(_, _)).Times(0);
|
||||
}
|
||||
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
DeviceFiles device_files(&file_system);
|
||||
EXPECT_TRUE(device_files.Init(kSecurityLevelL1));
|
||||
for (size_t i = 0; i < kNumberOfLicenses; i++) {
|
||||
@@ -2361,7 +2364,8 @@ TEST_F(DeviceFilesTest, StoreLicenses) {
|
||||
license_test_data[i].last_playback_time,
|
||||
license_test_data[i].grace_period_end_time, app_parameters,
|
||||
license_test_data[i].usage_entry,
|
||||
license_test_data[i].usage_entry_number));
|
||||
license_test_data[i].usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2405,6 +2409,7 @@ TEST_F(DeviceFilesTest, RetrieveLicenses) {
|
||||
CdmAppParameterMap app_parameters;
|
||||
std::string usage_entry;
|
||||
uint32_t usage_entry_number;
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
|
||||
for (size_t i = 0; i < kNumberOfLicenses; i++) {
|
||||
DeviceFiles::LicenseState license_state;
|
||||
@@ -2413,7 +2418,7 @@ TEST_F(DeviceFilesTest, RetrieveLicenses) {
|
||||
&key_request, &key_response, &key_renewal_request,
|
||||
&key_renewal_response, &release_server_url, &playback_start_time,
|
||||
&last_playback_time, &grace_period_end_time, &app_parameters,
|
||||
&usage_entry, &usage_entry_number));
|
||||
&usage_entry, &usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(license_test_data[i].license_state, license_state);
|
||||
EXPECT_EQ(license_test_data[i].pssh_data, pssh_data);
|
||||
EXPECT_EQ(license_test_data[i].key_request, key_request);
|
||||
@@ -2426,6 +2431,7 @@ TEST_F(DeviceFilesTest, RetrieveLicenses) {
|
||||
grace_period_end_time);
|
||||
EXPECT_EQ(license_test_data[i].usage_entry, usage_entry);
|
||||
EXPECT_EQ(license_test_data[i].usage_entry_number, usage_entry_number);
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
std::map<std::string, std::string>::iterator itr;
|
||||
for (itr = app_parameters.begin(); itr != app_parameters.end(); ++itr) {
|
||||
@@ -2475,13 +2481,14 @@ TEST_F(DeviceFilesTest, AppParametersBackwardCompatibility) {
|
||||
CdmAppParameterMap app_parameters;
|
||||
std::string usage_entry;
|
||||
uint32_t usage_entry_number;
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
|
||||
EXPECT_TRUE(device_files.RetrieveLicense(
|
||||
test_data->key_set_id, &license_state, &pssh_data, &key_request,
|
||||
&key_response, &key_renewal_request, &key_renewal_response,
|
||||
&release_server_url, &playback_start_time, &last_playback_time,
|
||||
&grace_period_end_time, &app_parameters, &usage_entry,
|
||||
&usage_entry_number));
|
||||
&usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(test_data->license_state, license_state);
|
||||
EXPECT_EQ(test_data->pssh_data, pssh_data);
|
||||
EXPECT_EQ(test_data->key_request, key_request);
|
||||
@@ -2494,6 +2501,7 @@ TEST_F(DeviceFilesTest, AppParametersBackwardCompatibility) {
|
||||
EXPECT_EQ(0u, app_parameters.size());
|
||||
EXPECT_EQ(test_data->usage_entry, usage_entry);
|
||||
EXPECT_EQ(test_data->usage_entry_number, usage_entry_number);
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
}
|
||||
|
||||
TEST_F(DeviceFilesTest, UpdateLicenseState) {
|
||||
@@ -2515,6 +2523,7 @@ TEST_F(DeviceFilesTest, UpdateLicenseState) {
|
||||
Eq(license_update_test_data[i].file_data.size())))
|
||||
.WillOnce(ReturnArg<1>());
|
||||
EXPECT_CALL(*file, Read(_, _)).Times(0);
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
EXPECT_TRUE(device_files.StoreLicense(
|
||||
license_update_test_data[0].key_set_id,
|
||||
license_update_test_data[i].license_state,
|
||||
@@ -2529,7 +2538,8 @@ TEST_F(DeviceFilesTest, UpdateLicenseState) {
|
||||
license_update_test_data[0].grace_period_end_time,
|
||||
GetAppParameters(license_test_data[0].app_parameters),
|
||||
license_update_test_data[0].usage_entry,
|
||||
license_update_test_data[0].usage_entry_number));
|
||||
license_update_test_data[0].usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2572,13 +2582,14 @@ TEST_F(DeviceFilesTest, DeleteLicense) {
|
||||
CdmAppParameterMap app_parameters;
|
||||
std::string usage_entry;
|
||||
uint32_t usage_entry_number;
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
|
||||
EXPECT_TRUE(device_files.RetrieveLicense(
|
||||
license_test_data[0].key_set_id, &license_state, &pssh_data, &key_request,
|
||||
&key_response, &key_renewal_request, &key_renewal_response,
|
||||
&release_server_url, &playback_start_time, &last_playback_time,
|
||||
&grace_period_end_time, &app_parameters, &usage_entry,
|
||||
&usage_entry_number));
|
||||
&usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(license_test_data[0].license_state, license_state);
|
||||
EXPECT_EQ(license_test_data[0].pssh_data, pssh_data);
|
||||
EXPECT_EQ(license_test_data[0].key_request, key_request);
|
||||
@@ -2597,6 +2608,7 @@ TEST_F(DeviceFilesTest, DeleteLicense) {
|
||||
}
|
||||
EXPECT_EQ(license_test_data[0].usage_entry, usage_entry);
|
||||
EXPECT_EQ(license_test_data[0].usage_entry_number, usage_entry_number);
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
EXPECT_TRUE(device_files.DeleteLicense(license_test_data[0].key_set_id));
|
||||
EXPECT_FALSE(device_files.LicenseExists(license_test_data[0].key_set_id));
|
||||
|
||||
@@ -1361,6 +1361,7 @@ TEST_F(UsageTableHeaderTest,
|
||||
uint32_t usage_entry_number_to_be_deleted =
|
||||
usage_entry_info_vector.size() - 3; // kUsageEntryInfoOfflineLicense1
|
||||
metrics::CryptoMetrics metrics;
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
|
||||
EXPECT_TRUE(device_files_->StoreLicense(
|
||||
usage_entry_info_vector[usage_entry_info_vector.size() - 1].key_set_id,
|
||||
@@ -1368,7 +1369,8 @@ TEST_F(UsageTableHeaderTest,
|
||||
kKeyRenewalRequest, kKeyRenewalResponse, kReleaseServerUrl,
|
||||
kPlaybackStartTime, kPlaybackStartTime + kPlaybackDuration,
|
||||
kGracePeriodEndTime, kEmptyAppParameters, kUsageEntry,
|
||||
usage_entry_info_vector.size() - 2));
|
||||
usage_entry_info_vector.size() - 2, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
EXPECT_TRUE(device_files_->StoreLicense(
|
||||
usage_entry_info_vector[usage_entry_info_vector.size() - 2].key_set_id,
|
||||
@@ -1376,7 +1378,8 @@ TEST_F(UsageTableHeaderTest,
|
||||
kKeyRenewalRequest, kKeyRenewalResponse, kReleaseServerUrl,
|
||||
kPlaybackStartTime, kPlaybackStartTime + kPlaybackDuration,
|
||||
kGracePeriodEndTime, kEmptyAppParameters, kUsageEntry,
|
||||
usage_entry_info_vector.size() - 3));
|
||||
usage_entry_info_vector.size() - 3, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
EXPECT_CALL(*crypto_session_, Open(kLevelDefault)).WillOnce(Return(NO_ERROR));
|
||||
EXPECT_CALL(
|
||||
@@ -1567,13 +1570,15 @@ TEST_F(UsageTableHeaderTest,
|
||||
usage_entry_info_vector.size() - 1; // kUsageEntryInfoOfflineLicense3
|
||||
metrics::CryptoMetrics metrics;
|
||||
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
EXPECT_TRUE(device_files_->StoreLicense(
|
||||
usage_entry_info_vector[last_usage_entry_number].key_set_id,
|
||||
kActiveLicenseState, kPsshData, kKeyRequest, kKeyResponse,
|
||||
kKeyRenewalRequest, kKeyRenewalResponse, kReleaseServerUrl,
|
||||
kPlaybackStartTime, kPlaybackStartTime + kPlaybackDuration,
|
||||
kGracePeriodEndTime, kEmptyAppParameters, kUsageEntry,
|
||||
last_usage_entry_number));
|
||||
last_usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
EXPECT_CALL(*crypto_session_, Open(kLevelDefault)).WillOnce(Return(NO_ERROR));
|
||||
EXPECT_CALL(*crypto_session_,
|
||||
@@ -1713,13 +1718,15 @@ TEST_F(UsageTableHeaderTest,
|
||||
usage_entry_info_vector.size() - 3; // kUsageEntryInfoOfflineLicense3
|
||||
metrics::CryptoMetrics metrics;
|
||||
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
EXPECT_TRUE(device_files_->StoreLicense(
|
||||
usage_entry_info_vector[last_valid_usage_entry_number].key_set_id,
|
||||
kActiveLicenseState, kPsshData, kKeyRequest, kKeyResponse,
|
||||
kKeyRenewalRequest, kKeyRenewalResponse, kReleaseServerUrl,
|
||||
kPlaybackStartTime, kPlaybackStartTime + kPlaybackDuration,
|
||||
kGracePeriodEndTime, kEmptyAppParameters, kUsageEntry,
|
||||
last_valid_usage_entry_number));
|
||||
last_valid_usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
EXPECT_CALL(*crypto_session_, Open(kLevelDefault))
|
||||
.Times(2)
|
||||
@@ -1869,13 +1876,15 @@ TEST_F(UsageTableHeaderTest, DeleteEntry_LastEntryIsOffline) {
|
||||
usage_entry_info_vector.size() - 1; // kUsageEntryInfoOfflineLicense3
|
||||
metrics::CryptoMetrics metrics;
|
||||
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
EXPECT_TRUE(device_files_->StoreLicense(
|
||||
usage_entry_info_vector[last_usage_entry_number].key_set_id,
|
||||
kActiveLicenseState, kPsshData, kKeyRequest, kKeyResponse,
|
||||
kKeyRenewalRequest, kKeyRenewalResponse, kReleaseServerUrl,
|
||||
kPlaybackStartTime, kPlaybackStartTime + kPlaybackDuration,
|
||||
kGracePeriodEndTime, kEmptyAppParameters, kUsageEntry,
|
||||
last_usage_entry_number));
|
||||
last_usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
EXPECT_CALL(*crypto_session_, Open(kLevelDefault))
|
||||
.Times(2)
|
||||
@@ -1936,7 +1945,7 @@ TEST_F(UsageTableHeaderTest, DeleteEntry_LastEntryIsOffline) {
|
||||
&key_request, &key_response, &key_renewal_request, &key_renewal_response,
|
||||
&release_server_url, &playback_start_time, &last_playback_time,
|
||||
&grace_period_end_time, &app_parameters, &usage_entry,
|
||||
&usage_entry_number));
|
||||
&usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(kActiveLicenseState, license_state);
|
||||
EXPECT_EQ(kPsshData, pssh_data);
|
||||
EXPECT_EQ(kKeyRequest, key_request);
|
||||
@@ -1950,6 +1959,7 @@ TEST_F(UsageTableHeaderTest, DeleteEntry_LastEntryIsOffline) {
|
||||
EXPECT_EQ(kEmptyAppParameters.size(), app_parameters.size());
|
||||
EXPECT_EQ(kAnotherUsageEntry, usage_entry);
|
||||
EXPECT_EQ(usage_entry_number_to_be_deleted, usage_entry_number);
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
}
|
||||
|
||||
// Initial Test state:
|
||||
@@ -2089,13 +2099,15 @@ TEST_F(UsageTableHeaderTest, DeleteEntry_LastEntriesAreOfflineAndUnknknown) {
|
||||
usage_entry_info_vector.size() - 3; // kUsageEntryInfoOfflineLicense3
|
||||
metrics::CryptoMetrics metrics;
|
||||
|
||||
DeviceFiles::ResponseType sub_error_code;
|
||||
EXPECT_TRUE(device_files_->StoreLicense(
|
||||
usage_entry_info_vector[last_valid_usage_entry_number].key_set_id,
|
||||
kActiveLicenseState, kPsshData, kKeyRequest, kKeyResponse,
|
||||
kKeyRenewalRequest, kKeyRenewalResponse, kReleaseServerUrl,
|
||||
kPlaybackStartTime, kPlaybackStartTime + kPlaybackDuration,
|
||||
kGracePeriodEndTime, kEmptyAppParameters, kUsageEntry,
|
||||
last_valid_usage_entry_number));
|
||||
last_valid_usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
|
||||
EXPECT_CALL(*crypto_session_, Open(kLevelDefault))
|
||||
.Times(2)
|
||||
@@ -2157,7 +2169,7 @@ TEST_F(UsageTableHeaderTest, DeleteEntry_LastEntriesAreOfflineAndUnknknown) {
|
||||
&key_request, &key_response, &key_renewal_request, &key_renewal_response,
|
||||
&release_server_url, &playback_start_time, &last_playback_time,
|
||||
&grace_period_end_time, &app_parameters, &usage_entry,
|
||||
&usage_entry_number));
|
||||
&usage_entry_number, &sub_error_code));
|
||||
EXPECT_EQ(kActiveLicenseState, license_state);
|
||||
EXPECT_EQ(kPsshData, pssh_data);
|
||||
EXPECT_EQ(kKeyRequest, key_request);
|
||||
@@ -2171,6 +2183,7 @@ TEST_F(UsageTableHeaderTest, DeleteEntry_LastEntriesAreOfflineAndUnknknown) {
|
||||
EXPECT_EQ(kEmptyAppParameters.size(), app_parameters.size());
|
||||
EXPECT_EQ(kAnotherUsageEntry, usage_entry);
|
||||
EXPECT_EQ(usage_entry_number_to_be_deleted, usage_entry_number);
|
||||
EXPECT_EQ(DeviceFiles::kNoError, sub_error_code);
|
||||
}
|
||||
|
||||
// Initial Test state:
|
||||
|
||||
Reference in New Issue
Block a user