Index: media/filters/audio_decoder_selector_unittest.cc |
diff --git a/media/filters/audio_decoder_selector_unittest.cc b/media/filters/audio_decoder_selector_unittest.cc |
index be2daff6385b972cb2bb99b5fd213039d5e1d11c..27915c85e642e2a635c5bd1e99ad524ac2cb6617 100644 |
--- a/media/filters/audio_decoder_selector_unittest.cc |
+++ b/media/filters/audio_decoder_selector_unittest.cc |
@@ -8,6 +8,7 @@ |
#include "base/message_loop/message_loop.h" |
#include "media/base/gmock_callback_support.h" |
#include "media/base/mock_filters.h" |
+#include "media/base/test_helpers.h" |
#include "media/filters/audio_decoder_selector.h" |
#include "media/filters/decrypting_demuxer_stream.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -41,6 +42,19 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
decoder_2_(new StrictMock<MockAudioDecoder>()) { |
all_decoders_.push_back(decoder_1_); |
all_decoders_.push_back(decoder_2_); |
+ |
+ EXPECT_CALL(*decoder_1_, Stop(_)) |
+ .WillRepeatedly(RunClosure<0>()); |
+ EXPECT_CALL(*decoder_2_, Stop(_)) |
+ .WillRepeatedly(RunClosure<0>()); |
+ } |
+ |
+ ~AudioDecoderSelectorTest() { |
+ if (selected_decoder_) { |
+ selected_decoder_->Stop(NewExpectedClosure()); |
+ } |
+ |
+ message_loop_.RunUntilIdle(); |
} |
MOCK_METHOD1(OnStatistics, void(const PipelineStatistics&)); |
@@ -52,6 +66,7 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
scoped_ptr<AudioDecoder> decoder, |
scoped_ptr<DecryptingDemuxerStream> stream) { |
OnDecoderSelected(decoder.get(), stream.get()); |
+ selected_decoder_ = decoder.Pass(); |
} |
void UseClearStream() { |
@@ -91,8 +106,9 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
.WillRepeatedly(RunCallback<1>(true)); |
} |
} else if (decryptor_capability == kHoldSetDecryptor) { |
- // Set DecryptorReadyCB but the callback is never fired. |
- EXPECT_CALL(*this, SetDecryptorReadyCallback(_)); |
+ // Set and cancel DecryptorReadyCB but the callback is never fired. |
+ EXPECT_CALL(*this, SetDecryptorReadyCallback(_)) |
+ .Times(2); |
} |
DCHECK_GE(all_decoders_.size(), static_cast<size_t>(num_decoders)); |
@@ -132,6 +148,7 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
StrictMock<MockAudioDecoder>* decoder_1_; |
StrictMock<MockAudioDecoder>* decoder_2_; |
ScopedVector<AudioDecoder> all_decoders_; |
+ scoped_ptr<AudioDecoder> selected_decoder_; |
base::MessageLoop message_loop_; |
private: |