blob: cb0fbd42adf93f6f5ba1488c4f675d91e160fd72 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "media/base/android/mock_media_crypto_context.h"
#include "base/bind.h"
#include "base/callback.h"
#include "base/threading/thread_task_runner_handle.h"
using ::testing::DoAll;
using ::testing::Invoke;
using ::testing::Not;
using ::testing::Return;
using ::testing::SaveArg;
using ::testing::_;
namespace media {
MockMediaCryptoContext::MockMediaCryptoContext(bool has_media_crypto_context)
: has_media_crypto_context_(has_media_crypto_context) {
if (!has_media_crypto_context_)
return;
// Provide some sane defaults.
ON_CALL(*this, RegisterPlayer(_, _))
.WillByDefault(DoAll(SaveArg<0>(&new_key_cb), SaveArg<1>(&cdm_unset_cb),
Return(kRegistrationId)));
ON_CALL(*this, SetMediaCryptoReadyCB(_))
.WillByDefault(SaveArg<0>(&media_crypto_ready_cb));
// Don't set any expectation on the number of correct calls to
// UnregisterPlayer, but expect no calls with the wrong registration id.
EXPECT_CALL(*this, UnregisterPlayer(Not(kRegistrationId))).Times(0);
}
MockMediaCryptoContext::~MockMediaCryptoContext() {}
MediaCryptoContext* MockMediaCryptoContext::GetMediaCryptoContext() {
return has_media_crypto_context_ ? this : nullptr;
}
} // namespace media