diff options
author | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 17:40:15 +0000 |
---|---|---|
committer | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 17:40:15 +0000 |
commit | 5badb08f6f862645e950d97c7a58995724cd0c42 (patch) | |
tree | 415b0860139754f61db04cde1f4dba9501fd47be /chrome/renderer/media | |
parent | 21ab5b9c9c64061b15d79a29b5ea337e4acc8953 (diff) | |
download | chromium_src-5badb08f6f862645e950d97c7a58995724cd0c42.zip chromium_src-5badb08f6f862645e950d97c7a58995724cd0c42.tar.gz chromium_src-5badb08f6f862645e950d97c7a58995724cd0c42.tar.bz2 |
Make MediaFilter::Stop() asynchronous.
This is the second issue regarding making Stop() asynchronous.
All Stop() in subclasses of MediaFilter is made to accept a callback and
runs the callback at the end of its stop.
BUG=16059
TEST=media_unittest, unit_tests, test_shell_tests still passes
Review URL: http://codereview.chromium.org/2541003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49548 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/media')
-rw-r--r-- | chrome/renderer/media/audio_renderer_impl_unittest.cc | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/chrome/renderer/media/audio_renderer_impl_unittest.cc b/chrome/renderer/media/audio_renderer_impl_unittest.cc index 12d0100..27584a1 100644 --- a/chrome/renderer/media/audio_renderer_impl_unittest.cc +++ b/chrome/renderer/media/audio_renderer_impl_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 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. @@ -72,6 +72,7 @@ class AudioRendererImplTest : public ::testing::Test { base::SharedMemory shared_mem_; media::MockFilterHost host_; media::MockFilterCallback callback_; + media::MockFilterCallback stop_callback_; scoped_refptr<media::MockAudioDecoder> decoder_; scoped_refptr<AudioRendererImpl> renderer_; media::MediaFormat decoder_media_format_; @@ -88,14 +89,16 @@ TEST_F(AudioRendererImplTest, SetPlaybackRate) { renderer_->SetPlaybackRate(1.0f); renderer_->SetPlaybackRate(0.0f); - renderer_->Stop(); + EXPECT_CALL(stop_callback_, OnFilterCallback()); + renderer_->Stop(stop_callback_.NewCallback()); message_loop_->RunAllPending(); } TEST_F(AudioRendererImplTest, SetVolume) { // Execute SetVolume() codepath to create an IPC message. renderer_->SetVolume(0.5f); - renderer_->Stop(); + EXPECT_CALL(stop_callback_, OnFilterCallback()); + renderer_->Stop(stop_callback_.NewCallback()); message_loop_->RunAllPending(); } @@ -109,7 +112,8 @@ TEST_F(AudioRendererImplTest, Stop) { { ViewMsg_AudioStreamState_Params::kPaused }; // Execute Stop() codepath to create an IPC message. - renderer_->Stop(); + EXPECT_CALL(stop_callback_, OnFilterCallback()); + renderer_->Stop(stop_callback_.NewCallback()); message_loop_->RunAllPending(); // Run AudioMessageFilter::Delegate methods, which can be executed after being @@ -132,14 +136,16 @@ TEST_F(AudioRendererImplTest, DestroyedMessageLoop_SetPlaybackRate) { renderer_->SetPlaybackRate(0.0f); renderer_->SetPlaybackRate(1.0f); renderer_->SetPlaybackRate(0.0f); - renderer_->Stop(); + EXPECT_CALL(stop_callback_, OnFilterCallback()); + renderer_->Stop(stop_callback_.NewCallback()); } TEST_F(AudioRendererImplTest, DestroyedMessageLoop_SetVolume) { // Kill the message loop and verify SetVolume() still works. message_loop_.reset(); renderer_->SetVolume(0.5f); - renderer_->Stop(); + EXPECT_CALL(stop_callback_, OnFilterCallback()); + renderer_->Stop(stop_callback_.NewCallback()); } TEST_F(AudioRendererImplTest, DestroyedMessageLoop_OnReadComplete) { @@ -147,5 +153,6 @@ TEST_F(AudioRendererImplTest, DestroyedMessageLoop_OnReadComplete) { message_loop_.reset(); scoped_refptr<media::Buffer> buffer = new media::DataBuffer(kSize); renderer_->OnReadComplete(buffer); - renderer_->Stop(); + EXPECT_CALL(stop_callback_, OnFilterCallback()); + renderer_->Stop(stop_callback_.NewCallback()); } |