Commit 18bace42 authored by Xiaohan Wang's avatar Xiaohan Wang Committed by Commit Bot

media: Remove move-only mock hack in service tests

Test: No functionality change.
Change-Id: I0a6bded2980f75f1e4d6981a3a95c1e13654473f
Reviewed-on: https://chromium-review.googlesource.com/1038404
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarJohn Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555559}
parent 41fc494c
......@@ -25,13 +25,18 @@
#include "url/gurl.h"
#include "url/origin.h"
using testing::Invoke;
using testing::InvokeWithoutArgs;
namespace media {
namespace {
using testing::_;
using testing::Invoke;
using testing::InvokeWithoutArgs;
MATCHER_P(MatchesResult, success, "") {
return arg->success == success;
}
const char kClearKeyKeySystem[] = "org.w3.clearkey";
const char kInvalidKeySystem[] = "invalid.key.system";
const char kSecurityOrigin[] = "https://foo.com";
......@@ -125,8 +130,6 @@ class ServiceTestClient : public service_manager::test::ServiceTestClient,
MockCdmServiceClient* mock_cdm_service_client_ = nullptr;
};
} // namespace
class CdmServiceTest : public service_manager::test::ServiceTest {
public:
CdmServiceTest() : ServiceTest("cdm_service_unittest") {}
......@@ -160,21 +163,17 @@ class CdmServiceTest : public service_manager::test::ServiceTest {
Initialize();
}
// MOCK_METHOD* doesn't support move-only types. Work around this by having
// an extra method.
MOCK_METHOD1(OnCdmInitializedInternal, void(bool result));
void OnCdmInitialized(mojom::CdmPromiseResultPtr result,
int cdm_id,
mojom::DecryptorPtr decryptor) {
OnCdmInitializedInternal(result->success);
}
MOCK_METHOD3(OnCdmInitialized,
void(mojom::CdmPromiseResultPtr result,
int cdm_id,
mojom::DecryptorPtr decryptor));
void InitializeCdm(const std::string& key_system, bool expected_result) {
base::RunLoop run_loop;
cdm_factory_ptr_->CreateCdm(key_system, mojo::MakeRequest(&cdm_ptr_));
cdm_ptr_.set_connection_error_handler(base::BindRepeating(
&CdmServiceTest::CdmConnectionClosed, base::Unretained(this)));
EXPECT_CALL(*this, OnCdmInitializedInternal(expected_result))
EXPECT_CALL(*this, OnCdmInitialized(MatchesResult(expected_result), _, _))
.WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
cdm_ptr_->Initialize(key_system, url::Origin::Create(GURL(kSecurityOrigin)),
CdmConfig(),
......@@ -199,6 +198,8 @@ class CdmServiceTest : public service_manager::test::ServiceTest {
DISALLOW_COPY_AND_ASSIGN(CdmServiceTest);
};
} // namespace
TEST_F(CdmServiceTest, LoadCdm) {
Initialize();
......
......@@ -32,20 +32,26 @@
#include "url/gurl.h"
#include "url/origin.h"
namespace media {
namespace {
using testing::_;
using testing::Invoke;
using testing::InvokeWithoutArgs;
using testing::NiceMock;
using testing::StrictMock;
namespace media {
namespace {
MATCHER_P(MatchesResult, success, "") {
return arg->success == success;
}
#if BUILDFLAG(ENABLE_MOJO_CDM) && !defined(OS_ANDROID)
const char kClearKeyKeySystem[] = "org.w3.clearkey";
const char kInvalidKeySystem[] = "invalid.key.system";
#endif
const char kSecurityOrigin[] = "http://foo.com";
const char kSecurityOrigin[] = "https://foo.com";
class MockRendererClient : public mojom::RendererClient {
public:
......@@ -96,21 +102,18 @@ class MediaServiceTest : public service_manager::test::ServiceTest {
run_loop_.reset(new base::RunLoop());
}
// MOCK_METHOD* doesn't support move only types. Work around this by having
// an extra method.
MOCK_METHOD2(OnCdmInitializedInternal, void(bool result, int cdm_id));
void OnCdmInitialized(mojom::CdmPromiseResultPtr result,
int cdm_id,
mojom::DecryptorPtr decryptor) {
OnCdmInitializedInternal(result->success, cdm_id);
}
MOCK_METHOD3(OnCdmInitialized,
void(mojom::CdmPromiseResultPtr result,
int cdm_id,
mojom::DecryptorPtr decryptor));
void InitializeCdm(const std::string& key_system,
bool expected_result,
int cdm_id) {
interface_factory_->CreateCdm(key_system, mojo::MakeRequest(&cdm_));
EXPECT_CALL(*this, OnCdmInitializedInternal(expected_result, cdm_id))
EXPECT_CALL(*this,
OnCdmInitialized(MatchesResult(expected_result), cdm_id, _))
.WillOnce(InvokeWithoutArgs(run_loop_.get(), &base::RunLoop::Quit));
cdm_->Initialize(key_system, url::Origin::Create(GURL(kSecurityOrigin)),
CdmConfig(),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment