Index: content/renderer/media/audio_renderer_impl_unittest.cc |
diff --git a/content/renderer/media/audio_renderer_impl_unittest.cc b/content/renderer/media/audio_renderer_impl_unittest.cc |
index 89b6fdd3836964815f86fdc6b54352d0c632605e..3a653dbd6a296c120c58ac89e2a4cb40e508bc81 100644 |
--- a/content/renderer/media/audio_renderer_impl_unittest.cc |
+++ b/content/renderer/media/audio_renderer_impl_unittest.cc |
@@ -10,7 +10,6 @@ |
#include "base/time.h" |
#include "content/common/child_process.h" |
#include "content/common/child_thread.h" |
-#include "content/common/media/audio_messages.h" |
#include "content/renderer/media/audio_renderer_impl.h" |
#include "content/renderer/mock_content_renderer_client.h" |
#include "content/renderer/render_process.h" |
@@ -44,41 +43,6 @@ class MockRenderProcess : public RenderProcess { |
}; |
} |
-// This class defines a set of methods which will be used in combination |
-// with NewRunnableMethod to form tasks which will be posted on the |
-// IO thread. All methods emulate AudioMessageFilter::Delegate calls. |
-class DelegateCaller : public base::RefCountedThreadSafe<DelegateCaller> { |
- public: |
- explicit DelegateCaller(AudioRendererImpl* renderer) |
- : renderer_(renderer) {} |
- |
- void OnCreated(base::SharedMemoryHandle handle, uint32 length) { |
- if (renderer_->latency_type() == AudioRendererImpl::kHighLatency) { |
- renderer_->OnCreated(handle, length); |
- } else { |
- renderer_->OnLowLatencyCreated(handle, 0, length); |
- } |
- } |
- void OnStateChanged(AudioStreamState state) { |
- renderer_->OnStateChanged(state); |
- } |
- void OnRequestPacket(AudioBuffersState buffers_state) { |
- renderer_->OnRequestPacket(buffers_state); |
- } |
- void OnVolume(double volume) { |
- renderer_->OnVolume(volume); |
- } |
- void DestroyCurrentMessageLoop() { |
- renderer_->WillDestroyCurrentMessageLoop(); |
- } |
- private: |
- friend class base::RefCountedThreadSafe<DelegateCaller>; |
- virtual ~DelegateCaller() {} |
- |
- scoped_refptr<AudioRendererImpl> renderer_; |
- DISALLOW_COPY_AND_ASSIGN(DelegateCaller); |
-}; |
- |
// This task can be posted on the IO thread and will signal an event when |
// done. The caller can then wait for this signal to ensure that no |
// additional tasks remain in the task queue. |
@@ -96,32 +60,18 @@ class WaitTask : public Task { |
DISALLOW_COPY_AND_ASSIGN(WaitTask); |
}; |
-// Class we would be testing. The only difference between it and "real" one |
-// is that test class does not open sockets and launch audio thread. |
+// Class we would be testing. |
class TestAudioRendererImpl : public AudioRendererImpl { |
public: |
explicit TestAudioRendererImpl() |
: AudioRendererImpl() { |
} |
- private: |
- virtual void CreateSocket(base::SyncSocket::Handle socket_handle) {} |
- virtual void CreateAudioThread() {} |
}; |
class AudioRendererImplTest |
: public ::testing::Test, |
public IPC::Channel::Listener { |
public: |
- static void SetUpTestCase() { |
- // Set low latency mode, as it soon would be on by default. |
- if (AudioRendererImpl::latency_type() == |
- AudioRendererImpl::kUninitializedLatency) { |
- AudioRendererImpl::set_latency_type(AudioRendererImpl::kLowLatency); |
- } |
- DCHECK_EQ(AudioRendererImpl::kLowLatency, |
- AudioRendererImpl::latency_type()); |
- } |
- |
// IPC::Channel::Listener implementation. |
virtual bool OnMessageReceived(const IPC::Message& message) { |
NOTIMPLEMENTED(); |
@@ -149,9 +99,6 @@ class AudioRendererImplTest |
render_thread_ = new RenderThreadImpl(kThreadName); |
mock_process_->set_main_thread(render_thread_); |
- // Create temporary shared memory. |
- CHECK(shared_mem_.CreateAnonymous(kSize)); |
- |
// Setup expectations for initialization. |
decoder_ = new media::MockAudioDecoder(); |
@@ -164,30 +111,12 @@ class AudioRendererImplTest |
// Create and initialize the audio renderer. |
renderer_ = new TestAudioRendererImpl(); |
- renderer_->set_host(&host_); |
renderer_->Initialize(decoder_, media::NewExpectedClosure(), |
NewUnderflowClosure()); |
- // Wraps delegate calls into tasks. |
- delegate_caller_ = new DelegateCaller(renderer_); |
- |
// We need an event to verify that all tasks are done before leaving |
// our tests. |
event_.reset(new base::WaitableEvent(false, false)); |
- |
- // Duplicate the shared memory handle so both the test and the callee can |
- // close their copy. |
- base::SharedMemoryHandle duplicated_handle; |
- EXPECT_TRUE(shared_mem_.ShareToProcess(base::GetCurrentProcessHandle(), |
- &duplicated_handle)); |
- |
- // Set things up and ensure that the call comes from the IO thread |
- // as all AudioMessageFilter::Delegate methods. |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::OnCreated, delegate_caller_.get(), |
- duplicated_handle, kSize)); |
- WaitForIOThreadCompletion(); |
} |
virtual void TearDown() { |
@@ -215,12 +144,9 @@ class AudioRendererImplTest |
scoped_ptr<IPC::Channel> channel_; |
RenderThreadImpl* render_thread_; // owned by mock_process_ |
scoped_ptr<MockRenderProcess> mock_process_; |
- base::SharedMemory shared_mem_; |
- media::MockFilterHost host_; |
scoped_refptr<media::MockAudioDecoder> decoder_; |
scoped_refptr<AudioRendererImpl> renderer_; |
scoped_ptr<base::WaitableEvent> event_; |
- scoped_refptr<DelegateCaller> delegate_caller_; |
private: |
DISALLOW_COPY_AND_ASSIGN(AudioRendererImplTest); |
@@ -256,37 +182,6 @@ TEST_F(AudioRendererImplTest, Stop) { |
// Tasks will be posted internally on the IO thread. |
renderer_->Stop(media::NewExpectedClosure()); |
- // Run AudioMessageFilter::Delegate methods, which can be executed after being |
- // stopped. AudioRendererImpl shouldn't create any messages in this state. |
- // All delegate method calls are posted on the IO thread since it is |
- // a requirement. |
- if (renderer_->latency_type() == AudioRendererImpl::kHighLatency) { |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::OnRequestPacket, |
- delegate_caller_.get(), AudioBuffersState(kSize, 0))); |
- } |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::OnStateChanged, |
- delegate_caller_.get(), kAudioStreamError)); |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::OnStateChanged, |
- delegate_caller_.get(), kAudioStreamPlaying)); |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::OnStateChanged, |
- delegate_caller_.get(), kAudioStreamPaused)); |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::OnCreated, |
- delegate_caller_.get(), shared_mem_.handle(), kSize)); |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::OnVolume, |
- delegate_caller_.get(), 0.5)); |
- |
WaitForIOThreadCompletion(); |
// It's possible that the upstream decoder replies right after being stopped. |
@@ -294,54 +189,6 @@ TEST_F(AudioRendererImplTest, Stop) { |
renderer_->ConsumeAudioSamples(buffer); |
} |
-TEST_F(AudioRendererImplTest, DestroyedMessageLoop_SetPlaybackRate) { |
- // Emulate "killing the message loop" and verify that SetPlaybackRate() |
- // still works. |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::DestroyCurrentMessageLoop, |
- delegate_caller_.get())); |
- WaitForIOThreadCompletion(); |
- |
- // No tasks will be posted on the IO thread here since we are in |
- // a "stopped" state. |
- renderer_->SetPlaybackRate(0.0f); |
- renderer_->SetPlaybackRate(1.0f); |
- renderer_->SetPlaybackRate(0.0f); |
- renderer_->Stop(media::NewExpectedClosure()); |
-} |
- |
-TEST_F(AudioRendererImplTest, DestroyedMessageLoop_SetVolume) { |
- // Emulate "killing the message loop" and verify that SetVolume() |
- // still works. |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::DestroyCurrentMessageLoop, |
- delegate_caller_.get())); |
- WaitForIOThreadCompletion(); |
- |
- // No tasks will be posted on the IO thread here since we are in |
- // a "stopped" state. |
- renderer_->SetVolume(0.5f); |
- renderer_->Stop(media::NewExpectedClosure()); |
-} |
- |
-TEST_F(AudioRendererImplTest, DestroyedMessageLoop_ConsumeAudioSamples) { |
- // Emulate "killing the message loop" and verify that OnReadComplete() |
- // still works. |
- ChildProcess::current()->io_message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&DelegateCaller::DestroyCurrentMessageLoop, |
- delegate_caller_.get())); |
- WaitForIOThreadCompletion(); |
- |
- // No tasks will be posted on the IO thread here since we are in |
- // a "stopped" state. |
- scoped_refptr<media::Buffer> buffer(new media::DataBuffer(kSize)); |
- renderer_->ConsumeAudioSamples(buffer); |
- renderer_->Stop(media::NewExpectedClosure()); |
-} |
- |
TEST_F(AudioRendererImplTest, UpdateEarliestEndTime) { |
renderer_->SetPlaybackRate(1.0f); |
WaitForIOThreadCompletion(); |