Commit 3f6d2857 authored by Scott Violet's avatar Scott Violet Committed by Commit Bot

Revert "Fetch and apply Multiroom info in CAOS"

This reverts commit df6e77ca.

Reason for revert: Reverting as suspect of failing case_media_unittests . https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Cast%20Audio%20Linux/16824 :

[ RUN      ] CastAudioManagerTest.MakeAudioOutputStreamProxy
../../chromecast/media/audio/cast_audio_manager_unittest.cc:106: Failure
Actual function call count doesn't match EXPECT_CALL(*backend, Initialize())...
         Expected: to be called once
           Actual: never called - unsatisfied and active
Stack trace:
#0 0x00000054cffc testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop()
#1 0x00000054c9d9 testing::internal::AssertHelper::operator=()
#2 0x00000053ddd3 testing::internal::GoogleTestFailureReporter::ReportFailure()
#3 0x0000005405b6 testing::internal::UntypedFunctionMockerBase::VerifyAndClearExpectationsLocked()
#4 0x0000003e7142 chromecast::media::MockCmaBackend::~MockCmaBackend()
#5 0x0000003a7340 testing::StrictMock<>::~StrictMock()
#6 0x0000003a44b5 chromecast::media::(anonymous namespace)::CastAudioManagerTest_MakeAudioOutputStreamProxy_Test::TestBody()
../../chromecast/media/audio/cast_audio_manager_unittest.cc:105: Failure
Actual function call count doesn't match EXPECT_CALL(*backend, CreateAudioDecoder())...
         Expected: to be called once
           Actual: never called - unsatisfied and active

Original change's description:
> Fetch and apply Multiroom info in CAOS
> 
> CastAudioOutputStream can now use internal backends with multizone. In
> order for multizone to work, we first need to retrieve the multiroom
> info and pass it to the backend.
> 
> BUG=b:111694183
> TEST=Build, cast_media_unittests
> 
> Change-Id: I128a6b0cc1a389d01102007244fdb5594dd4c637
> Reviewed-on: https://chromium-review.googlesource.com/1145892
> Reviewed-by: Kenneth MacKay <kmackay@chromium.org>
> Reviewed-by: Luke Halliwell <halliwell@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Commit-Queue: Aidan Wolter <awolter@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#578670}

TBR=sky@chromium.org,gab@chromium.org,halliwell@chromium.org,jameswest@chromium.org,kmackay@chromium.org,awolter@chromium.org

