Merge "Avoid Nonce Flood in core/test/cdm_engine_test.cpp"

This commit is contained in:
Fred Gylys-Colwell
2017-03-02 03:46:57 +00:00
committed by Android (Google) Code Review

View File

@@ -80,9 +80,18 @@ class WvCdmEngineTest : public testing::Test {
CdmCertificateType cert_type = kCertificateWidevine; CdmCertificateType cert_type = kCertificateWidevine;
std::string cert_authority; std::string cert_authority;
std::string cert, wrapped_key; std::string cert, wrapped_key;
ASSERT_EQ(NO_ERROR, cdm_engine_.GetProvisioningRequest( CdmResponseType result = NO_ERROR;
cert_type, cert_authority, &prov_request, for (int i = 0; i < 2; i++) { // Retry once if there is a nonce problem.
&provisioning_server_url)); result = cdm_engine_.GetProvisioningRequest(
cert_type, cert_authority, &prov_request, &provisioning_server_url);
if (result == LICENSE_REQUEST_NONCE_GENERATION_ERROR) {
LOGW("Woops. Nonce problem. Try again?");
sleep(1);
} else {
break;
}
}
ASSERT_EQ(NO_ERROR, result);
UrlRequest url_request(provisioning_server_url); UrlRequest url_request(provisioning_server_url);
EXPECT_TRUE(url_request.is_connected()); EXPECT_TRUE(url_request.is_connected());
url_request.PostCertRequestInQueryString(prov_request); url_request.PostCertRequestInQueryString(prov_request);
@@ -102,10 +111,20 @@ class WvCdmEngineTest : public testing::Test {
CdmKeyRequest key_request; CdmKeyRequest key_request;
EXPECT_EQ(KEY_MESSAGE, cdm_engine_.GenerateKeyRequest( CdmResponseType result = NO_ERROR;
session_id_, key_set_id, init_data, for(int i=0; i < 2; i++) { // Retry once if there is a nonce problem.
kLicenseTypeStreaming, app_parameters, result = cdm_engine_.GenerateKeyRequest(
&key_request)); session_id_, key_set_id, init_data,
kLicenseTypeStreaming, app_parameters,
&key_request);
if (result == LICENSE_REQUEST_NONCE_GENERATION_ERROR) {
LOGW("Woops. Nonce problem. Try again?");
sleep(1);
} else {
break;
}
}
EXPECT_EQ(KEY_MESSAGE, result);
key_msg_ = key_request.message; key_msg_ = key_request.message;
EXPECT_EQ(kKeyRequestTypeInitial, key_request.type); EXPECT_EQ(kKeyRequestTypeInitial, key_request.type);
@@ -113,8 +132,17 @@ class WvCdmEngineTest : public testing::Test {
void GenerateRenewalRequest() { void GenerateRenewalRequest() {
CdmKeyRequest request; CdmKeyRequest request;
EXPECT_EQ(KEY_MESSAGE, CdmResponseType result = NO_ERROR;
cdm_engine_.GenerateRenewalRequest(session_id_, &request)); for (int i = 0; i < 2; i++) { // Retry once if there is a nonce problem.
result = cdm_engine_.GenerateRenewalRequest(session_id_, &request);
if (result == LICENSE_REQUEST_NONCE_GENERATION_ERROR) {
LOGW("Woops. Nonce problem. Try again?");
sleep(1);
} else {
break;
}
}
EXPECT_EQ(KEY_MESSAGE, result);
key_msg_ = request.message; key_msg_ = request.message;
server_url_ = request.url; server_url_ = request.url;