| Index: media/base/mock_filters.h
|
| diff --git a/media/base/mock_filters.h b/media/base/mock_filters.h
|
| index 3e6f8be44b3aeb027cb264a7b1739afa1835751a..3ebfd940a5cf37d0b333179149ef6d9d42392923 100644
|
| --- a/media/base/mock_filters.h
|
| +++ b/media/base/mock_filters.h
|
| @@ -15,9 +15,12 @@
|
| #include "media/base/audio_decoder.h"
|
| #include "media/base/audio_decoder_config.h"
|
| #include "media/base/audio_renderer.h"
|
| +#include "media/base/cdm_config.h"
|
| #include "media/base/cdm_context.h"
|
| +#include "media/base/cdm_factory.h"
|
| #include "media/base/cdm_key_information.h"
|
| #include "media/base/cdm_promise.h"
|
| +#include "media/base/cdm_promise_adapter.h"
|
| #include "media/base/content_decryption_module.h"
|
| #include "media/base/decoder_buffer.h"
|
| #include "media/base/decryptor.h"
|
| @@ -446,6 +449,124 @@ class MockCdmSessionPromise : public NewSessionCdmPromise {
|
| DISALLOW_COPY_AND_ASSIGN(MockCdmSessionPromise);
|
| };
|
|
|
| +class MockCdm : public ContentDecryptionModule {
|
| + public:
|
| + MockCdm();
|
| +
|
| + // ContentDecryptionModule implementation.
|
| + // As move-only parameters aren't supported by mock methods, convert promises
|
| + // into IDs and pass them to On... methods.
|
| + void SetServerCertificate(const std::vector<uint8_t>& certificate,
|
| + std::unique_ptr<SimpleCdmPromise> promise) override;
|
| + MOCK_METHOD2(OnSetServerCertificate,
|
| + void(const std::vector<uint8_t>& certificate,
|
| + std::unique_ptr<SimpleCdmPromise>& promise));
|
| +
|
| + void CreateSessionAndGenerateRequest(
|
| + CdmSessionType session_type,
|
| + EmeInitDataType init_data_type,
|
| + const std::vector<uint8_t>& init_data,
|
| + std::unique_ptr<NewSessionCdmPromise> promise) override;
|
| + MOCK_METHOD4(OnCreateSessionAndGenerateRequest,
|
| + void(CdmSessionType session_type,
|
| + EmeInitDataType init_data_type,
|
| + const std::vector<uint8_t>& init_data,
|
| + std::unique_ptr<NewSessionCdmPromise>& promise));
|
| +
|
| + void LoadSession(CdmSessionType session_type,
|
| + const std::string& session_id,
|
| + std::unique_ptr<NewSessionCdmPromise> promise) override;
|
| + MOCK_METHOD3(OnLoadSession,
|
| + void(CdmSessionType session_type,
|
| + const std::string& session_id,
|
| + std::unique_ptr<NewSessionCdmPromise>& promise));
|
| +
|
| + void UpdateSession(const std::string& session_id,
|
| + const std::vector<uint8_t>& response,
|
| + std::unique_ptr<SimpleCdmPromise> promise) override;
|
| + MOCK_METHOD3(OnUpdateSession,
|
| + void(const std::string& session_id,
|
| + const std::vector<uint8_t>& response,
|
| + std::unique_ptr<SimpleCdmPromise>& promise));
|
| +
|
| + void CloseSession(const std::string& session_id,
|
| + std::unique_ptr<SimpleCdmPromise> promise) override;
|
| + MOCK_METHOD2(OnCloseSession,
|
| + void(const std::string& session_id,
|
| + std::unique_ptr<SimpleCdmPromise>& promise));
|
| +
|
| + void RemoveSession(const std::string& session_id,
|
| + std::unique_ptr<SimpleCdmPromise> promise) override;
|
| + MOCK_METHOD2(OnRemoveSession,
|
| + void(const std::string& session_id,
|
| + std::unique_ptr<SimpleCdmPromise>& promise));
|
| +
|
| + MOCK_METHOD0(GetCdmContext, CdmContext*());
|
| +
|
| + // As MockCdmFactory returns the MockCdm provided to it, this sets the
|
| + // actual callbacks used when MockCdmFactory::Create() is called.
|
| + void SetCallbacks(
|
| + const SessionMessageCB& session_message_cb,
|
| + const SessionClosedCB& session_closed_cb,
|
| + const SessionKeysChangeCB& session_keys_change_cb,
|
| + const SessionExpirationUpdateCB& session_expiration_update_cb);
|
| + void CallSessionMessageCB(const std::string& session_id,
|
| + ContentDecryptionModule::MessageType message_type,
|
| + const std::vector<uint8_t>& message);
|
| + void CallSessionClosedCB(const std::string& session_id);
|
| + void CallSessionKeysChangeCB(const std::string& session_id,
|
| + bool has_additional_usable_key,
|
| + CdmKeysInfo keys_info);
|
| + void CallSessionExpirationUpdateCB(const std::string& session_id,
|
| + base::Time new_expiry_time);
|
| +
|
| + protected:
|
| + ~MockCdm() override;
|
| +
|
| + private:
|
| + // Callbacks.
|
| + SessionMessageCB session_message_cb_;
|
| + SessionClosedCB session_closed_cb_;
|
| + SessionKeysChangeCB session_keys_change_cb_;
|
| + SessionExpirationUpdateCB session_expiration_update_cb_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(MockCdm);
|
| +};
|
| +
|
| +class MockCdmFactory : public CdmFactory {
|
| + public:
|
| + MockCdmFactory();
|
| + ~MockCdmFactory() override;
|
| +
|
| + // CdmFactory implementation.
|
| + void Create(const std::string& key_system,
|
| + const GURL& security_origin,
|
| + const CdmConfig& cdm_config,
|
| + const SessionMessageCB& session_message_cb,
|
| + const SessionClosedCB& session_closed_cb,
|
| + const SessionKeysChangeCB& session_keys_change_cb,
|
| + const SessionExpirationUpdateCB& session_expiration_update_cb,
|
| + const CdmCreatedCB& cdm_created_cb) override;
|
| +
|
| + // Provide the CDM to be returned by Create(). If not provided, Create()
|
| + // will fail (|cdm_created_cb| will return an error). |before_creation_cb|,
|
| + // if provided, will be called before the CDM is returned.
|
| + // Note: This will take another reference to |cdm|, which it will keep until
|
| + // Create() is called (in which case it will pass ownership to
|
| + // |cdm_created_cb|).
|
| + void Initialize(const scoped_refptr<MockCdm>& cdm,
|
| + const base::Closure& before_creation_cb);
|
| +
|
| + private:
|
| + // CDM to be used for Create(). If not specified, Create() will fail.
|
| + scoped_refptr<MockCdm> cdm_;
|
| +
|
| + // Callback to be used before Create() successfully calls |cdm_created_cb|.
|
| + base::Closure before_creation_cb_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(MockCdmFactory);
|
| +};
|
| +
|
| class MockStreamParser : public StreamParser {
|
| public:
|
| MockStreamParser();
|
|
|