summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/media
diff options
context:
space:
mode:
authorboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-11 17:40:15 +0000
committerboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-11 17:40:15 +0000
commit5badb08f6f862645e950d97c7a58995724cd0c42 (patch)
tree415b0860139754f61db04cde1f4dba9501fd47be /chrome/renderer/media
parent21ab5b9c9c64061b15d79a29b5ea337e4acc8953 (diff)
downloadchromium_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.cc21
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());
}