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

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

Issue 14600025: Replace AudioSilenceDetector with an AudioPowerMonitor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use CancelableCallback instead of extra-task for close reply. Created 7 years, 5 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_renderer_host_unittest.cc
diff --git a/content/browser/renderer_host/media/audio_renderer_host_unittest.cc b/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
index dd76639f93a7d18e4b955e189edc88c1ce0584c6..ea8247d5f060809ac4290fb01bf38d647bf3a27c 100644
--- a/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
+++ b/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
@@ -25,13 +25,9 @@
#include "testing/gtest/include/gtest/gtest.h"
using ::testing::_;
-using ::testing::AtLeast;
+using ::testing::Assign;
using ::testing::DoAll;
-using ::testing::InSequence;
using ::testing::NotNull;
-using ::testing::Return;
-using ::testing::SaveArg;
-using ::testing::SetArgumentPointee;
namespace content {
@@ -163,7 +159,7 @@ ACTION_P(QuitMessageLoop, message_loop) {
class AudioRendererHostTest : public testing::Test {
public:
- AudioRendererHostTest() {}
+ AudioRendererHostTest() : is_stream_active_(false) {}
protected:
virtual void SetUp() {
@@ -199,6 +195,10 @@ class AudioRendererHostTest : public testing::Test {
SyncWithAudioThread();
audio_manager_.reset();
+ // Make sure the stream has been deleted before continuing.
+ while (is_stream_active_)
+ message_loop_->Run();
+
io_thread_.reset();
ui_thread_.reset();
@@ -207,62 +207,39 @@ class AudioRendererHostTest : public testing::Test {
message_loop_.reset();
}
- void Create() {
+ void Create(bool unified_stream) {
EXPECT_CALL(*observer_,
OnSetAudioStreamStatus(_, kStreamId, "created"));
EXPECT_CALL(*host_.get(), OnStreamCreated(kStreamId, _))
- .WillOnce(QuitMessageLoop(message_loop_.get()));
+ .WillOnce(DoAll(Assign(&is_stream_active_, true),
+ QuitMessageLoop(message_loop_.get())));
EXPECT_CALL(mirroring_manager_,
AddDiverter(kRenderProcessId, kRenderViewId, NotNull()))
.RetiresOnSaturation();
// Send a create stream message to the audio output stream and wait until
// we receive the created message.
- host_->OnCreateStream(kStreamId,
- kRenderViewId,
- 0,
- media::AudioParameters(
- media::AudioParameters::AUDIO_FAKE,
- media::CHANNEL_LAYOUT_STEREO,
- media::AudioParameters::kAudioCDSampleRate, 16,
- media::AudioParameters::kAudioCDSampleRate / 10));
- message_loop_->Run();
-
- // At some point in the future, a corresponding RemoveDiverter() call must
- // be made.
- EXPECT_CALL(mirroring_manager_,
- RemoveDiverter(kRenderProcessId, kRenderViewId, NotNull()))
- .RetiresOnSaturation();
-
- // All created streams should ultimately be closed.
- EXPECT_CALL(*observer_,
- OnSetAudioStreamStatus(_, kStreamId, "closed"));
-
- // Expect the audio stream will be deleted at some later point.
- EXPECT_CALL(*observer_, OnDeleteAudioStream(_, kStreamId));
- }
-
- void CreateUnifiedStream() {
- EXPECT_CALL(*observer_,
- OnSetAudioStreamStatus(_, kStreamId, "created"));
- EXPECT_CALL(*host_.get(), OnStreamCreated(kStreamId, _))
- .WillOnce(QuitMessageLoop(message_loop_.get()));
- EXPECT_CALL(mirroring_manager_,
- AddDiverter(kRenderProcessId, kRenderViewId, NotNull()))
- .RetiresOnSaturation();
- // Send a create stream message to the audio output stream and wait until
- // we receive the created message.
- // Use AudioInputDeviceManager::kFakeOpenSessionId as the session id to
- // pass the permission check.
- host_->OnCreateStream(kStreamId,
- kRenderViewId,
- AudioInputDeviceManager::kFakeOpenSessionId,
- media::AudioParameters(
- media::AudioParameters::AUDIO_FAKE,
- media::CHANNEL_LAYOUT_STEREO,
- 2,
- media::AudioParameters::kAudioCDSampleRate, 16,
- media::AudioParameters::kAudioCDSampleRate / 10));
+ int session_id;
+ media::AudioParameters params;
+ if (unified_stream) {
+ // Use AudioInputDeviceManager::kFakeOpenSessionId as the session id to
+ // pass the permission check.
+ session_id = AudioInputDeviceManager::kFakeOpenSessionId;
+ params = media::AudioParameters(
+ media::AudioParameters::AUDIO_FAKE,
+ media::CHANNEL_LAYOUT_STEREO,
+ 2,
+ media::AudioParameters::kAudioCDSampleRate, 16,
+ media::AudioParameters::kAudioCDSampleRate / 10);
+ } else {
+ session_id = 0;
+ params = media::AudioParameters(
+ media::AudioParameters::AUDIO_FAKE,
+ media::CHANNEL_LAYOUT_STEREO,
+ media::AudioParameters::kAudioCDSampleRate, 16,
+ media::AudioParameters::kAudioCDSampleRate / 10);
+ }
+ host_->OnCreateStream(kStreamId, kRenderViewId, session_id, params);
message_loop_->Run();
// At some point in the future, a corresponding RemoveDiverter() call must
@@ -276,14 +253,19 @@ class AudioRendererHostTest : public testing::Test {
OnSetAudioStreamStatus(_, kStreamId, "closed"));
// Expect the audio stream will be deleted at some later point.
- EXPECT_CALL(*observer_, OnDeleteAudioStream(_, kStreamId));
+ EXPECT_CALL(*observer_, OnDeleteAudioStream(_, kStreamId))
+ .WillOnce(DoAll(Assign(&is_stream_active_, false),
+ QuitMessageLoop(message_loop_.get())));
}
void Close() {
// Send a message to AudioRendererHost to tell it we want to close the
// stream.
host_->OnCloseStream(kStreamId);
- message_loop_->RunUntilIdle();
+ if (is_stream_active_)
+ message_loop_->Run();
+ else
+ message_loop_->RunUntilIdle();
}
void Play() {
@@ -367,34 +349,36 @@ class AudioRendererHostTest : public testing::Test {
scoped_ptr<media::AudioManager> audio_manager_;
scoped_ptr<MediaStreamManager> media_stream_manager_;
+ bool is_stream_active_;
+
DISALLOW_COPY_AND_ASSIGN(AudioRendererHostTest);
};
TEST_F(AudioRendererHostTest, CreateAndClose) {
- Create();
+ Create(false);
Close();
}
// Simulate the case where a stream is not properly closed.
TEST_F(AudioRendererHostTest, CreateAndShutdown) {
- Create();
+ Create(false);
}
TEST_F(AudioRendererHostTest, CreatePlayAndClose) {
- Create();
+ Create(false);
Play();
Close();
}
TEST_F(AudioRendererHostTest, CreatePlayPauseAndClose) {
- Create();
+ Create(false);
Play();
Pause();
Close();
}
TEST_F(AudioRendererHostTest, SetVolume) {
- Create();
+ Create(false);
SetVolume(0.5);
Play();
Pause();
@@ -403,19 +387,19 @@ TEST_F(AudioRendererHostTest, SetVolume) {
// Simulate the case where a stream is not properly closed.
TEST_F(AudioRendererHostTest, CreatePlayAndShutdown) {
- Create();
+ Create(false);
Play();
}
// Simulate the case where a stream is not properly closed.
TEST_F(AudioRendererHostTest, CreatePlayPauseAndShutdown) {
- Create();
+ Create(false);
Play();
Pause();
}
TEST_F(AudioRendererHostTest, SimulateError) {
- Create();
+ Create(false);
Play();
SimulateError();
}
@@ -424,14 +408,14 @@ TEST_F(AudioRendererHostTest, SimulateError) {
// the audio device is closed but the render process try to close the
// audio stream again.
TEST_F(AudioRendererHostTest, SimulateErrorAndClose) {
- Create();
+ Create(false);
Play();
SimulateError();
Close();
}
TEST_F(AudioRendererHostTest, CreateUnifiedStreamAndClose) {
- CreateUnifiedStream();
+ Create(true);
Close();
}
« no previous file with comments | « content/browser/renderer_host/media/audio_renderer_host.cc ('k') | content/browser/renderer_host/media/mock_media_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698