Squashed merge 3 CLs.
1. "Change CdmResponseType from enum into a struct" Merged from http://go/wvgerrit/163199 Bug: 253271674 2. "Log request information when server returns 401" Bug: 260760387 Bug: 186031735 Merged from http://go/wvgerrit/162798 3. "Specify server version on the command line" Bug: 251599048 Merged from http://go/wvgerrit/158897 Test: build android.hardware.drm-service.widevine Test: Netflix and Play Movies & TV Test: build_and_run_all_unit_tests.sh Bug: 253271674 Change-Id: I70c950acce070609ee0343920ec68e66b058bc23
This commit is contained in:
@@ -137,7 +137,7 @@ TEST_F(WvCdmEngineMetricsImplTest, OpenSession_Overload1) {
|
||||
*test_cdm_metrics_engine_,
|
||||
OpenSession(StrEq("foo"), Eq(&property_set),
|
||||
Matcher<const CdmSessionId&>(Eq("bar")), Eq(&event_listener)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->OpenSession("foo", &property_set, "bar",
|
||||
@@ -160,7 +160,7 @@ TEST_F(WvCdmEngineMetricsImplTest, OpenSession_Overload2) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
OpenSession(StrEq("foo"), Eq(&property_set), Eq(&event_listener),
|
||||
Matcher<CdmSessionId*>(Eq(&session_id))))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->OpenSession(
|
||||
@@ -180,7 +180,7 @@ TEST_F(WvCdmEngineMetricsImplTest, CloseSession) {
|
||||
MockWvCdmEventListener event_listener;
|
||||
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_, CloseSession(Eq("bar")))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->CloseSession("bar"));
|
||||
@@ -201,7 +201,7 @@ TEST_F(WvCdmEngineMetricsImplTest, OpenKeySetSession) {
|
||||
EXPECT_CALL(
|
||||
*test_cdm_metrics_engine_,
|
||||
OpenKeySetSession(Eq("bar"), Eq(&property_set), Eq(&event_listener)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR, test_cdm_metrics_engine_->OpenKeySetSession(
|
||||
"bar", &property_set, &event_listener));
|
||||
@@ -225,7 +225,7 @@ TEST_F(WvCdmEngineMetricsImplTest, GenerateKeyRequest) {
|
||||
*test_cdm_metrics_engine_,
|
||||
GenerateKeyRequest(Eq("foo"), Eq("bar"), _, Eq(kLicenseTypeStreaming),
|
||||
Eq(app_parameters), Eq(&key_request)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->GenerateKeyRequest(
|
||||
@@ -250,7 +250,7 @@ TEST_F(WvCdmEngineMetricsImplTest, AddKey) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
AddKey(Eq("fake session id"), Eq("fake response"),
|
||||
Eq(&license_type), Eq(&key_set_id)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->AddKey("fake session id", "fake response",
|
||||
@@ -269,7 +269,7 @@ TEST_F(WvCdmEngineMetricsImplTest, AddKey) {
|
||||
TEST_F(WvCdmEngineMetricsImplTest, RestoreKey) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
RestoreKey(Eq("fake session id"), Eq("fake key set id")))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR, test_cdm_metrics_engine_->RestoreKey(
|
||||
"fake session id", "fake key set id"));
|
||||
@@ -286,7 +286,7 @@ TEST_F(WvCdmEngineMetricsImplTest, RestoreKey) {
|
||||
|
||||
TEST_F(WvCdmEngineMetricsImplTest, RemoveKeys) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_, RemoveKeys(Eq("fake session id")))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->RemoveKeys("fake session id"));
|
||||
@@ -304,7 +304,7 @@ TEST_F(WvCdmEngineMetricsImplTest, QueryKeyStatus) {
|
||||
CdmQueryMap query_response;
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
QueryKeyStatus(Eq("fake session id"), Eq(&query_response)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR, test_cdm_metrics_engine_->QueryKeyStatus(
|
||||
"fake session id", &query_response));
|
||||
@@ -328,7 +328,7 @@ TEST_F(WvCdmEngineMetricsImplTest, GetProvisioningRequest) {
|
||||
Eq(kCertificateX509), Eq("fake certificate authority"),
|
||||
Eq("fake service certificate"), Eq(wvcdm::kLevelDefault),
|
||||
Eq(&request), Eq(&default_url)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->GetProvisioningRequest(
|
||||
@@ -356,7 +356,7 @@ TEST_F(WvCdmEngineMetricsImplTest, HandleProvisioningResponse) {
|
||||
HandleProvisioningResponse(Eq("fake provisioning response"),
|
||||
Eq(wvcdm::kLevelDefault), Eq(&cert),
|
||||
Eq(&wrapped_key)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->HandleProvisioningResponse(
|
||||
@@ -376,7 +376,7 @@ TEST_F(WvCdmEngineMetricsImplTest, HandleProvisioningResponse) {
|
||||
|
||||
TEST_F(WvCdmEngineMetricsImplTest, Unprovision) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_, Unprovision(Eq(kSecurityLevelL2)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->Unprovision(kSecurityLevelL2));
|
||||
@@ -392,7 +392,7 @@ TEST_F(WvCdmEngineMetricsImplTest, Unprovision) {
|
||||
|
||||
TEST_F(WvCdmEngineMetricsImplTest, RemoveAllUsageInfo_Overload1) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_, RemoveAllUsageInfo(Eq("fake app id")))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->RemoveAllUsageInfo("fake app id"));
|
||||
@@ -411,7 +411,7 @@ TEST_F(WvCdmEngineMetricsImplTest, RemoveAllUsageInfo_Overload1) {
|
||||
TEST_F(WvCdmEngineMetricsImplTest, RemoveAllUsageInfo_Overload2) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
RemoveAllUsageInfo(Eq("fake app id"), Eq(kSecurityLevelL2)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR, test_cdm_metrics_engine_->RemoveAllUsageInfo(
|
||||
"fake app id", kSecurityLevelL2));
|
||||
@@ -430,7 +430,7 @@ TEST_F(WvCdmEngineMetricsImplTest, RemoveAllUsageInfo_Overload2) {
|
||||
TEST_F(WvCdmEngineMetricsImplTest, RemoveUsageInfo) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
RemoveUsageInfo(Eq("fake app id"), Eq("fake secure stop id")))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR, test_cdm_metrics_engine_->RemoveUsageInfo(
|
||||
"fake app id", "fake secure stop id"));
|
||||
@@ -448,7 +448,7 @@ TEST_F(WvCdmEngineMetricsImplTest, RemoveUsageInfo) {
|
||||
TEST_F(WvCdmEngineMetricsImplTest, ReleaseUsageInfo) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
ReleaseUsageInfo(Eq("fake release message")))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR,
|
||||
test_cdm_metrics_engine_->ReleaseUsageInfo("fake release message"));
|
||||
@@ -470,7 +470,7 @@ TEST_F(WvCdmEngineMetricsImplTest, ListUsageIds) {
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_,
|
||||
ListUsageIds(Eq("fake app id"), Eq(kSecurityLevelL2), Eq(&ksids),
|
||||
Eq(&provider_session_tokens)))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR, test_cdm_metrics_engine_->ListUsageIds(
|
||||
"fake app id", kSecurityLevelL2, &ksids,
|
||||
@@ -509,7 +509,7 @@ TEST_F(WvCdmEngineMetricsImplTest, FindSessionForKey) {
|
||||
TEST_F(WvCdmEngineMetricsImplTest, Decrypt) {
|
||||
CdmDecryptionParametersV16 parameters;
|
||||
EXPECT_CALL(*test_cdm_metrics_engine_, DecryptV16(Eq("fake session id"), _))
|
||||
.WillOnce(Return(wvcdm::UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
|
||||
ASSERT_EQ(wvcdm::UNKNOWN_ERROR, test_cdm_metrics_engine_->DecryptV16(
|
||||
"fake session id", parameters));
|
||||
|
||||
@@ -217,7 +217,7 @@ TEST_F(CdmSessionTest, InitWithBuiltInCertificate) {
|
||||
CdmSecurityLevel level = kSecurityLevelL1;
|
||||
EXPECT_CALL(*crypto_session_, Open(Eq(kLevelDefault)))
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(NO_ERROR)));
|
||||
EXPECT_CALL(*crypto_session_, GetSecurityLevel())
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(level));
|
||||
@@ -237,7 +237,7 @@ TEST_F(CdmSessionTest, InitWithCertificate) {
|
||||
CdmSecurityLevel level = kSecurityLevelL1;
|
||||
EXPECT_CALL(*crypto_session_, Open(Eq(kLevelDefault)))
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(NO_ERROR)));
|
||||
EXPECT_CALL(*crypto_session_, GetSecurityLevel())
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(level));
|
||||
@@ -257,7 +257,7 @@ TEST_F(CdmSessionTest, ReInitFail) {
|
||||
CdmSecurityLevel level = kSecurityLevelL1;
|
||||
EXPECT_CALL(*crypto_session_, Open(Eq(kLevelDefault)))
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(NO_ERROR)));
|
||||
EXPECT_CALL(*crypto_session_, GetSecurityLevel())
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(level));
|
||||
@@ -275,7 +275,7 @@ TEST_F(CdmSessionTest, ReInitFail) {
|
||||
|
||||
TEST_F(CdmSessionTest, InitFailCryptoError) {
|
||||
EXPECT_CALL(*crypto_session_, Open(Eq(kLevelDefault)))
|
||||
.WillOnce(Return(UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
EXPECT_CALL(*license_parser_, provider_session_token())
|
||||
.WillRepeatedly(Return("Mock provider session token"));
|
||||
|
||||
@@ -288,7 +288,7 @@ TEST_F(CdmSessionTest, UpdateUsageEntry) {
|
||||
CdmSecurityLevel level = kSecurityLevelL1;
|
||||
EXPECT_CALL(*crypto_session_, Open(Eq(kLevelDefault)))
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(NO_ERROR)));
|
||||
EXPECT_CALL(*crypto_session_, GetSecurityLevel())
|
||||
.InSequence(crypto_session_seq)
|
||||
.WillOnce(Return(level));
|
||||
@@ -306,7 +306,7 @@ TEST_F(CdmSessionTest, UpdateUsageEntry) {
|
||||
EXPECT_CALL(*license_parser_, provider_session_token())
|
||||
.WillRepeatedly(Return("Mock provider session token"));
|
||||
EXPECT_CALL(usage_table_header_, UpdateEntry(_, NotNull(), NotNull()))
|
||||
.WillRepeatedly(Return(NO_ERROR));
|
||||
.WillRepeatedly(Return(CdmResponseType(NO_ERROR)));
|
||||
|
||||
EXPECT_EQ(NO_ERROR, cdm_session_->Init(nullptr));
|
||||
EXPECT_TRUE(cdm_session_->supports_usage_info());
|
||||
|
||||
@@ -92,7 +92,13 @@ class ConfigTestEnv {
|
||||
}
|
||||
int test_pass() const { return test_pass_; }
|
||||
const std::string& test_data_path() const { return test_data_path_; }
|
||||
int server_version() const { return server_version_; }
|
||||
|
||||
// Return true if the server version has been set and it is older than the
|
||||
// specified version. We know the server version is set, if it is nonzero.
|
||||
bool ServerOlderThan(int server_version) {
|
||||
return server_version_ > 0 && server_version_ < server_version;
|
||||
}
|
||||
static const CdmInitData GetInitData(ContentId content_id);
|
||||
static const std::string& GetLicenseServerUrl(
|
||||
ServerConfigurationId server_configuration_id);
|
||||
@@ -122,6 +128,9 @@ class ConfigTestEnv {
|
||||
void set_test_data_path(const std::string& test_data_path) {
|
||||
test_data_path_ = test_data_path;
|
||||
}
|
||||
void set_server_version(int server_version) {
|
||||
if (server_version >= 0) server_version_ = server_version;
|
||||
}
|
||||
// The QA service certificate, used for a local provisioning server.
|
||||
static std::string QAProvisioningServiceCertificate();
|
||||
|
||||
@@ -139,6 +148,7 @@ class ConfigTestEnv {
|
||||
std::string provisioning_service_certificate_;
|
||||
int test_pass_;
|
||||
std::string test_data_path_; // Where to store test data for reboot tests.
|
||||
int server_version_ = 0;
|
||||
};
|
||||
|
||||
// The default provisioning server URL for a default provisioning request.
|
||||
|
||||
@@ -47,7 +47,7 @@ class CdmOtaKeyboxTest : public ::testing::Test {
|
||||
std::string cert_authority;
|
||||
CdmProvisioningRequest prov_request;
|
||||
std::string provisioning_server_url;
|
||||
CdmResponseType result = CERT_PROVISIONING_NONCE_GENERATION_ERROR;
|
||||
CdmResponseType result(CERT_PROVISIONING_NONCE_GENERATION_ERROR);
|
||||
// Get a provisioning request. We might need one retry if there is a nonce
|
||||
// flood failure.
|
||||
for (int i = 0; i < 2; i++) {
|
||||
@@ -77,8 +77,8 @@ class CdmOtaKeyboxTest : public ::testing::Test {
|
||||
|
||||
// Receive and parse response.
|
||||
std::string http_message;
|
||||
ASSERT_TRUE(url_request.GetResponse(&http_message))
|
||||
<< "Failed to get provisioning response";
|
||||
ASSERT_NO_FATAL_FAILURE(url_request.AssertOkResponse(&http_message))
|
||||
<< "Keybox OTA provisioning request failed.";
|
||||
LOGV("http_message: \n%s\n", http_message.c_str());
|
||||
|
||||
std::string cert, wrapped_key;
|
||||
@@ -111,7 +111,7 @@ TEST_F(CdmOtaKeyboxTest, BasicTest) {
|
||||
} else {
|
||||
std::cout << " "
|
||||
<< "Could not find system id before test. ";
|
||||
PrintTo(system_id_status, &std::cout);
|
||||
PrintTo(system_id_status.Enum(), &std::cout);
|
||||
std::cout << "\n";
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ TEST_F(CdmOtaKeyboxTest, BasicTest) {
|
||||
} else {
|
||||
std::cout << " "
|
||||
<< "Could not find system id after first provisioning. ";
|
||||
PrintTo(system_id_status, &std::cout);
|
||||
PrintTo(system_id_status.Enum(), &std::cout);
|
||||
std::cout << "\n";
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ TEST_F(CdmOtaKeyboxTest, BasicTest) {
|
||||
} else {
|
||||
std::cout << " "
|
||||
<< "Could not find system id after second provisioning. ";
|
||||
PrintTo(system_id_status, &std::cout);
|
||||
PrintTo(system_id_status.Enum(), &std::cout);
|
||||
std::cout << "\n";
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
|
||||
namespace wvcdm {
|
||||
namespace {
|
||||
constexpr int kHttpOk = 200;
|
||||
const std::string kCencMimeType = "cenc";
|
||||
} // namespace
|
||||
|
||||
@@ -77,10 +76,9 @@ void LicenseHolder::GenerateAndPostRenewalRequest(
|
||||
}
|
||||
void LicenseHolder::FetchRenewal() {
|
||||
ASSERT_NE(renewal_in_flight_, nullptr) << "Failed for " << content_id();
|
||||
ASSERT_TRUE(renewal_in_flight_->GetResponse(&renewal_response_))
|
||||
<< "Failed for " << content_id();
|
||||
int status_code = renewal_in_flight_->GetStatusCode(renewal_response_);
|
||||
ASSERT_EQ(kHttpOk, status_code) << "Failed for " << content_id();
|
||||
ASSERT_NO_FATAL_FAILURE(
|
||||
renewal_in_flight_->AssertOkResponse(&renewal_response_))
|
||||
<< "Renewal failed for " << content_id();
|
||||
}
|
||||
|
||||
void LicenseHolder::LoadRenewal() {
|
||||
@@ -214,12 +212,8 @@ void LicenseHolder::GetKeyResponse(const CdmKeyRequest& key_request) {
|
||||
|
||||
std::string http_response;
|
||||
url_request.PostRequest(key_request.message);
|
||||
ASSERT_TRUE(url_request.GetResponse(&http_response));
|
||||
int status_code = url_request.GetStatusCode(http_response);
|
||||
ASSERT_EQ(kHttpOk, status_code) << "Error with url = " << url << "\n"
|
||||
<< "content_id = " << content_id() << "\n"
|
||||
<< "response = " << http_response;
|
||||
|
||||
ASSERT_NO_FATAL_FAILURE(url_request.AssertOkResponse(&http_response))
|
||||
<< "Failed for " << content_id();
|
||||
LicenseRequest license_request;
|
||||
license_request.GetDrmMessage(http_response, key_response_);
|
||||
}
|
||||
|
||||
@@ -308,7 +308,8 @@ TEST_F(CdmLicenseTest, PrepareKeyRequestValidation) {
|
||||
DoAll(SetArgPointee<0>(usage_information_support), Return(true)));
|
||||
EXPECT_CALL(*crypto_session_, GetHdcpCapabilities(NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(current_hdcp_version),
|
||||
SetArgPointee<1>(max_hdcp_version), Return(NO_ERROR)));
|
||||
SetArgPointee<1>(max_hdcp_version),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
// Supported certificates set by SetUp().
|
||||
EXPECT_CALL(*crypto_session_, GetSupportedCertificateTypes(NotNull()));
|
||||
EXPECT_CALL(*crypto_session_, GetApiVersion(NotNull()))
|
||||
@@ -318,12 +319,13 @@ TEST_F(CdmLicenseTest, PrepareKeyRequestValidation) {
|
||||
.WillOnce(DoAll(SetArgPointee<0>(resource_rating_tier), Return(true)));
|
||||
EXPECT_CALL(*clock_, GetCurrentTime()).WillOnce(Return(kLicenseStartTime));
|
||||
EXPECT_CALL(*crypto_session_, GenerateNonce(NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(kNonce), Return(NO_ERROR)));
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<0>(kNonce), Return(CdmResponseType(NO_ERROR))));
|
||||
EXPECT_CALL(*crypto_session_,
|
||||
PrepareAndSignLicenseRequest(_, NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kFakeCoreMessage),
|
||||
SetArgPointee<2>(kLicenseRequestSignature),
|
||||
Return(NO_ERROR)));
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
EXPECT_CALL(*crypto_session_, GetBuildInformation(NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(kFakeBuildInfo), Return(true)));
|
||||
EXPECT_CALL(*crypto_session_, GetWatermarkingSupport(NotNull()))
|
||||
@@ -440,7 +442,8 @@ TEST_F(CdmLicenseTest, PrepareKeyRequestValidationV15) {
|
||||
DoAll(SetArgPointee<0>(usage_information_support), Return(true)));
|
||||
EXPECT_CALL(*crypto_session_, GetHdcpCapabilities(NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(current_hdcp_version),
|
||||
SetArgPointee<1>(max_hdcp_version), Return(NO_ERROR)));
|
||||
SetArgPointee<1>(max_hdcp_version),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
EXPECT_CALL(*crypto_session_, GetSupportedCertificateTypes(NotNull()));
|
||||
EXPECT_CALL(*crypto_session_, GetApiVersion(NotNull()))
|
||||
.WillOnce(
|
||||
@@ -449,12 +452,13 @@ TEST_F(CdmLicenseTest, PrepareKeyRequestValidationV15) {
|
||||
.WillOnce(DoAll(SetArgPointee<0>(resource_rating_tier), Return(true)));
|
||||
EXPECT_CALL(*clock_, GetCurrentTime()).WillOnce(Return(kLicenseStartTime));
|
||||
EXPECT_CALL(*crypto_session_, GenerateNonce(NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(kNonce), Return(NO_ERROR)));
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<0>(kNonce), Return(CdmResponseType(NO_ERROR))));
|
||||
EXPECT_CALL(*crypto_session_,
|
||||
PrepareAndSignLicenseRequest(_, NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kFakeCoreMessage),
|
||||
SetArgPointee<2>(kLicenseRequestSignature),
|
||||
Return(NO_ERROR)));
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
EXPECT_CALL(*crypto_session_, GetBuildInformation(NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(kFakeBuildInfo), Return(true)));
|
||||
EXPECT_CALL(*crypto_session_, GetWatermarkingSupport(NotNull()))
|
||||
@@ -598,7 +602,7 @@ TEST_P(CdmLicenseEntitledKeyTest, LoadsEntitledKeys) {
|
||||
|
||||
if (variant.should_succeed) {
|
||||
EXPECT_CALL(*crypto_session_, LoadEntitledContentKeys(_))
|
||||
.WillOnce(Return(KEY_ADDED));
|
||||
.WillOnce(Return(CdmResponseType(KEY_ADDED)));
|
||||
EXPECT_CALL(*policy_engine_, SetEntitledLicenseKeys(_)).Times(1);
|
||||
} else {
|
||||
EXPECT_CALL(*crypto_session_, LoadEntitledContentKeys(_)).Times(0);
|
||||
|
||||
@@ -68,7 +68,8 @@ class MockCryptoSession : public CryptoSession {
|
||||
void ExpectRequest(const std::string& request, CdmResponseType result) {
|
||||
if (result == NO_ERROR) {
|
||||
EXPECT_CALL(*this, PrepareOtaProvisioningRequest(false, NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(request), Return(NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<1>(request),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
} else {
|
||||
EXPECT_CALL(*this, PrepareOtaProvisioningRequest(false, NotNull()))
|
||||
.WillOnce(Return(result));
|
||||
@@ -208,7 +209,8 @@ TEST_F(OtaKeyboxProvisionerTest, FullProvisioning) {
|
||||
EXPECT_FALSE(provisioner_->response_received());
|
||||
|
||||
// Generate request.
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest, NO_ERROR);
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest,
|
||||
CdmResponseType(NO_ERROR));
|
||||
std::string signed_prov_message, default_url;
|
||||
EXPECT_EQ(NO_ERROR, provisioner_->GetProvisioningRequest(&signed_prov_message,
|
||||
&default_url));
|
||||
@@ -226,7 +228,8 @@ TEST_F(OtaKeyboxProvisionerTest, FullProvisioning) {
|
||||
clock_.SetTime(kProvisioningTime);
|
||||
std::string response;
|
||||
MakeSignedOtaProvisioningResponse(kFakeOtaProvisioningResponse, &response);
|
||||
crypto_session_->ExpectResponse(kFakeOtaProvisioningResponse, NO_ERROR);
|
||||
crypto_session_->ExpectResponse(kFakeOtaProvisioningResponse,
|
||||
CdmResponseType(NO_ERROR));
|
||||
EXPECT_EQ(NO_ERROR, provisioner_->HandleProvisioningResponse(response));
|
||||
|
||||
// Post-response conditions.
|
||||
@@ -242,7 +245,8 @@ TEST_F(OtaKeyboxProvisionerTest, FullProvisioning) {
|
||||
// Provisioning from A perspective should complete without issues.
|
||||
TEST_F(OtaKeyboxProvisionerTest, CompletedInDifferentEngine) {
|
||||
// Generate request (engine A).
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest, NO_ERROR);
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest,
|
||||
CdmResponseType(NO_ERROR));
|
||||
std::string signed_prov_message, default_url;
|
||||
EXPECT_EQ(NO_ERROR, provisioner_->GetProvisioningRequest(&signed_prov_message,
|
||||
&default_url));
|
||||
@@ -276,7 +280,8 @@ TEST_F(OtaKeyboxProvisionerTest, CompletedInDifferentEngine) {
|
||||
// malformed SignedProvisioningMessage.
|
||||
TEST_F(OtaKeyboxProvisionerTest, MalformedResponseMessage) {
|
||||
// Generate request.
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest, NO_ERROR);
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest,
|
||||
CdmResponseType(NO_ERROR));
|
||||
std::string signed_prov_message, default_url;
|
||||
EXPECT_EQ(NO_ERROR, provisioner_->GetProvisioningRequest(&signed_prov_message,
|
||||
&default_url));
|
||||
@@ -321,7 +326,8 @@ TEST_F(OtaKeyboxProvisionerTest, MalformedResponseMessage) {
|
||||
// Test case where OEMCrypto rejects the provided OTA keybox response.
|
||||
TEST_F(OtaKeyboxProvisionerTest, RejectedResponse) {
|
||||
// Generate request.
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest, NO_ERROR);
|
||||
crypto_session_->ExpectRequest(kFakeOtaProvisioningRequest,
|
||||
CdmResponseType(NO_ERROR));
|
||||
std::string request, default_url;
|
||||
EXPECT_EQ(NO_ERROR,
|
||||
provisioner_->GetProvisioningRequest(&request, &default_url));
|
||||
@@ -329,7 +335,8 @@ TEST_F(OtaKeyboxProvisionerTest, RejectedResponse) {
|
||||
// Load response. OEMCrypto returns error.
|
||||
std::string response;
|
||||
MakeSignedOtaProvisioningResponse(kFakeOtaProvisioningResponse, &response);
|
||||
crypto_session_->ExpectResponse(kFakeOtaProvisioningResponse, UNKNOWN_ERROR);
|
||||
crypto_session_->ExpectResponse(kFakeOtaProvisioningResponse,
|
||||
CdmResponseType(UNKNOWN_ERROR));
|
||||
EXPECT_NE(NO_ERROR, provisioner_->HandleProvisioningResponse(response));
|
||||
|
||||
// Post-response failure conditions.
|
||||
@@ -341,7 +348,8 @@ TEST_F(OtaKeyboxProvisionerTest, RejectedResponse) {
|
||||
|
||||
TEST_F(OtaKeyboxProvisionerTest, OtaProvisioningNotImplemented) {
|
||||
// Generate request.
|
||||
crypto_session_->ExpectRequest(kEmptyString, NOT_IMPLEMENTED_ERROR);
|
||||
crypto_session_->ExpectRequest(kEmptyString,
|
||||
CdmResponseType(NOT_IMPLEMENTED_ERROR));
|
||||
std::string request, default_url;
|
||||
EXPECT_EQ(NOT_IMPLEMENTED_ERROR,
|
||||
provisioner_->GetProvisioningRequest(&request, &default_url));
|
||||
|
||||
@@ -239,8 +239,9 @@ TEST_F(PolicyEngineConstraintsTest, IsPermissiveWithoutAResolution) {
|
||||
}
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
policy_engine_->OnTimerEvent();
|
||||
@@ -271,8 +272,8 @@ TEST_F(PolicyEngineConstraintsTest, HandlesResolutionsBasedOnConstraints) {
|
||||
}
|
||||
EXPECT_CALL(mock_event_listener_, OnExpirationUpdate(kSessionId, _));
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT), Return(NO_ERROR)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
policy_engine_->NotifyResolution(1, kTargetRes1);
|
||||
@@ -318,23 +319,24 @@ TEST_F(PolicyEngineConstraintsTest,
|
||||
kKeyStatusUsable, kKeyId4, kKeyStatusOutputNotAllowed, true);
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(HDCP_V2_2),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)))
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(HDCP_V2_2),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
}
|
||||
int64_t start_time = current_time_ + 5;
|
||||
{
|
||||
InSequence calls;
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(HDCP_V2_2),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
EXPECT_CALL(*mock_clock_, GetCurrentTime())
|
||||
.WillOnce(Return(start_time + kHdcpInterval / 2))
|
||||
.WillOnce(Return(start_time + kHdcpInterval));
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(HDCP_V2_2),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(HDCP_V2_2), Return(NO_ERROR)));
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))))
|
||||
.WillOnce(DoAll(SetArgPointee<0>(HDCP_V2_2),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
}
|
||||
|
||||
policy_engine_->NotifyResolution(1, kTargetRes1);
|
||||
@@ -369,7 +371,8 @@ TEST_F(PolicyEngineConstraintsTest, HandlesConstraintOverridingHdcp) {
|
||||
}
|
||||
EXPECT_CALL(mock_event_listener_, OnExpirationUpdate(kSessionId, _));
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_V2), Return(NO_ERROR)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_V2), Return(CdmResponseType(NO_ERROR))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
policy_engine_->NotifyResolution(1, kTargetRes1);
|
||||
@@ -411,7 +414,8 @@ TEST_F(PolicyEngineConstraintsTest, HandlesNoHdcp) {
|
||||
}
|
||||
EXPECT_CALL(mock_event_listener_, OnExpirationUpdate(kSessionId, _));
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NONE), Return(NO_ERROR)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NONE),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -454,8 +458,9 @@ TEST_F(PolicyEngineConstraintsTest, UsesDefaultHdcpWhenResolutionNotSet) {
|
||||
EXPECT_CALL(mock_event_listener_, OnExpirationUpdate(kSessionId, _));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
policy_engine_->OnTimerEvent();
|
||||
|
||||
@@ -247,7 +247,8 @@ TEST_F(PolicyEngineTest, DISABLED_PlaybackSuccess_StreamingLicense_V15) {
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
Return(CdmResponseType(
|
||||
CdmResponseType(GET_HDCP_CAPABILITY_FAILED)))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
policy_engine_->BeginDecryption();
|
||||
@@ -280,8 +281,9 @@ TEST_F(PolicyEngineTest, DISABLED_PlaybackFailed_RepeatedRenewFailures_V15) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLicenseDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -341,8 +343,9 @@ TEST_F(PolicyEngineTest, DISABLED_PlaybackOk_RenewSuccessAfterExpiry_V15) {
|
||||
.WillOnce(Return(kPlaybackStartTime + kPlaybackDuration + 20));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -416,8 +419,9 @@ TEST_F(PolicyEngineTest, DISABLED_PlaybackOk_RenewSuccessAfterFailures_V15) {
|
||||
.WillOnce(Return(kLicenseStartTime + license_renewal_delay + 200));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -476,8 +480,9 @@ TEST_F(PolicyEngineTest, DISABLED_PlaybackOk_RenewedWithUsage_V15) {
|
||||
.WillOnce(Return(kLicenseStartTime + 40));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -538,8 +543,9 @@ TEST_F(PolicyEngineTest, MultipleKeysInLicense) {
|
||||
.WillOnce(Return(kLicenseStartTime + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, kKeyStatusUsable, true);
|
||||
EXPECT_CALL(mock_event_listener_, OnExpirationUpdate(_, _));
|
||||
@@ -565,8 +571,9 @@ TEST_F(PolicyEngineTest, DISABLED_PlaybackOk_SoftEnforcePlaybackDuration_V15) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLicenseDuration + 5));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence seq;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -604,8 +611,9 @@ TEST_F(PolicyEngineTest,
|
||||
.WillOnce(Return(kPlaybackStartTime + kPlaybackDuration + 10));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence seq;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -632,8 +640,9 @@ TEST_F(PolicyEngineTest,
|
||||
.WillOnce(Return(kPlaybackStartTime + kPlaybackDuration + 10));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence seq;
|
||||
ExpectSessionKeysChange(kKeyStatusExpired, false);
|
||||
@@ -655,8 +664,9 @@ TEST_F(PolicyEngineTest, DISABLED_PlaybackOk_RestoreWithoutPlaybackTimes_V15) {
|
||||
.WillOnce(Return(kLicenseStartTime + 30));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence seq;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -863,8 +873,9 @@ TEST_F(PolicyEngineKeyAllowedUsageTest, AllowedUsageBasic) {
|
||||
.WillOnce(Return(kLicenseStartTime + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, kKeyStatusUsable, true);
|
||||
EXPECT_CALL(mock_event_listener_, OnExpirationUpdate(_, _));
|
||||
@@ -923,8 +934,9 @@ TEST_F(PolicyEngineKeyAllowedUsageTest, AllowedUsageGeneric) {
|
||||
.WillOnce(Return(kLicenseStartTime + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, kKeyStatusUsable, true);
|
||||
EXPECT_CALL(mock_event_listener_, OnExpirationUpdate(_, _));
|
||||
@@ -981,8 +993,9 @@ TEST_F(PolicyEngineQueryTest, DISABLED_QuerySuccess_Offline_V15) {
|
||||
.WillOnce(Return(kLicenseStartTime + 300));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -1021,8 +1034,9 @@ TEST_F(PolicyEngineQueryTest, DISABLED_QuerySuccess_Renew_V15) {
|
||||
kLicenseRenewalRetryInterval + 15));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -1080,8 +1094,9 @@ TEST_F(PolicyEngineQueryTest,
|
||||
kLicenseRenewalRetryInterval + 40));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -1150,8 +1165,8 @@ TEST_F(PolicyEngineTest, PlaybackSuccess_OfflineLicense_V16) {
|
||||
OnExpirationUpdate(_, kPlaybackStartTime + kPlaybackDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT), Return(NO_ERROR)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
policy_engine_->BeginDecryption();
|
||||
@@ -1175,8 +1190,9 @@ TEST_F(PolicyEngineTest, PlaybackFailed_CanPlayFalse_V16) {
|
||||
OnExpirationUpdate(_, kLicenseStartTime + kRentalDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
EXPECT_FALSE(policy_engine_->CanDecryptContent(kKeyId));
|
||||
@@ -1201,8 +1217,9 @@ TEST_F(PolicyEngineTest,
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1239,8 +1256,9 @@ TEST_F(
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1275,8 +1293,9 @@ TEST_F(PolicyEngineTest, PlaybackFails_RentalDurationPassedWithPlayback_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1313,8 +1332,9 @@ TEST_F(
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1350,8 +1370,9 @@ TEST_F(PolicyEngineTest, PlaybackFails_PlaybackDurationExpired_V16) {
|
||||
.WillOnce(Return(playback_start_time + kPlaybackDuration + 2));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1389,8 +1410,9 @@ TEST_F(PolicyEngineTest,
|
||||
.WillOnce(Return(playback_start_time + kPlaybackDuration + 2));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1428,8 +1450,9 @@ TEST_F(PolicyEngineTest, LicenseOk_LicenseDurationExpiredWithoutPlayback_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1464,8 +1487,9 @@ TEST_F(PolicyEngineTest, LicenseOk_LicenseDurationExpiredWithPlayback_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1503,8 +1527,9 @@ TEST_F(PolicyEngineTest, PlaybackFails_ExpiryBeforeRenewalDelay_V16) {
|
||||
.WillOnce(Return(kPlaybackStartTime + kPlaybackDuration + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1541,8 +1566,9 @@ TEST_F(PolicyEngineTest, LicenseOk_RentalDuration0_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLicenseDuration + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1576,8 +1602,9 @@ TEST_F(PolicyEngineTest, PlaybackOk_RentalDuration0_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLicenseDuration + 10));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1617,8 +1644,9 @@ TEST_F(PolicyEngineTest, PlaybackFails_PlaybackDuration0_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kRentalDuration + 2));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1658,8 +1686,9 @@ TEST_F(PolicyEngineTest,
|
||||
.WillOnce(Return(kPlaybackStartTime + kRentalDuration + 2));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1700,8 +1729,9 @@ TEST_F(PolicyEngineTest, PlaybackOk_PlaybackAndRental0_V16) {
|
||||
.WillOnce(Return(kPlaybackStartTime + kRentalDuration + 2));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1735,8 +1765,9 @@ TEST_F(PolicyEngineTest, PlaybackOk_LicenseWithFutureStartTime_V16) {
|
||||
.WillOnce(Return(kPlaybackStartTime));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsableInFuture, false);
|
||||
@@ -1775,8 +1806,9 @@ TEST_F(PolicyEngineTest, PlaybackFailed_CanRenewFalse_V16) {
|
||||
.WillOnce(Return(kPlaybackStartTime + kPlaybackDuration + 1));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1822,8 +1854,9 @@ TEST_F(PolicyEngineTest, PlaybackOk_RenewSuccess_V16) {
|
||||
kLicenseRenewalRetryInterval + 10));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1883,8 +1916,9 @@ TEST_F(PolicyEngineTest,
|
||||
.WillOnce(Return(kLicenseStartTime + license_renewal_delay + 60));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1940,8 +1974,9 @@ TEST_F(PolicyEngineTest, LicenseExpired_RenewFailedVersionNotUpdated_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kPlaybackDuration + 10));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence s;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
@@ -1993,8 +2028,8 @@ TEST_F(PolicyEngineTest, PlaybackSuccess_EntitlementLicense_V16) {
|
||||
OnExpirationUpdate(_, kPlaybackStartTime + kPlaybackDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT), Return(NO_ERROR)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
|
||||
License::KeyContainer* key = license_.mutable_key(0);
|
||||
key->set_type(License::KeyContainer::ENTITLEMENT);
|
||||
@@ -2046,8 +2081,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + 100));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2076,8 +2112,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackNotBegun_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + 200));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2120,8 +2157,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackBegun_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + 200));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2200,8 +2238,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_CanPlayFalse_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + 100));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
EXPECT_FALSE(policy_engine_->CanDecryptContent(kKeyId));
|
||||
@@ -2241,8 +2280,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalDurationExpired_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration + 5));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2285,8 +2325,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackDurationExpired_V16) {
|
||||
.WillOnce(Return(playback_start_time + 5 + kLowDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2328,8 +2369,9 @@ TEST_F(PolicyEngineQueryTest,
|
||||
.WillOnce(Return(kLicenseStartTime + 5 + kLowDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2374,8 +2416,9 @@ TEST_F(PolicyEngineQueryTest,
|
||||
.WillOnce(Return(kPlaybackStartTime + 5 + kLowDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2419,8 +2462,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_RentalDuration0_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kLowDuration + 5));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2467,8 +2511,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_PlaybackDuration0_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + kHighDuration + 5));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2575,8 +2620,9 @@ TEST_F(PolicyEngineQueryTest, QuerySuccess_LicenseWithFutureStartTime_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + 25));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
|
||||
@@ -2648,8 +2694,9 @@ TEST_F(PolicyEngineTest, SetLicenseForReleaseAfterSetLicense_V16) {
|
||||
OnExpirationUpdate(_, kPlaybackStartTime + kPlaybackDuration));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
policy_engine_->SetLicense(license_, false);
|
||||
policy_engine_->BeginDecryption();
|
||||
@@ -2676,8 +2723,9 @@ TEST_F(PolicyEngineTest, PlaybackOk_RestoreWithoutPlaybackTimes_V16) {
|
||||
.WillOnce(Return(kLicenseStartTime + 30));
|
||||
|
||||
EXPECT_CALL(crypto_session_, GetHdcpCapabilities(_, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(GET_HDCP_CAPABILITY_FAILED)));
|
||||
.WillRepeatedly(
|
||||
DoAll(SetArgPointee<0>(HDCP_NO_DIGITAL_OUTPUT),
|
||||
Return(CdmResponseType(GET_HDCP_CAPABILITY_FAILED))));
|
||||
|
||||
InSequence seq;
|
||||
ExpectSessionKeysChange(kKeyStatusUsable, true);
|
||||
|
||||
@@ -83,7 +83,8 @@ TEST_F(CorePIGTest, OfflineHWSecureRequired) {
|
||||
ASSERT_NO_FATAL_FAILURE(holder.FetchLicense());
|
||||
ASSERT_NO_FATAL_FAILURE(holder.LoadLicense());
|
||||
EXPECT_EQ(NO_ERROR, holder.Decrypt(sw_key_id));
|
||||
ASSERT_NO_FATAL_FAILURE(holder.FailDecrypt(hw_key_id, DECRYPT_ERROR));
|
||||
ASSERT_NO_FATAL_FAILURE(
|
||||
holder.FailDecrypt(hw_key_id, CdmResponseType(DECRYPT_ERROR)));
|
||||
// Next, if possible, we try to decrypt to a secure buffer, and verify
|
||||
// success.
|
||||
if (wvoec::global_features.test_secure_buffers) {
|
||||
@@ -98,7 +99,8 @@ TEST_F(CorePIGTest, OfflineHWSecureRequired) {
|
||||
ASSERT_NO_FATAL_FAILURE(holder.OpenSession());
|
||||
ASSERT_NO_FATAL_FAILURE(holder.ReloadLicense());
|
||||
EXPECT_EQ(NO_ERROR, holder.Decrypt(sw_key_id));
|
||||
ASSERT_NO_FATAL_FAILURE(holder.FailDecrypt(hw_key_id, DECRYPT_ERROR));
|
||||
ASSERT_NO_FATAL_FAILURE(
|
||||
holder.FailDecrypt(hw_key_id, CdmResponseType(DECRYPT_ERROR)));
|
||||
// Next, if possible, we try to decrypt to a secure buffer, and verify
|
||||
// success.
|
||||
if (wvoec::global_features.test_secure_buffers) {
|
||||
|
||||
@@ -331,7 +331,8 @@ class SystemIdExtractorTest : public WvCdmTestBase {
|
||||
void ExpectProvisioningType(CdmClientTokenType type) {
|
||||
EXPECT_CALL(*crypto_session_, GetCachedSystemId).WillOnce(Return(false));
|
||||
EXPECT_CALL(*crypto_session_, GetProvisioningMethod(_, NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(type), Return(NO_ERROR)));
|
||||
.WillOnce(
|
||||
DoAll(SetArgPointee<1>(type), Return(CdmResponseType(NO_ERROR))));
|
||||
}
|
||||
|
||||
void ExpectSet(uint32_t system_id) {
|
||||
@@ -382,7 +383,7 @@ TEST_F(SystemIdExtractorTest, SetSystemIdMetrics) {
|
||||
TEST_F(SystemIdExtractorTest, GetProvisioningMethod_Failed) {
|
||||
EXPECT_CALL(*crypto_session_, GetCachedSystemId).WillOnce(Return(false));
|
||||
EXPECT_CALL(*crypto_session_, GetProvisioningMethod(_, NotNull()))
|
||||
.WillOnce(Return(UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
auto extractor = CreateExtractor(kLevelDefault);
|
||||
ASSERT_TRUE(extractor);
|
||||
uint32_t system_id;
|
||||
@@ -409,7 +410,8 @@ TEST_F(SystemIdExtractorTest, DrmCertDevice_NullSystemId) {
|
||||
TEST_F(SystemIdExtractorTest, KeyboxDevice_Success) {
|
||||
ExpectProvisioningType(kClientTokenKeybox);
|
||||
EXPECT_CALL(*crypto_session_, GetTokenFromKeybox(kLevelDefault, NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kKeyboxDataStr), Return(NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kKeyboxDataStr),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
ExpectSet(kKeyboxSystemId);
|
||||
auto extractor = CreateExtractor(kLevelDefault);
|
||||
ASSERT_TRUE(extractor);
|
||||
@@ -421,7 +423,7 @@ TEST_F(SystemIdExtractorTest, KeyboxDevice_Success) {
|
||||
TEST_F(SystemIdExtractorTest, KeyboxDevice_NeedsOtaKeyboxProvisioning) {
|
||||
ExpectProvisioningType(kClientTokenKeybox);
|
||||
EXPECT_CALL(*crypto_session_, GetTokenFromKeybox(kLevelDefault, NotNull()))
|
||||
.WillOnce(Return(NEED_PROVISIONING));
|
||||
.WillOnce(Return(CdmResponseType(NEED_PROVISIONING)));
|
||||
auto extractor = CreateExtractor(kLevelDefault);
|
||||
ASSERT_TRUE(extractor);
|
||||
uint32_t system_id;
|
||||
@@ -432,7 +434,7 @@ TEST_F(SystemIdExtractorTest, KeyboxDevice_NeedsOtaKeyboxProvisioning) {
|
||||
TEST_F(SystemIdExtractorTest, KeyboxDevice_FailedToGetKeyboxData) {
|
||||
ExpectProvisioningType(kClientTokenKeybox);
|
||||
EXPECT_CALL(*crypto_session_, GetTokenFromKeybox(kLevel3, NotNull()))
|
||||
.WillOnce(Return(UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
auto extractor = CreateExtractor(kLevel3);
|
||||
ASSERT_TRUE(extractor);
|
||||
uint32_t system_id;
|
||||
@@ -443,7 +445,8 @@ TEST_F(SystemIdExtractorTest, KeyboxDevice_FailedToParse) {
|
||||
const std::string kShortKeyData = "123456";
|
||||
ExpectProvisioningType(kClientTokenKeybox);
|
||||
EXPECT_CALL(*crypto_session_, GetTokenFromKeybox(kLevel3, NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kShortKeyData), Return(NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kShortKeyData),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
auto extractor = CreateExtractor(kLevel3);
|
||||
ASSERT_TRUE(extractor);
|
||||
uint32_t system_id;
|
||||
@@ -453,7 +456,8 @@ TEST_F(SystemIdExtractorTest, KeyboxDevice_FailedToParse) {
|
||||
TEST_F(SystemIdExtractorTest, OemCertDevice_Success) {
|
||||
ExpectProvisioningType(kClientTokenOemCert);
|
||||
EXPECT_CALL(*crypto_session_, GetTokenFromOemCert(kLevel3, NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kOemCertStr), Return(NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kOemCertStr),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
ExpectSet(kOemCertSystemId);
|
||||
auto extractor = CreateExtractor(kLevel3);
|
||||
ASSERT_TRUE(extractor);
|
||||
@@ -465,7 +469,7 @@ TEST_F(SystemIdExtractorTest, OemCertDevice_Success) {
|
||||
TEST_F(SystemIdExtractorTest, OemCertDevice_FailedToGetCert) {
|
||||
ExpectProvisioningType(kClientTokenOemCert);
|
||||
EXPECT_CALL(*crypto_session_, GetTokenFromOemCert(kLevelDefault, NotNull()))
|
||||
.WillOnce(Return(UNKNOWN_ERROR));
|
||||
.WillOnce(Return(CdmResponseType(UNKNOWN_ERROR)));
|
||||
auto extractor = CreateExtractor(kLevelDefault);
|
||||
ASSERT_TRUE(extractor);
|
||||
uint32_t system_id;
|
||||
@@ -477,7 +481,8 @@ TEST_F(SystemIdExtractorTest, OemCertDevice_FailedToParse) {
|
||||
wvutil::CdmRandom::RandomData(kOemCertStr.size());
|
||||
ExpectProvisioningType(kClientTokenOemCert);
|
||||
EXPECT_CALL(*crypto_session_, GetTokenFromOemCert(kLevelDefault, NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kNotACertChain), Return(NO_ERROR)));
|
||||
.WillOnce(DoAll(SetArgPointee<1>(kNotACertChain),
|
||||
Return(CdmResponseType(NO_ERROR))));
|
||||
auto extractor = CreateExtractor(kLevelDefault);
|
||||
ASSERT_TRUE(extractor);
|
||||
uint32_t system_id;
|
||||
|
||||
@@ -111,6 +111,11 @@ void show_menu(const char* prog_name, const std::string& extra_help_text) {
|
||||
<< " configure the provisioning server url, please include http[s]"
|
||||
<< " in the url" << std::endl
|
||||
<< std::endl;
|
||||
std::cout << " --server_version=N" << std::endl;
|
||||
std::cout << " specify the server version. Tests that are not expected "
|
||||
<< "to pass" << std::endl
|
||||
<< " on this server version will be skipped." << std::endl
|
||||
<< std::endl;
|
||||
|
||||
std::cout << " --qa_provisioning" << std::endl;
|
||||
std::cout << " use the QA provisioning cert and QA test keybox"
|
||||
@@ -313,7 +318,7 @@ CdmResponseType TestCryptoSession::GenerateNonce(uint32_t* nonce) {
|
||||
wvutil::TestSleep::Sleep(1);
|
||||
status = CryptoSession::GenerateNonce(nonce);
|
||||
}
|
||||
return NO_ERROR;
|
||||
return CdmResponseType(NO_ERROR);
|
||||
}
|
||||
|
||||
class TestCryptoSessionFactory : public CryptoSessionFactory {
|
||||
@@ -462,9 +467,7 @@ void WvCdmTestBase::Provision() {
|
||||
|
||||
// Receive and parse response.
|
||||
std::string http_message;
|
||||
ASSERT_TRUE(url_request.GetResponse(&http_message))
|
||||
<< "Failed to get provisioning response";
|
||||
LOGV("http_message: \n%s\n", http_message.c_str());
|
||||
ASSERT_NO_FATAL_FAILURE(url_request.AssertOkResponse(&http_message));
|
||||
|
||||
if (binary_provisioning_) {
|
||||
// extract provisioning response from received message
|
||||
@@ -631,6 +634,8 @@ bool WvCdmTestBase::Initialize(int argc, const char* const argv[],
|
||||
}
|
||||
} else if (arg_prefix == "--test_data_path") {
|
||||
default_config_->set_test_data_path(arg_value);
|
||||
} else if (arg_prefix == "--server_version") {
|
||||
default_config_->set_server_version(atoi(arg_value.c_str()));
|
||||
} else {
|
||||
std::cerr << "Unknown argument " << arg_prefix << std::endl;
|
||||
show_usage = true;
|
||||
@@ -654,8 +659,12 @@ bool WvCdmTestBase::Initialize(int argc, const char* const argv[],
|
||||
<< std::endl;
|
||||
std::cout << "Default Renewal Server: " << default_config_->renewal_server()
|
||||
<< std::endl;
|
||||
std::cout << "Default KeyID: " << default_config_->key_id() << std::endl
|
||||
<< std::endl;
|
||||
std::cout << "Default KeyID: " << default_config_->key_id() << std::endl;
|
||||
if (default_config_->server_version() != 0) {
|
||||
std::cout << "Server Version: " << default_config_->server_version()
|
||||
<< std::endl;
|
||||
}
|
||||
std::cout << std::endl;
|
||||
|
||||
// Figure out which tests are appropriate for OEMCrypto, based on features
|
||||
// supported.
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
#include "error_string_util.h"
|
||||
|
||||
namespace wvcdm {
|
||||
void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) {
|
||||
*os << CdmResponseTypeToString(value);
|
||||
void PrintTo(const CdmResponseEnum& value, ::std::ostream* os) {
|
||||
*os << CdmResponseEnumToString(value);
|
||||
}
|
||||
|
||||
void PrintTo(const enum CdmLicenseType& value, ::std::ostream* os) {
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "wv_cdm_types.h"
|
||||
|
||||
namespace wvcdm {
|
||||
void PrintTo(const enum CdmResponseType& value, ::std::ostream* os);
|
||||
void PrintTo(const enum CdmResponseEnum& value, ::std::ostream* os);
|
||||
void PrintTo(const enum CdmLicenseType& value, ::std::ostream* os);
|
||||
void PrintTo(const enum CdmSecurityLevel& value, ::std::ostream* os);
|
||||
void PrintTo(const enum CdmCertificateType& value, ::std::ostream* os);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <sstream>
|
||||
|
||||
#include "http_socket.h"
|
||||
@@ -21,6 +22,7 @@ const int kReadBufferSize = 1024;
|
||||
const int kConnectTimeoutMs = 15000;
|
||||
const int kWriteTimeoutMs = 12000;
|
||||
const int kReadTimeoutMs = 12000;
|
||||
constexpr int kHttpOk = 200;
|
||||
|
||||
const std::string kGoogleHeaderUpper("X-Google");
|
||||
const std::string kGoogleHeaderLower("x-google");
|
||||
@@ -125,6 +127,17 @@ bool UrlRequest::GetResponse(std::string* message) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void UrlRequest::AssertOkResponse(std::string* message) {
|
||||
ASSERT_TRUE(message);
|
||||
ASSERT_TRUE(GetResponse(message));
|
||||
const int status_code = GetStatusCode(*message);
|
||||
ASSERT_EQ(kHttpOk, status_code)
|
||||
<< "HTTP response from " << socket_.scheme() << "://"
|
||||
<< socket_.domain_name() << ":" << socket_.port()
|
||||
<< socket_.resource_path() << ": (" << message->size() << ") :\n"
|
||||
<< *message;
|
||||
}
|
||||
|
||||
// static
|
||||
int UrlRequest::GetStatusCode(const std::string& response) {
|
||||
const std::string kHttpVersion("HTTP/1.1 ");
|
||||
|
||||
@@ -28,6 +28,8 @@ class UrlRequest {
|
||||
|
||||
bool GetResponse(std::string* message);
|
||||
static int GetStatusCode(const std::string& response);
|
||||
// Get the response, and expect the status is OK.
|
||||
void AssertOkResponse(std::string* message);
|
||||
|
||||
static bool GetDebugHeaderFields(
|
||||
const std::string& response,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user