Chromium Code Reviews| 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..534d6fe49159410ed2553eef7559b1892af202cf 100644 |
| --- a/media/filters/audio_decoder_selector_unittest.cc |
| +++ b/media/filters/audio_decoder_selector_unittest.cc |
| @@ -14,12 +14,30 @@ |
| #include "testing/gtest/include/gtest/gtest.h" |
| using ::testing::_; |
| +using ::testing::Eq; |
| +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(CallDecryptorReadyWithVerifier, decryptor, done_cb, verifier) { |
|
ddorwin
2014/08/07 19:52:04
This doesn't necessarily call DecryptorReady. It c
jrummell
2014/08/08 20:58:28
Done.
|
| + // verifier must be called first since |done_cb| call will trigger it as well. |
|
ddorwin
2014/08/07 19:52:04
s/trigger/invoke/?
or call?
jrummell
2014/08/08 20:58:28
Done.
|
| + verifier->A(); |
| + arg0.Run(decryptor, done_cb); |
| +} |
| + |
| +ACTION_P(VerifyCallbackHappened, verifier) { |
|
ddorwin
2014/08/07 19:52:04
naming: This doesn't really verify that the callba
jrummell
2014/08/08 20:58:28
Done.
|
| + verifier->B(); |
| +} |
| + |
| +} // namespace |
| + |
| namespace media { |
| class AudioDecoderSelectorTest : public ::testing::Test { |
| @@ -51,6 +69,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 +102,14 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
| if (decryptor_capability == kDecryptOnly || |
| decryptor_capability == kDecryptAndDecode) { |
| - |
| EXPECT_CALL(*this, SetDecryptorReadyCallback(_)) |
| - .WillRepeatedly(RunCallback<0>(decryptor_.get())); |
| + .WillRepeatedly(CallDecryptorReadyWithVerifier( |
| + decryptor_.get(), |
| + base::Bind(&AudioDecoderSelectorTest::DecryptorSet, |
| + base::Unretained(this)), |
| + &verifier_)); |
| + EXPECT_CALL(*this, DecryptorSet(Eq(true))) |
| + .WillRepeatedly(VerifyCallbackHappened(&verifier_)); |
| if (decryptor_capability == kDecryptOnly) { |
| EXPECT_CALL(*decryptor_, InitializeAudioDecoder(_, _)) |
| @@ -149,6 +173,8 @@ class AudioDecoderSelectorTest : public ::testing::Test { |
| base::MessageLoop message_loop_; |
| + MatchingCallbackVerifier verifier_; |
| + |
| private: |
| DISALLOW_COPY_AND_ASSIGN(AudioDecoderSelectorTest); |
| }; |