Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: content/browser/renderer_host/media/audio_output_delegate_unittest.cc

Issue 2578983003: Add AudioStreamRegistry. Move stream counting logic (Closed)
Patch Set: Thread checks. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 d508735eaae807e869fd03c1a57564c67be16b18..26bf59cc15966ae997ae29be5be8c0652b167512 100644
--- a/content/browser/renderer_host/media/audio_output_delegate_unittest.cc
+++ b/content/browser/renderer_host/media/audio_output_delegate_unittest.cc
@@ -20,6 +20,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"
@@ -77,7 +78,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,
@@ -100,7 +100,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);
@@ -119,6 +120,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_,
@@ -127,9 +137,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,
@@ -139,6 +150,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);
@@ -151,14 +163,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,
@@ -170,6 +184,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);
@@ -182,9 +197,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,
@@ -196,6 +212,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);
@@ -208,16 +225,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,
@@ -231,6 +251,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);
@@ -243,14 +264,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,
@@ -263,6 +286,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);
@@ -275,9 +299,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,
@@ -290,6 +315,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);
@@ -302,9 +328,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,
@@ -320,6 +347,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);
@@ -332,14 +360,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,
@@ -353,6 +383,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);
@@ -366,9 +397,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,
@@ -380,6 +412,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);
@@ -390,10 +423,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,
@@ -412,10 +447,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,
@@ -437,10 +474,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,
@@ -464,6 +503,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:

Powered by Google App Engine
This is Rietveld 408576698