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:
Robert Shih
2022-11-16 10:02:18 -08:00
committed by Edwin Wong
parent ac9641ae13
commit 096b0eda5a
46 changed files with 1726 additions and 1443 deletions

View File

@@ -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));

View File

@@ -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());

View File

@@ -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.

View File

@@ -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";
}

View File

@@ -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_);
}

View File

@@ -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);

View File

@@ -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));

View File

@@ -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();

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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.

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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 ");

View File

@@ -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