Change-Id: I519349d1cd87709c2a1bd39299420b5a7df7bcee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b:111694183
Reviewed-on: https://chromium-review.googlesource.com/1153309Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578685}
parent 9d0fd86c
......@@ -230,8 +230,6 @@ CastContentBrowserClient::CreateAudioManager(
std::make_unique<::media::AudioThreadImpl>(), audio_log_factory,
base::BindRepeating(&CastContentBrowserClient::GetCmaBackendFactory,
base::Unretained(this)),
content::BrowserThread::GetTaskRunnerForThread(
content::BrowserThread::UI),
GetMediaTaskRunner(), use_mixer);
#endif // defined(USE_ALSA)
}
......
......@@ -63,14 +63,9 @@ test("cast_media_unittests") {
"//base/test:test_support",
"//chromecast/base",
"//chromecast/base/metrics:test_support",
"//chromecast/common/mojom",
"//chromecast/media/cma:test_support",
"//chromecast/public",
"//content/test:test_support",
"//media:test_support",
"//media/mojo:test_support",
"//mojo/core/embedder",
"//services/service_manager/public/cpp",
"//testing/gmock",
"//testing/gtest",
]
......
include_rules = [
"+chromecast/common/mojom",
"+content/public/browser/browser_thread.h",
"+content/public/common/service_manager_connection.h",
"+content/public/test/test_browser_thread.h",
"+content/public/test/test_browser_thread_bundle.h",
"+content/public/test/test_utils.h",
"+crypto",
"+media/audio",
"+media/base",
"+media/cdm",
"+mojo/core/embedder/embedder.h",
"+mojo/public/cpp/bindings/binding.h",
"+ui/gfx/geometry",
"+ui/gfx/overlay_transform.h",
"+services/service_manager/public",
]
......@@ -15,28 +15,24 @@ cast_source_set("audio") {
"cast_audio_output_stream.h",
]
if (use_alsa) {
sources += [
"cast_audio_manager_alsa.cc",
"cast_audio_manager_alsa.h",
]
}
deps = [
"//base",
"//chromecast/base",
"//chromecast/common/mojom",
"//chromecast/media/base",
"//chromecast/media/cma/backend",
"//chromecast/media/cma/base",
"//chromecast/public/media",
"//content/public/common",
"//media",
"//media:shared_memory_support",
"//services/service_manager/public/cpp",
]
if (use_alsa) {
sources += [
"cast_audio_manager_alsa.cc",
"cast_audio_manager_alsa.h",
]
deps += [ "//content/public/browser" ]
}
configs += [ "//media/audio:platform_config" ]
}
......
......@@ -36,12 +36,10 @@ CastAudioManager::CastAudioManager(
std::unique_ptr<::media::AudioThread> audio_thread,
::media::AudioLogFactory* audio_log_factory,
base::RepeatingCallback<CmaBackendFactory*()> backend_factory_getter,
scoped_refptr<base::SingleThreadTaskRunner> browser_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> backend_task_runner,
bool use_mixer)
: AudioManagerBase(std::move(audio_thread), audio_log_factory),
backend_factory_getter_(std::move(backend_factory_getter)),
browser_task_runner_(std::move(browser_task_runner)),
backend_task_runner_(std::move(backend_task_runner)) {
DCHECK(backend_factory_getter_);
if (use_mixer)
......@@ -108,8 +106,7 @@ CmaBackendFactory* CastAudioManager::backend_factory() {
if (mixer_)
return mixer_->MakeStream(params);
else
return new CastAudioOutputStream(params, browser_task_runner_,
browser_connector_, this);
return new CastAudioOutputStream(params, this);
}
::media::AudioOutputStream* CastAudioManager::MakeLowLatencyOutputStream(
......@@ -122,8 +119,7 @@ CmaBackendFactory* CastAudioManager::backend_factory() {
if (mixer_)
return mixer_->MakeStream(params);
else
return new CastAudioOutputStream(params, browser_task_runner_,
browser_connector_, this);
return new CastAudioOutputStream(params, this);
}
::media::AudioInputStream* CastAudioManager::MakeLinearInputStream(
......@@ -172,15 +168,9 @@ CmaBackendFactory* CastAudioManager::backend_factory() {
// Keep a reference to this stream for proper behavior on
// CastAudioManager::ReleaseOutputStream.
mixer_output_stream_.reset(new CastAudioOutputStream(
params, browser_task_runner_, browser_connector_, this));
mixer_output_stream_.reset(new CastAudioOutputStream(params, this));
return mixer_output_stream_.get();
}
void CastAudioManager::SetBrowserConnectorForTesting(
service_manager::Connector* browser_connector) {
browser_connector_ = browser_connector;
}
} // namespace media
} // namespace chromecast
......@@ -11,7 +11,6 @@
#include "base/macros.h"
#include "base/single_thread_task_runner.h"
#include "media/audio/audio_manager_base.h"
#include "services/service_manager/public/cpp/connector.h"
namespace chromecast {
......@@ -26,7 +25,6 @@ class CastAudioManager : public ::media::AudioManagerBase {
std::unique_ptr<::media::AudioThread> audio_thread,
::media::AudioLogFactory* audio_log_factory,
base::RepeatingCallback<CmaBackendFactory*()> backend_factory_getter,
scoped_refptr<base::SingleThreadTaskRunner> browser_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> backend_task_runner,
bool use_mixer);
~CastAudioManager() override;
......@@ -46,9 +44,6 @@ class CastAudioManager : public ::media::AudioManagerBase {
return backend_task_runner_.get();
}
void SetBrowserConnectorForTesting(
service_manager::Connector* browser_connector);
protected:
// AudioManagerBase implementation.
::media::AudioOutputStream* MakeLinearOutputStream(
......@@ -79,14 +74,9 @@ class CastAudioManager : public ::media::AudioManagerBase {
base::RepeatingCallback<CmaBackendFactory*()> backend_factory_getter_;
CmaBackendFactory* backend_factory_ = nullptr;
scoped_refptr<base::SingleThreadTaskRunner> browser_task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> backend_task_runner_;
std::unique_ptr<::media::AudioOutputStream> mixer_output_stream_;
std::unique_ptr<CastAudioMixer> mixer_;
// Used in tests to override the default browser connector.
service_manager::Connector* browser_connector_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(CastAudioManager);
};
......
......@@ -9,7 +9,6 @@
#include "base/memory/free_deleter.h"
#include "chromecast/media/cma/backend/cma_backend_factory.h"
#include "content/public/browser/browser_thread.h"
#include "media/audio/alsa/alsa_input.h"
#include "media/audio/alsa/alsa_wrapper.h"
......@@ -40,8 +39,6 @@ CastAudioManagerAlsa::CastAudioManagerAlsa(
: CastAudioManager(std::move(audio_thread),
audio_log_factory,
std::move(backend_factory_getter),
content::BrowserThread::GetTaskRunnerForThread(
content::BrowserThread::UI),
backend_task_runner,
use_mixer),
wrapper_(new ::media::AlsaWrapper()) {}
......
......@@ -9,15 +9,11 @@
#include <utility>
#include "base/bind.h"
#include "base/test/scoped_task_environment.h"
#include "chromecast/common/mojom/multiroom.mojom.h"
#include "chromecast/media/audio/cast_audio_output_stream.h"
#include "base/test/test_message_loop.h"
#include "chromecast/media/cma/test/mock_cma_backend.h"
#include "chromecast/media/cma/test/mock_cma_backend_factory.h"
#include "chromecast/media/cma/test/mock_multiroom_manager.h"
#include "media/audio/fake_audio_log_factory.h"
#include "media/audio/test_audio_thread.h"
#include "services/service_manager/public/cpp/connector.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -26,15 +22,6 @@ using testing::Invoke;
using testing::Return;
using testing::StrictMock;
namespace {
constexpr char kChromecastServiceName[] = "chromecast";
std::unique_ptr<service_manager::Connector> CreateConnector() {
service_manager::mojom::ConnectorRequest request;
return service_manager::Connector::Create(&request);
}
} // namespace
namespace chromecast {
namespace media {
namespace {
......@@ -47,53 +34,26 @@ const ::media::AudioParameters kDefaultAudioParams(
class CastAudioManagerTest : public testing::Test {
public:
CastAudioManagerTest()
: media_thread_("CastMediaThread"), connector_(CreateConnector()) {
CastAudioManagerTest() : media_thread_("CastMediaThread") {
CHECK(media_thread_.Start());
// Set the test connector to override interface bindings.
service_manager::Connector::TestApi connector_test_api(connector_.get());
connector_test_api.OverrideBinderForTesting(
service_manager::Identity(kChromecastServiceName),
mojom::MultiroomManager::Name_,
base::BindRepeating(&CastAudioManagerTest::BindMultiroomManager,
base::Unretained(this)));
backend_factory_ = std::make_unique<MockCmaBackendFactory>();
audio_manager_ = std::make_unique<CastAudioManager>(
std::make_unique<::media::TestAudioThread>(), &audio_log_factory_,
base::BindRepeating(&CastAudioManagerTest::GetCmaBackendFactory,
base::Unretained(this)),
scoped_task_environment_.GetMainThreadTaskRunner(),
media_thread_.task_runner(), false);
audio_manager_->SetBrowserConnectorForTesting(connector_.get());
}
~CastAudioManagerTest() override { audio_manager_->Shutdown(); }
CmaBackendFactory* GetCmaBackendFactory() { return backend_factory_.get(); }
// Binds |multiroom_manager_| to the interface requested through the test
// connector.
void BindMultiroomManager(mojo::ScopedMessagePipeHandle handle) {
multiroom_manager_.Bind(std::move(handle));
}
protected:
bool OpenStream(::media::AudioOutputStream* stream) {
bool success = stream->Open();
media_thread_.FlushForTesting();
scoped_task_environment_.RunUntilIdle();
media_thread_.FlushForTesting();
return success;
}
base::test::ScopedTaskEnvironment scoped_task_environment_;
base::TestMessageLoop message_loop_;
base::Thread media_thread_;
::media::FakeAudioLogFactory audio_log_factory_;
std::unique_ptr<CastAudioManager> audio_manager_;
std::unique_ptr<MockCmaBackendFactory> backend_factory_;
std::unique_ptr<service_manager::Connector> connector_;
MockMultiroomManager multiroom_manager_;
};
TEST_F(CastAudioManagerTest, MakeAudioOutputStreamProxy) {
......@@ -114,7 +74,7 @@ TEST_F(CastAudioManagerTest, MakeAudioOutputStreamProxy) {
::media::AudioOutputStream* stream =
audio_manager_->MakeAudioOutputStreamProxy(kDefaultAudioParams,
std::string());
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
stream->Close();
}
......
......@@ -11,14 +11,13 @@
#include <vector>
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
#include "base/test/scoped_task_environment.h"
#include "base/time/time.h"
#include "chromecast/media/audio/cast_audio_manager.h"
#include "chromecast/media/audio/cast_audio_output_stream.h"
#include "chromecast/media/cma/backend/cma_backend_factory.h"
#include "media/audio/test_audio_thread.h"
#include "services/service_manager/public/cpp/connector.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -65,15 +64,9 @@ class MockAudioSourceCallback
class MockCastAudioOutputStream : public CastAudioOutputStream {
public:
MockCastAudioOutputStream(
const ::media::AudioParameters& audio_params,
scoped_refptr<base::SingleThreadTaskRunner> browser_task_runner,
service_manager::Connector* browser_connector,
CastAudioManager* audio_manager)
: CastAudioOutputStream(audio_params,
browser_task_runner,
browser_connector,
audio_manager) {}
MockCastAudioOutputStream(const ::media::AudioParameters& audio_params,
CastAudioManager* audio_manager)
: CastAudioOutputStream(audio_params, audio_manager) {}
MOCK_METHOD0(Open, bool());
MOCK_METHOD0(Close, void());
......@@ -103,7 +96,6 @@ class MockCastAudioManager : public CastAudioManager {
base::BindRepeating(&MockCastAudioManager::GetCmaBackendFactory,
base::Unretained(this)),
nullptr,
nullptr,
true /* use_mixer */) {
ON_CALL(*this, ReleaseOutputStream(_))
.WillByDefault(
......@@ -125,18 +117,14 @@ class MockCastAudioManager : public CastAudioManager {
// Generates StrictMocks of Mixer, Manager, and Mixer OutputStream.
class CastAudioMixerTest : public ::testing::Test {
public:
CastAudioMixerTest()
: scoped_task_environment_(
base::test::ScopedTaskEnvironment::MainThreadType::UI),
source_callback_(nullptr) {}
CastAudioMixerTest() : source_callback_(nullptr) {}
~CastAudioMixerTest() override {}
protected:
void SetUp() override {
mock_manager_.reset(new StrictMock<MockCastAudioManager>());
mock_mixer_stream_.reset(new StrictMock<MockCastAudioOutputStream>(
GetAudioParams(), scoped_task_environment_.GetMainThreadTaskRunner(),
nullptr, mock_manager_.get()));
GetAudioParams(), mock_manager_.get()));
ON_CALL(*mock_manager_, MakeMixerOutputStream(_))
.WillByDefault(Return(mock_mixer_stream_.get()));
......@@ -156,7 +144,7 @@ class CastAudioMixerTest : public ::testing::Test {
GetAudioParams(), "", ::media::AudioManager::LogCallback());
}
base::test::ScopedTaskEnvironment scoped_task_environment_;
base::MessageLoop message_loop_;
std::unique_ptr<MockCastAudioManager> mock_manager_;
std::unique_ptr<MockCastAudioOutputStream> mock_mixer_stream_;
......
......@@ -8,10 +8,8 @@
#include <memory>
#include "base/macros.h"
#include "base/single_thread_task_runner.h"
#include "media/audio/audio_io.h"
#include "media/base/audio_parameters.h"
#include "services/service_manager/public/cpp/connector.h"
namespace chromecast {
namespace media {
......@@ -20,13 +18,8 @@ class CastAudioManager;
class CastAudioOutputStream : public ::media::AudioOutputStream {
public:
CastAudioOutputStream(
const ::media::AudioParameters& audio_params,
scoped_refptr<base::SingleThreadTaskRunner> browser_task_runner,
// If the |browser_connector| is nullptr, then it will be fetched from the
// BrowserThread before usage.
service_manager::Connector* browser_connector,
CastAudioManager* audio_manager);
CastAudioOutputStream(const ::media::AudioParameters& audio_params,
CastAudioManager* audio_manager);
~CastAudioOutputStream() override;
// ::media::AudioOutputStream implementation.
......@@ -37,17 +30,10 @@ class CastAudioOutputStream : public ::media::AudioOutputStream {
void SetVolume(double volume) override;
void GetVolume(double* volume) override;
void BindConnectorRequest(
service_manager::mojom::ConnectorRequest connector_request);
private:
class Backend;
void BindConnectorRequestOnBrowserTaskRunner(
service_manager::mojom::ConnectorRequest connector_request);
const ::media::AudioParameters audio_params_;
scoped_refptr<base::SingleThreadTaskRunner> browser_task_runner_;
service_manager::Connector* browser_connector_ = nullptr;
CastAudioManager* const audio_manager_;
double volume_;
......
......@@ -14,20 +14,14 @@
#include "base/run_loop.h"
#include "base/test/scoped_task_environment.h"
#include "base/time/time.h"
#include "chromecast/common/mojom/multiroom.mojom.h"
#include "chromecast/media/audio/cast_audio_manager.h"
#include "chromecast/media/audio/cast_audio_mixer.h"
#include "chromecast/media/cma/backend/cma_backend.h"
#include "chromecast/media/cma/base/decoder_buffer_base.h"
#include "chromecast/media/cma/test/mock_cma_backend_factory.h"
#include "chromecast/media/cma/test/mock_multiroom_manager.h"
#include "chromecast/public/task_runner.h"
#include "content/public/test/test_browser_thread.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "media/audio/mock_audio_source_callback.h"
#include "media/audio/test_audio_thread.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "services/service_manager/public/cpp/connector.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -41,12 +35,6 @@ namespace {
const char kDefaultDeviceId[] = "";
const int64_t kDelayUs = 123;
const int64_t kDelayTimestampUs = 123456789;
constexpr char kChromecastServiceName[] = "chromecast";
std::unique_ptr<service_manager::Connector> CreateConnector() {
service_manager::mojom::ConnectorRequest request;
return service_manager::Connector::Create(&request);
}
int OnMoreData(base::TimeDelta /* delay */,
base::TimeTicks /* delay_timestamp */,
......@@ -212,26 +200,10 @@ class CastAudioOutputStreamTest : public ::testing::Test {
format_(::media::AudioParameters::AUDIO_PCM_LINEAR),
channel_layout_(::media::CHANNEL_LAYOUT_MONO),
sample_rate_(::media::AudioParameters::kAudioCDSampleRate),
frames_per_buffer_(256),
connector_(CreateConnector()) {
// Set the test connector to override interface bindings.
service_manager::Connector::TestApi connector_test_api(connector_.get());
connector_test_api.OverrideBinderForTesting(
service_manager::Identity(kChromecastServiceName),
mojom::MultiroomManager::Name_,
base::BindRepeating(&CastAudioOutputStreamTest::BindMultiroomManager,
base::Unretained(this)));
}
frames_per_buffer_(256) {}
~CastAudioOutputStreamTest() override {}
CmaBackendFactory* GetCmaBackendFactory() { return backend_factory_.get(); }
// Binds |multiroom_manager_| to the interface requested through the test
// connector.
void BindMultiroomManager(mojo::ScopedMessagePipeHandle handle) {
multiroom_manager_.Bind(std::move(handle));
}
protected:
void SetUp() override {
CHECK(media_thread_.Start());
......@@ -246,9 +218,7 @@ class CastAudioOutputStreamTest : public ::testing::Test {
std::make_unique<::media::TestAudioThread>(), nullptr,
base::BindRepeating(&CastAudioOutputStreamTest::GetCmaBackendFactory,
base::Unretained(this)),
scoped_task_environment_.GetMainThreadTaskRunner(),
media_thread_.task_runner(), false);
audio_manager_->SetBrowserConnectorForTesting(connector_.get());
EXPECT_EQ(backend_factory_.get(), audio_manager_->backend_factory());
}
......@@ -272,17 +242,6 @@ class CastAudioOutputStreamTest : public ::testing::Test {
::media::AudioManager::LogCallback());
}
bool OpenStream(::media::AudioOutputStream* stream) {
bool success = stream->Open();
// TODO(awolter) Determine a better way to ensure that all the tasks are
// flushed.
media_thread_.FlushForTesting();
scoped_task_environment_.RunUntilIdle();
media_thread_.FlushForTesting();
media_thread_.FlushForTesting();
return success;
}
// Runs the messsage loop for duration equivalent to the given number of
// audio |frames|.
void RunMessageLoopFor(int frames) {
......@@ -306,8 +265,6 @@ class CastAudioOutputStreamTest : public ::testing::Test {
::media::ChannelLayout channel_layout_;
int sample_rate_;
int frames_per_buffer_;
std::unique_ptr<service_manager::Connector> connector_;
MockMultiroomManager multiroom_manager_;
};
TEST_F(CastAudioOutputStreamTest, Format) {
......@@ -318,7 +275,7 @@ TEST_F(CastAudioOutputStreamTest, Format) {
format_ = format[i];
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -338,7 +295,7 @@ TEST_F(CastAudioOutputStreamTest, ChannelLayout) {
channel_layout_ = layout[i];
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -354,7 +311,7 @@ TEST_F(CastAudioOutputStreamTest, SampleRate) {
sample_rate_ = ::media::AudioParameters::kAudioCDSampleRate;
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -368,7 +325,7 @@ TEST_F(CastAudioOutputStreamTest, DeviceState) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
FakeCmaBackend* backend = GetBackend();
......@@ -392,7 +349,7 @@ TEST_F(CastAudioOutputStreamTest, DeviceState) {
TEST_F(CastAudioOutputStreamTest, PushFrame) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -429,7 +386,7 @@ TEST_F(CastAudioOutputStreamTest, PushFrame) {
TEST_F(CastAudioOutputStreamTest, DeviceBusy) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -462,7 +419,7 @@ TEST_F(CastAudioOutputStreamTest, DeviceBusy) {
TEST_F(CastAudioOutputStreamTest, DeviceError) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -485,7 +442,7 @@ TEST_F(CastAudioOutputStreamTest, DeviceError) {
TEST_F(CastAudioOutputStreamTest, DeviceAsyncError) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
EXPECT_TRUE(OpenStream(stream));
EXPECT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -496,7 +453,7 @@ TEST_F(CastAudioOutputStreamTest, DeviceAsyncError) {
EXPECT_CALL(source_callback, OnMoreData(_, _, _, _))
.WillRepeatedly(Invoke(OnMoreData));
// AudioOutputStream must report error to source callback.
EXPECT_CALL(source_callback, OnError()).Times(testing::AtLeast(1));
EXPECT_CALL(source_callback, OnError());
stream->Start(&source_callback);
RunMessageLoopFor(5);
......@@ -510,7 +467,7 @@ TEST_F(CastAudioOutputStreamTest, DeviceAsyncError) {
TEST_F(CastAudioOutputStreamTest, Volume) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
ASSERT_TRUE(OpenStream(stream));
ASSERT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......@@ -531,7 +488,7 @@ TEST_F(CastAudioOutputStreamTest, Volume) {
TEST_F(CastAudioOutputStreamTest, StartStopStart) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
ASSERT_TRUE(OpenStream(stream));
ASSERT_TRUE(stream->Open());
::media::MockAudioSourceCallback source_callback;
EXPECT_CALL(source_callback, OnMoreData(_, _, _, _))
......@@ -553,14 +510,14 @@ TEST_F(CastAudioOutputStreamTest, StartStopStart) {
TEST_F(CastAudioOutputStreamTest, CloseWithoutStart) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
ASSERT_TRUE(OpenStream(stream));
ASSERT_TRUE(stream->Open());
stream->Close();
}
TEST_F(CastAudioOutputStreamTest, AudioDelay) {
::media::AudioOutputStream* stream = CreateStream();
ASSERT_TRUE(stream);
ASSERT_TRUE(OpenStream(stream));
ASSERT_TRUE(stream->Open());
FakeAudioDecoder* audio_decoder = GetAudio();
ASSERT_TRUE(audio_decoder);
......
......@@ -29,12 +29,10 @@ cast_source_set("test_support") {
"test/mock_frame_consumer.h",
"test/mock_frame_provider.cc",
"test/mock_frame_provider.h",
"test/mock_multiroom_manager.h",
]
deps = [
"//base",
"//chromecast/common/mojom",
"//chromecast/media/cma/backend",
"//chromecast/media/cma/backend:null_video",
"//chromecast/media/cma/base",
......
include_rules = [
"+chromecast/common/mojom",
"+media/filters",
"+media/video",
]
// Copyright 2018 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.
#ifndef CHROMECAST_MEDIA_CMA_TEST_MOCK_MULTIROOM_MANAGER_H_
#define CHROMECAST_MEDIA_CMA_TEST_MOCK_MULTIROOM_MANAGER_H_
#include <string>
#include <utility>
#include "base/bind.h"
#include "chromecast/common/mojom/multiroom.mojom.h"
#include "mojo/public/cpp/bindings/binding.h"
namespace chromecast {
namespace media {
class MockMultiroomManager : public mojom::MultiroomManager {
public:
MockMultiroomManager();
~MockMultiroomManager() override;
void Bind(mojo::ScopedMessagePipeHandle handle) {
binding_.Close();
binding_.Bind(mojom::MultiroomManagerRequest(std::move(handle)));
}
void GetMultiroomInfo(const std::string& session_id,
GetMultiroomInfoCallback callback) override;
private:
mojo::Binding<mojom::MultiroomManager> binding_;
};
inline MockMultiroomManager::MockMultiroomManager() : binding_(this) {}
inline MockMultiroomManager::~MockMultiroomManager() = default;
inline void MockMultiroomManager::GetMultiroomInfo(
const std::string& session_id,
GetMultiroomInfoCallback callback) {
std::move(callback).Run(chromecast::mojom::MultiroomInfo::New());
}
} // namespace media
} // namespace chromecast
#endif // CHROMECAST_MEDIA_CMA_TEST_MOCK_MULTIROOM_MANAGER_H_
......@@ -7,7 +7,6 @@
#include "base/test/test_suite.h"
#include "build/build_config.h"
#include "media/base/media.h"
#include "mojo/core/embedder/embedder.h"
class CastMediaTestSuite : public base::TestSuite {
public:
......@@ -30,7 +29,6 @@ void CastMediaTestSuite::Initialize() {
int main(int argc, char** argv) {
CastMediaTestSuite test_suite(argc, argv);
mojo::core::Init();
return base::LaunchUnitTests(
argc, argv,
......
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