diff --git a/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp b/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp index 67a5a85b..4ba1dd9f 100644 --- a/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp +++ b/libwvdrmengine/cdm/test/cdm_extended_duration_test.cpp @@ -4,16 +4,17 @@ #include #include +#include + #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()); diff --git a/libwvdrmengine/cdm/test/request_license_test.cpp b/libwvdrmengine/cdm/test/request_license_test.cpp index c4d4b480..e4009093 100644 --- a/libwvdrmengine/cdm/test/request_license_test.cpp +++ b/libwvdrmengine/cdm/test/request_license_test.cpp @@ -4,18 +4,19 @@ #include #include +#include + #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_); }