| Index: content/browser/renderer_host/media/audio_output_delegate_unittest.cc
|
| diff --git a/content/browser/renderer_host/media/audio_output_delegate_unittest.cc b/content/browser/renderer_host/media/audio_output_delegate_unittest.cc
|
| index a25d127fe3fc7788e441260997b2fd27f024ecd7..daa82d4c7ede86dad2a4de44576ffa86ed932f1f 100644
|
| --- a/content/browser/renderer_host/media/audio_output_delegate_unittest.cc
|
| +++ b/content/browser/renderer_host/media/audio_output_delegate_unittest.cc
|
| @@ -19,6 +19,7 @@
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/media_observer.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| +#include "content/test/mock_audio_stream_registry.h"
|
| #include "media/audio/fake_audio_log_factory.h"
|
| #include "media/audio/fake_audio_manager.h"
|
| #include "media/base/media_switches.h"
|
| @@ -76,7 +77,6 @@ class MockObserver : public content::MediaObserver {
|
|
|
| class MockEventHandler : public AudioOutputDelegate::EventHandler {
|
| public:
|
| - MOCK_METHOD1(OnStreamStateChanged, void(bool playing));
|
| MOCK_METHOD3(OnStreamCreated,
|
| void(int stream_id,
|
| base::SharedMemory* shared_memory,
|
| @@ -99,7 +99,8 @@ class DummyAudioOutputStream : public media::AudioOutputStream {
|
|
|
| class AudioOutputDelegateTest : public testing::Test {
|
| public:
|
| - AudioOutputDelegateTest() {
|
| + AudioOutputDelegateTest()
|
| + : stream_registry_(new MockAudioStreamRegistry(kRenderProcessId)) {
|
| base::CommandLine::ForCurrentProcess()->AppendSwitch(
|
| switches::kUseFakeDeviceForMediaStream);
|
|
|
| @@ -118,6 +119,15 @@ class AudioOutputDelegateTest : public testing::Test {
|
| base::MakeUnique<MediaStreamManager>(audio_manager_.get());
|
| }
|
|
|
| + ~AudioOutputDelegateTest() override {
|
| + stream_registry_.reset();
|
| + BrowserThread::PostTask(
|
| + BrowserThread::IO, FROM_HERE, base::Bind([]() {
|
| + AudioStreamRegistryImpl::
|
| + DetachAudioStreamsTrackerFromThreadForTesting();
|
| + }));
|
| + }
|
| +
|
| // Test bodies are here, so that we can run them on the IO thread.
|
| void CreateTest(base::Closure done) {
|
| EXPECT_CALL(media_observer_,
|
| @@ -126,9 +136,10 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -138,6 +149,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -150,14 +162,16 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
| {
|
| InSequence s;
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(true));
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(false));
|
| + EXPECT_CALL(*stream_registry_, OutputStreamStateChanged(NotNull(), true));
|
| + EXPECT_CALL(*stream_registry_,
|
| + OutputStreamStateChanged(NotNull(), false));
|
| }
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -169,6 +183,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -181,9 +196,10 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -195,6 +211,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -207,16 +224,19 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
| {
|
| InSequence s;
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(true));
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(false));
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(true));
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(false));
|
| + EXPECT_CALL(*stream_registry_, OutputStreamStateChanged(NotNull(), true));
|
| + EXPECT_CALL(*stream_registry_,
|
| + OutputStreamStateChanged(NotNull(), false));
|
| + EXPECT_CALL(*stream_registry_, OutputStreamStateChanged(NotNull(), true));
|
| + EXPECT_CALL(*stream_registry_,
|
| + OutputStreamStateChanged(NotNull(), false));
|
| }
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -230,6 +250,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -242,14 +263,16 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
| {
|
| InSequence s;
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(true));
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(false));
|
| + EXPECT_CALL(*stream_registry_, OutputStreamStateChanged(NotNull(), true));
|
| + EXPECT_CALL(*stream_registry_,
|
| + OutputStreamStateChanged(NotNull(), false));
|
| }
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -262,6 +285,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -274,9 +298,10 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -289,6 +314,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -301,9 +327,10 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -319,6 +346,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -331,14 +359,16 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
| {
|
| InSequence s;
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(true));
|
| - EXPECT_CALL(event_handler_, OnStreamStateChanged(false));
|
| + EXPECT_CALL(*stream_registry_, OutputStreamStateChanged(NotNull(), true));
|
| + EXPECT_CALL(*stream_registry_,
|
| + OutputStreamStateChanged(NotNull(), false));
|
| }
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -352,6 +382,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -365,9 +396,10 @@ class AudioOutputDelegateTest : public testing::Test {
|
| EXPECT_CALL(event_handler_, OnStreamError(kStreamId));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -379,6 +411,7 @@ class AudioOutputDelegateTest : public testing::Test {
|
| SyncWithAllThreads();
|
|
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
| delegate.reset();
|
| SyncWithAllThreads();
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
|
| @@ -389,10 +422,12 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnCreatingAudioStream(kRenderProcessId, kRenderFrameId));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -411,10 +446,12 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -436,10 +473,12 @@ class AudioOutputDelegateTest : public testing::Test {
|
| OnStreamCreated(kStreamId, NotNull(), NotNull()));
|
| EXPECT_CALL(mirroring_manager_,
|
| AddDiverter(kRenderProcessId, kRenderFrameId, NotNull()));
|
| + EXPECT_CALL(*stream_registry_, RegisterOutputStream(NotNull()));
|
| EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull()));
|
| + EXPECT_CALL(*stream_registry_, DeregisterOutputStream(NotNull()));
|
|
|
| AudioOutputDelegate::UniquePtr delegate = AudioOutputDelegate::Create(
|
| - &event_handler_, audio_manager_.get(),
|
| + &event_handler_, stream_registry_.get(), audio_manager_.get(),
|
| log_factory_.CreateAudioLog(
|
| media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER),
|
| &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId,
|
| @@ -463,6 +502,8 @@ class AudioOutputDelegateTest : public testing::Test {
|
| StrictMock<MockAudioMirroringManager> mirroring_manager_;
|
| StrictMock<MockEventHandler> event_handler_;
|
| StrictMock<MockObserver> media_observer_;
|
| + std::unique_ptr<MockAudioStreamRegistry, BrowserThread::DeleteOnIOThread>
|
| + stream_registry_;
|
| media::FakeAudioLogFactory log_factory_;
|
|
|
| private:
|
|
|