Chromium Code Reviews| Index: media/audio/win/audio_device_listener_win_unittest.cc |
| diff --git a/media/audio/win/audio_device_listener_win_unittest.cc b/media/audio/win/audio_device_listener_win_unittest.cc |
| index 052b1bb8c396e8fee5cd8fe4fd1e7df3df554bd6..0c5b7d7813a90c4b0a302157f3771133ee9e7f45 100644 |
| --- a/media/audio/win/audio_device_listener_win_unittest.cc |
| +++ b/media/audio/win/audio_device_listener_win_unittest.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/bind_helpers.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/strings/utf_string_conversions.h" |
| +#include "base/test/simple_test_tick_clock.h" |
| #include "base/win/scoped_com_initializer.h" |
| #include "media/audio/audio_manager.h" |
| #include "media/audio/audio_unittest_util.h" |
| @@ -36,6 +37,15 @@ class AudioDeviceListenerWinTest : public testing::Test { |
| output_device_listener_.reset(new AudioDeviceListenerWin(base::Bind( |
| &AudioDeviceListenerWinTest::OnDeviceChange, base::Unretained(this)))); |
| + |
| + tick_clock_ = new base::SimpleTestTickClock(); |
| + tick_clock_->Advance(base::TimeDelta::FromSeconds(12345)); |
| + output_device_listener_->tick_clock_.reset(tick_clock_); |
| + } |
| + |
| + void AdvanceLastDeviceChangeTime() { |
|
henrika (OOO until Aug 14)
2015/07/22 07:58:20
Perhaps add a comment here to explain why you add
|
| + tick_clock_->Advance(base::TimeDelta::FromMilliseconds( |
| + AudioDeviceListenerWin::kDeviceChangeLimitMs + 1)); |
| } |
| // Simulate a device change where no output devices are available. |
| @@ -51,15 +61,13 @@ class AudioDeviceListenerWinTest : public testing::Test { |
| base::ASCIIToUTF16(new_device_id).c_str()) == S_OK; |
| } |
| - void SetOutputDeviceId(std::string new_device_id) { |
| - output_device_listener_->default_render_device_id_ = new_device_id; |
| - } |
| MOCK_METHOD0(OnDeviceChange, void()); |
| private: |
| ScopedCOMInitializer com_init_; |
| scoped_ptr<AudioDeviceListenerWin> output_device_listener_; |
| + base::SimpleTestTickClock* tick_clock_; |
| DISALLOW_COPY_AND_ASSIGN(AudioDeviceListenerWinTest); |
| }; |
| @@ -68,16 +76,15 @@ class AudioDeviceListenerWinTest : public testing::Test { |
| TEST_F(AudioDeviceListenerWinTest, OutputDeviceChange) { |
| ABORT_AUDIO_TEST_IF_NOT(CoreAudioUtil::IsSupported()); |
| - SetOutputDeviceId(kNoDevice); |
| EXPECT_CALL(*this, OnDeviceChange()).Times(1); |
| ASSERT_TRUE(SimulateDefaultOutputDeviceChange(kFirstTestDevice)); |
| testing::Mock::VerifyAndClear(this); |
| + AdvanceLastDeviceChangeTime(); |
| EXPECT_CALL(*this, OnDeviceChange()).Times(1); |
| ASSERT_TRUE(SimulateDefaultOutputDeviceChange(kSecondTestDevice)); |
| - // The second device event should be ignored since the device id has not |
| - // changed. |
| + // The second device event should be ignored since it occurs too soon. |
| ASSERT_TRUE(SimulateDefaultOutputDeviceChange(kSecondTestDevice)); |
| } |
| @@ -86,15 +93,16 @@ TEST_F(AudioDeviceListenerWinTest, OutputDeviceChange) { |
| TEST_F(AudioDeviceListenerWinTest, NullOutputDeviceChange) { |
| ABORT_AUDIO_TEST_IF_NOT(CoreAudioUtil::IsSupported()); |
| - SetOutputDeviceId(kNoDevice); |
| - EXPECT_CALL(*this, OnDeviceChange()).Times(0); |
| + EXPECT_CALL(*this, OnDeviceChange()).Times(1); |
| ASSERT_TRUE(SimulateNullDefaultOutputDeviceChange()); |
| testing::Mock::VerifyAndClear(this); |
| + AdvanceLastDeviceChangeTime(); |
| EXPECT_CALL(*this, OnDeviceChange()).Times(1); |
| ASSERT_TRUE(SimulateDefaultOutputDeviceChange(kFirstTestDevice)); |
| testing::Mock::VerifyAndClear(this); |
| + AdvanceLastDeviceChangeTime(); |
| EXPECT_CALL(*this, OnDeviceChange()).Times(1); |
| ASSERT_TRUE(SimulateNullDefaultOutputDeviceChange()); |
| } |