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 eb0e8dbd3c4606db23ec86518f46613b41989eca..3b55925a803fc606966eb45b3d41f10004a4b8f7 100644 |
--- a/media/filters/audio_decoder_selector_unittest.cc |
+++ b/media/filters/audio_decoder_selector_unittest.cc |
@@ -14,12 +14,29 @@ |
#include "testing/gtest/include/gtest/gtest.h" |
using ::testing::_; |
+using ::testing::InvokeWithoutArgs; |
using ::testing::IsNull; |
using ::testing::NiceMock; |
using ::testing::NotNull; |
using ::testing::Return; |
using ::testing::StrictMock; |
+// Use anonymous namespace here to prevent the actions to be defined multiple |
+// times across multiple test files. Sadly we can't use static for them. |
+namespace { |
+ |
+ACTION_P3(ExecuteCallbackWithVerifier, decryptor, done_cb, verifier) { |
+ // verifier must be called first since |done_cb| call will invoke it as well. |
+ verifier->RecordACalled(); |
+ arg0.Run(decryptor, done_cb); |
+} |
+ |
+ACTION_P(ReportCallback, verifier) { |
+ verifier->RecordBCalled(); |
+} |
+ |
+} // namespace |
+ |
namespace media { |
class AudioDecoderSelectorTest : public ::testing::Test { |
@@ -51,6 +68,7 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
MOCK_METHOD1(SetDecryptorReadyCallback, void(const media::DecryptorReadyCB&)); |
MOCK_METHOD2(OnDecoderSelected, |
void(AudioDecoder*, DecryptingDemuxerStream*)); |
+ MOCK_METHOD1(DecryptorSet, void(bool)); |
void MockOnDecoderSelected(scoped_ptr<AudioDecoder> decoder, |
scoped_ptr<DecryptingDemuxerStream> stream) { |
@@ -83,9 +101,14 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
if (decryptor_capability == kDecryptOnly || |
decryptor_capability == kDecryptAndDecode) { |
- |
EXPECT_CALL(*this, SetDecryptorReadyCallback(_)) |
- .WillRepeatedly(RunCallback<0>(decryptor_.get())); |
+ .WillRepeatedly(ExecuteCallbackWithVerifier( |
+ decryptor_.get(), |
+ base::Bind(&AudioDecoderSelectorTest::DecryptorSet, |
+ base::Unretained(this)), |
+ &verifier_)); |
+ EXPECT_CALL(*this, DecryptorSet(true)) |
+ .WillRepeatedly(ReportCallback(&verifier_)); |
if (decryptor_capability == kDecryptOnly) { |
EXPECT_CALL(*decryptor_, InitializeAudioDecoder(_, _)) |
@@ -149,6 +172,8 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
base::MessageLoop message_loop_; |
+ CallbackPairChecker verifier_; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(AudioDecoderSelectorTest); |
}; |