Reland: Add Stop() to AudioDecoder. (https://codereview.chromium.org/126793002/)
BUG=329379, 335181
Review URL: https://codereview.chromium.org/140823012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246529 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/media/filters/decrypting_audio_decoder_unittest.cc b/media/filters/decrypting_audio_decoder_unittest.cc
index 20d1597..050bcf85 100644
--- a/media/filters/decrypting_audio_decoder_unittest.cc
+++ b/media/filters/decrypting_audio_decoder_unittest.cc
@@ -83,6 +83,10 @@
decoded_frame_list_() {
}
+ virtual ~DecryptingAudioDecoderTest() {
+ Stop();
+ }
+
void InitializeAndExpectStatus(const AudioDecoderConfig& config,
PipelineStatus status) {
// Initialize data now that the config is known. Since the code uses
@@ -207,6 +211,16 @@
}
}
+ void AbortAllPendingCBs() {
+ if (!pending_init_cb_.is_null()) {
+ ASSERT_TRUE(pending_audio_decode_cb_.is_null());
+ base::ResetAndReturn(&pending_init_cb_).Run(false);
+ return;
+ }
+
+ AbortPendingAudioDecodeCB();
+ }
+
void Reset() {
EXPECT_CALL(*decryptor_, ResetDecoder(Decryptor::kAudio))
.WillRepeatedly(InvokeWithoutArgs(
@@ -216,6 +230,18 @@
message_loop_.RunUntilIdle();
}
+ void Stop() {
+ EXPECT_CALL(*decryptor_, RegisterNewKeyCB(Decryptor::kAudio,
+ IsNullCallback()))
+ .Times(AtMost(1));
+ EXPECT_CALL(*decryptor_, DeinitializeDecoder(Decryptor::kAudio))
+ .WillRepeatedly(InvokeWithoutArgs(
+ this, &DecryptingAudioDecoderTest::AbortAllPendingCBs));
+
+ decoder_->Stop(NewExpectedClosure());
+ message_loop_.RunUntilIdle();
+ }
+
MOCK_METHOD1(RequestDecryptorNotification, void(const DecryptorReadyCB&));
MOCK_METHOD2(FrameReady,