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

Unified Diff: media/audio/sounds/audio_stream_handler_unittest.cc

Issue 115693004: Added volume adjust sound behind the flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix. Created 7 years 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: media/audio/sounds/audio_stream_handler_unittest.cc
diff --git a/media/audio/sounds/audio_stream_handler_unittest.cc b/media/audio/sounds/audio_stream_handler_unittest.cc
index 50bc301c38abed23f5a72eadcd39e2764a4802c4..cd31b0badd919560d63679b1be9359baa03667bd 100644
--- a/media/audio/sounds/audio_stream_handler_unittest.cc
+++ b/media/audio/sounds/audio_stream_handler_unittest.cc
@@ -14,6 +14,7 @@
#include "media/audio/simple_sources.h"
#include "media/audio/sounds/audio_stream_handler.h"
#include "media/audio/sounds/test_data.h"
+#include "media/audio/sounds/wav_reader.h"
#include "media/base/channel_layout.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -49,6 +50,14 @@ class AudioStreamHandlerTest : public testing::Test {
AudioStreamHandler::SetAudioSourceForTesting(source);
}
+ void SetWavReaderForTesting(WavReader* reader) {
+ audio_stream_handler_->SetWavReaderForTesting(reader);
+ }
+
+ void AllowReplayOnceForTesting() {
+ audio_stream_handler_->AllowReplayOnceForTesting();
+ }
+
private:
scoped_ptr<AudioManager> audio_manager_;
scoped_ptr<AudioStreamHandler> audio_stream_handler_;
@@ -74,34 +83,44 @@ TEST_F(AudioStreamHandlerTest, Play) {
ASSERT_EQ(4, observer.cursor());
}
-TEST_F(AudioStreamHandlerTest, Rewind) {
+TEST_F(AudioStreamHandlerTest, Replay) {
+ // As we're trying to test replay logic, "infinite" sound is played.
+ // "Infinite" sound is simulated by TestWavReader and, after 1
+ // second, end of this sound (which is necessary for replay) is
+ // simulated.
+
base::RunLoop run_loop;
TestObserver observer(run_loop.QuitClosure());
- SineWaveAudioSource source(CHANNEL_LAYOUT_STEREO, 200.0, 8000);
-
+ TestWavReader* reader =
+ new TestWavReader(audio_stream_handler()->wav_parser());
DaleCurtis 2013/12/17 19:28:52 scoped_ptr?
ygorshenin1 2013/12/18 14:33:12 I'm not sure that smart pointers are helpful in th
SetObserverForTesting(&observer);
- SetAudioSourceForTesting(&source);
+ SetWavReaderForTesting(reader);
ASSERT_TRUE(audio_stream_handler()->IsInitialized());
ASSERT_TRUE(audio_stream_handler()->Play());
+
+ AllowReplayOnceForTesting();
+ ASSERT_TRUE(audio_stream_handler()->Play());
+
base::MessageLoop::current()->PostDelayedTask(
FROM_HERE,
- base::Bind(base::IgnoreResult(&AudioStreamHandler::Play),
- base::Unretained(audio_stream_handler())),
- base::TimeDelta::FromSeconds(3));
+ base::Bind(&TestWavReader::SimulateAtEndOnce,
+ base::Unretained(reader)),
+ base::TimeDelta::FromSeconds(1));
base::MessageLoop::current()->PostDelayedTask(
FROM_HERE,
base::Bind(&AudioStreamHandler::Stop,
base::Unretained(audio_stream_handler())),
- base::TimeDelta::FromSeconds(6));
+ base::TimeDelta::FromSeconds(2));
run_loop.Run();
SetObserverForTesting(NULL);
SetAudioSourceForTesting(NULL);
- ASSERT_EQ(2, observer.num_play_requests());
+ ASSERT_EQ(1, observer.num_play_requests());
+ ASSERT_EQ(1, observer.num_replays());
ASSERT_EQ(1, observer.num_stop_requests());
}

Powered by Google App Engine
This is Rietveld 408576698