Source release v3.0.2
This commit is contained in:
@@ -76,6 +76,16 @@ const std::string kCencPersistentInitData = a2bs_hex(
|
||||
// pssh data:
|
||||
"08011a0d7769646576696e655f746573"
|
||||
"74220d6f66666c696e655f636c697032");
|
||||
const std::string kInvalidCencInitData = a2bs_hex(
|
||||
"0000000c" // blob size
|
||||
"61736466" // "asdf" (wrong box type)
|
||||
"01020304"); // nonsense
|
||||
const std::string kNonWidevineCencInitData = a2bs_hex(
|
||||
"00000020" // blob size
|
||||
"70737368" // "pssh"
|
||||
"00000000" // flags
|
||||
"000102030405060708090a0b0c0d0e0f" // unknown system id
|
||||
"00000000"); // pssh data size
|
||||
const std::string kWebMInitData = a2bs_hex("deadbeefdeadbeefdeadbeefdeadbeef");
|
||||
const std::string kKeyIdsInitData =
|
||||
"{\"kids\":[\"67ef0gd8pvfd0\",\"77ef0gd8pvfd0\"]}";
|
||||
@@ -582,6 +592,23 @@ TEST_F(CdmTest, GenerateRequest) {
|
||||
EXPECT_EQ(Cdm::kInvalidAccess, status);
|
||||
Mock::VerifyAndClear(this);
|
||||
|
||||
// Try to pass invalid CENC init data.
|
||||
status = cdm_->createSession(Cdm::kTemporary, &session_id);
|
||||
ASSERT_EQ(Cdm::kSuccess, status);
|
||||
EXPECT_CALL(*this, onMessage(session_id, Cdm::kLicenseRequest, _)).Times(0);
|
||||
status = cdm_->generateRequest(session_id, Cdm::kCenc, kInvalidCencInitData);
|
||||
EXPECT_EQ(Cdm::kNotSupported, status);
|
||||
Mock::VerifyAndClear(this);
|
||||
|
||||
// Try to pass non-Widevine CENC init data.
|
||||
status = cdm_->createSession(Cdm::kTemporary, &session_id);
|
||||
ASSERT_EQ(Cdm::kSuccess, status);
|
||||
EXPECT_CALL(*this, onMessage(session_id, Cdm::kLicenseRequest, _)).Times(0);
|
||||
status = cdm_->generateRequest(session_id, Cdm::kCenc,
|
||||
kNonWidevineCencInitData);
|
||||
EXPECT_EQ(Cdm::kNotSupported, status);
|
||||
Mock::VerifyAndClear(this);
|
||||
|
||||
// Try a bogus session ID.
|
||||
EXPECT_CALL(*this, onMessage(_, _, _)).Times(0);
|
||||
status = cdm_->generateRequest(kBogusSessionId, Cdm::kCenc, kCencInitData);
|
||||
|
||||
@@ -72,6 +72,7 @@ int main(int argc, char** argv) {
|
||||
Cdm::Status status = Cdm::initialize(
|
||||
Cdm::kNoSecureOutput, client_info, g_host, g_host, g_host, &cert_request,
|
||||
static_cast<Cdm::LogLevel>(verbosity));
|
||||
(void)status; // status is now used when assertions are turned off.
|
||||
assert(status == Cdm::kSuccess);
|
||||
assert(cert_request.needed == false);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user