Fix GetResponse() return type usage and log response data if error occurs.
The return type of GetResponse() has been changed from int to bool a while back. Fix the return type in unit tests that were still expecting int as the return type. Also log the response message if there is an error in the http response. Merged from go/wvgerrit/13783. bug: 19822500 Change-Id: Ie52df0e19744a847690b788680f59915b0b6b534
This commit is contained in:
@@ -4,16 +4,17 @@
|
||||
#include <getopt.h>
|
||||
#include <sstream>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "config_test_env.h"
|
||||
#include "device_files.h"
|
||||
#include "file_store.h"
|
||||
#include "license_request.h"
|
||||
#include "license_protocol.pb.h"
|
||||
#include "license_request.h"
|
||||
#include "log.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "OEMCryptoCENC.h"
|
||||
#include "oemcrypto_adapter.h"
|
||||
#include "OEMCryptoCENC.h"
|
||||
#include "properties.h"
|
||||
#include "string_conversions.h"
|
||||
#include "url_request.h"
|
||||
@@ -303,23 +304,30 @@ class WvCdmExtendedDurationTest : public testing::Test {
|
||||
&server_url));
|
||||
}
|
||||
|
||||
void LogResponseError(const std::string& message, int http_status_code) {
|
||||
LOGD("HTTP Status code = %d", http_status_code);
|
||||
LOGD("HTTP response(%d): %s", message.size(), b2a_hex(message).c_str());
|
||||
}
|
||||
|
||||
// Post a request and extract the drm message from the response
|
||||
std::string GetKeyRequestResponse(const std::string& server_url,
|
||||
const std::string& client_auth) {
|
||||
// Use secure connection and chunk transfer coding.
|
||||
UrlRequest url_request(server_url + client_auth);
|
||||
if (!url_request.is_connected()) {
|
||||
return "";
|
||||
}
|
||||
EXPECT_TRUE(url_request.is_connected()) << "Fail to connect to "
|
||||
<< server_url << client_auth;
|
||||
url_request.PostRequest(key_msg_);
|
||||
std::string message;
|
||||
int resp_bytes = url_request.GetResponse(&message);
|
||||
EXPECT_TRUE(url_request.GetResponse(&message));
|
||||
|
||||
int status_code = url_request.GetStatusCode(message);
|
||||
EXPECT_EQ(kHttpOk, status_code);
|
||||
int http_status_code = url_request.GetStatusCode(message);
|
||||
if (kHttpOk != http_status_code) {
|
||||
LogResponseError(message, http_status_code);
|
||||
}
|
||||
EXPECT_EQ(kHttpOk, http_status_code);
|
||||
|
||||
std::string drm_msg;
|
||||
if (kHttpOk == status_code) {
|
||||
if (kHttpOk == http_status_code) {
|
||||
LicenseRequest lic_request;
|
||||
lic_request.GetDrmMessage(message, drm_msg);
|
||||
LOGV("HTTP response body: (%u bytes)", drm_msg.size());
|
||||
@@ -333,17 +341,17 @@ class WvCdmExtendedDurationTest : public testing::Test {
|
||||
std::string GetCertRequestResponse(const std::string& server_url) {
|
||||
// Use secure connection and chunk transfer coding.
|
||||
UrlRequest url_request(server_url);
|
||||
if (!url_request.is_connected()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
EXPECT_TRUE(url_request.is_connected()) << "Fail to connect to "
|
||||
<< server_url;
|
||||
url_request.PostCertRequestInQueryString(key_msg_);
|
||||
std::string message;
|
||||
int resp_bytes = url_request.GetResponse(&message);
|
||||
LOGD("end %d bytes response dump", resp_bytes);
|
||||
EXPECT_TRUE(url_request.GetResponse(&message));
|
||||
|
||||
int status_code = url_request.GetStatusCode(message);
|
||||
EXPECT_EQ(kHttpOk, status_code);
|
||||
int http_status_code = url_request.GetStatusCode(message);
|
||||
if (kHttpOk != http_status_code) {
|
||||
LogResponseError(message, http_status_code);
|
||||
}
|
||||
EXPECT_EQ(kHttpOk, http_status_code);
|
||||
return message;
|
||||
}
|
||||
|
||||
@@ -354,18 +362,20 @@ class WvCdmExtendedDurationTest : public testing::Test {
|
||||
const std::string& usage_info_request) {
|
||||
// Use secure connection and chunk transfer coding.
|
||||
UrlRequest url_request(server_url + client_auth);
|
||||
if (!url_request.is_connected()) {
|
||||
return "";
|
||||
}
|
||||
EXPECT_TRUE(url_request.is_connected()) << "Fail to connect to "
|
||||
<< server_url << client_auth;
|
||||
url_request.PostRequest(usage_info_request);
|
||||
std::string message;
|
||||
int resp_bytes = url_request.GetResponse(&message);
|
||||
EXPECT_TRUE(url_request.GetResponse(&message));
|
||||
|
||||
int status_code = url_request.GetStatusCode(message);
|
||||
EXPECT_EQ(kHttpOk, status_code);
|
||||
int http_status_code = url_request.GetStatusCode(message);
|
||||
if (kHttpOk != http_status_code) {
|
||||
LogResponseError(message, http_status_code);
|
||||
}
|
||||
EXPECT_EQ(kHttpOk, http_status_code);
|
||||
|
||||
std::string usage_info;
|
||||
if (kHttpOk == status_code) {
|
||||
if (kHttpOk == http_status_code) {
|
||||
LicenseRequest license;
|
||||
license.GetDrmMessage(message, usage_info);
|
||||
LOGV("HTTP response body: (%u bytes)", usage_info.size());
|
||||
|
||||
@@ -4,18 +4,19 @@
|
||||
#include <getopt.h>
|
||||
#include <sstream>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "config_test_env.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "device_files.h"
|
||||
#include "file_store.h"
|
||||
#include "license_request.h"
|
||||
#include "log.h"
|
||||
#include "OEMCryptoCENC.h"
|
||||
#include "oemcrypto_adapter.h"
|
||||
#include "OEMCryptoCENC.h"
|
||||
#include "properties.h"
|
||||
#include "string_conversions.h"
|
||||
#include "url_request.h"
|
||||
#include "test_printers.h"
|
||||
#include "url_request.h"
|
||||
#include "wv_cdm_constants.h"
|
||||
#include "wv_cdm_event_listener.h"
|
||||
#include "wv_content_decryption_module.h"
|
||||
@@ -526,23 +527,30 @@ class WvCdmRequestLicenseTest : public testing::Test {
|
||||
&server_url));
|
||||
}
|
||||
|
||||
void LogResponseError(const std::string& message, int http_status_code) {
|
||||
LOGD("HTTP Status code = %d", http_status_code);
|
||||
LOGD("HTTP response(%d): %s", message.size(), b2a_hex(message).c_str());
|
||||
}
|
||||
|
||||
// Post a request and extract the drm message from the response
|
||||
std::string GetKeyRequestResponse(const std::string& server_url,
|
||||
const std::string& client_auth) {
|
||||
// Use secure connection and chunk transfer coding.
|
||||
UrlRequest url_request(server_url + client_auth);
|
||||
if (!url_request.is_connected()) {
|
||||
return "";
|
||||
}
|
||||
EXPECT_TRUE(url_request.is_connected()) << "Fail to connect to "
|
||||
<< server_url << client_auth;
|
||||
url_request.PostRequest(key_msg_);
|
||||
std::string message;
|
||||
int resp_bytes = url_request.GetResponse(&message);
|
||||
EXPECT_TRUE(url_request.GetResponse(&message));
|
||||
|
||||
int status_code = url_request.GetStatusCode(message);
|
||||
EXPECT_EQ(kHttpOk, status_code);
|
||||
int http_status_code = url_request.GetStatusCode(message);
|
||||
if (kHttpOk != http_status_code) {
|
||||
LogResponseError(message, http_status_code);
|
||||
}
|
||||
EXPECT_EQ(kHttpOk, http_status_code);
|
||||
|
||||
std::string drm_msg;
|
||||
if (kHttpOk == status_code) {
|
||||
if (kHttpOk == http_status_code) {
|
||||
LicenseRequest lic_request;
|
||||
lic_request.GetDrmMessage(message, drm_msg);
|
||||
LOGV("HTTP response body: (%u bytes)", drm_msg.size());
|
||||
@@ -555,17 +563,17 @@ class WvCdmRequestLicenseTest : public testing::Test {
|
||||
std::string GetCertRequestResponse(const std::string& server_url) {
|
||||
// Use secure connection and chunk transfer coding.
|
||||
UrlRequest url_request(server_url);
|
||||
if (!url_request.is_connected()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
EXPECT_TRUE(url_request.is_connected()) << "Fail to connect to "
|
||||
<< server_url;
|
||||
url_request.PostCertRequestInQueryString(key_msg_);
|
||||
std::string message;
|
||||
int resp_bytes = url_request.GetResponse(&message);
|
||||
LOGD("end %d bytes response dump", resp_bytes);
|
||||
EXPECT_TRUE(url_request.GetResponse(&message));
|
||||
|
||||
int status_code = url_request.GetStatusCode(message);
|
||||
EXPECT_EQ(kHttpOk, status_code);
|
||||
int http_status_code = url_request.GetStatusCode(message);
|
||||
if (kHttpOk != http_status_code) {
|
||||
LogResponseError(message, http_status_code);
|
||||
}
|
||||
EXPECT_EQ(kHttpOk, http_status_code);
|
||||
return message;
|
||||
}
|
||||
|
||||
@@ -576,18 +584,20 @@ class WvCdmRequestLicenseTest : public testing::Test {
|
||||
const std::string& usage_info_request) {
|
||||
// Use secure connection and chunk transfer coding.
|
||||
UrlRequest url_request(server_url + client_auth);
|
||||
if (!url_request.is_connected()) {
|
||||
return "";
|
||||
}
|
||||
EXPECT_TRUE(url_request.is_connected()) << "Fail to connect to "
|
||||
<< server_url << client_auth;
|
||||
url_request.PostRequest(usage_info_request);
|
||||
std::string message;
|
||||
int resp_bytes = url_request.GetResponse(&message);
|
||||
EXPECT_TRUE(url_request.GetResponse(&message));
|
||||
|
||||
int status_code = url_request.GetStatusCode(message);
|
||||
EXPECT_EQ(kHttpOk, status_code);
|
||||
int http_status_code = url_request.GetStatusCode(message);
|
||||
if (kHttpOk != http_status_code) {
|
||||
LogResponseError(message, http_status_code);
|
||||
}
|
||||
EXPECT_EQ(kHttpOk, http_status_code);
|
||||
|
||||
std::string usage_info;
|
||||
if (kHttpOk == status_code) {
|
||||
if (kHttpOk == http_status_code) {
|
||||
LicenseRequest license;
|
||||
license.GetDrmMessage(message, usage_info);
|
||||
LOGV("HTTP response body: (%u bytes)", usage_info.size());
|
||||
@@ -927,23 +937,23 @@ TEST_F(WvCdmRequestLicenseTest, WrongMessageTest) {
|
||||
// We should receive a response with no license, i.e. the extracted license
|
||||
// response message should be empty or an HTTP error
|
||||
UrlRequest url_request(g_license_server + g_client_auth);
|
||||
if (!url_request.is_connected()) {
|
||||
return;
|
||||
}
|
||||
EXPECT_TRUE(url_request.is_connected()) << "Fail to connect to "
|
||||
<< g_license_server << g_client_auth;
|
||||
url_request.PostRequest(key_msg_);
|
||||
std::string message;
|
||||
int resp_bytes = url_request.GetResponse(&message);
|
||||
EXPECT_TRUE(url_request.GetResponse(&message));
|
||||
|
||||
int status_code = url_request.GetStatusCode(message);
|
||||
int http_status_code = url_request.GetStatusCode(message);
|
||||
std::string drm_msg;
|
||||
if (kHttpOk == status_code) {
|
||||
if (kHttpOk == http_status_code) {
|
||||
LicenseRequest lic_request;
|
||||
lic_request.GetDrmMessage(message, drm_msg);
|
||||
LOGV("HTTP response body: (%u bytes)", drm_msg.size());
|
||||
}
|
||||
EXPECT_TRUE(drm_msg.empty());
|
||||
EXPECT_TRUE(kHttpOk == status_code || kHttpBadRequest == status_code ||
|
||||
kHttpInternalServerError == status_code);
|
||||
EXPECT_TRUE(kHttpOk == http_status_code ||
|
||||
kHttpBadRequest == http_status_code ||
|
||||
kHttpInternalServerError == http_status_code);
|
||||
decryptor_.CloseSession(session_id_);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user