| Index: media/filters/decrypting_demuxer_stream_unittest.cc
|
| diff --git a/media/filters/decrypting_demuxer_stream_unittest.cc b/media/filters/decrypting_demuxer_stream_unittest.cc
|
| index 27d1f33e7951639f53aff7d5426608943f94a5c3..fec56248e0bc97e5063ed3b8eaa244e3e0b8a584 100644
|
| --- a/media/filters/decrypting_demuxer_stream_unittest.cc
|
| +++ b/media/filters/decrypting_demuxer_stream_unittest.cc
|
| @@ -89,6 +89,13 @@ class DecryptingDemuxerStreamTest : public testing::Test {
|
| decrypted_buffer_(new DecoderBuffer(kFakeBufferSize)) {
|
| }
|
|
|
| + virtual ~DecryptingDemuxerStreamTest() {
|
| + if (is_decryptor_set_)
|
| + EXPECT_CALL(*decryptor_, CancelDecrypt(_));
|
| + demuxer_stream_.reset();
|
| + message_loop_.RunUntilIdle();
|
| + }
|
| +
|
| void InitializeAudioAndExpectStatus(const AudioDecoderConfig& config,
|
| PipelineStatus status) {
|
| input_audio_stream_->set_audio_decoder_config(config);
|
| @@ -237,15 +244,6 @@ class DecryptingDemuxerStreamTest : public testing::Test {
|
| message_loop_.RunUntilIdle();
|
| }
|
|
|
| - // Stops the |demuxer_stream_| without satisfying/aborting any pending
|
| - // operations.
|
| - void Stop() {
|
| - if (is_decryptor_set_)
|
| - EXPECT_CALL(*decryptor_, CancelDecrypt(Decryptor::kAudio));
|
| - demuxer_stream_->Stop();
|
| - message_loop_.RunUntilIdle();
|
| - }
|
| -
|
| MOCK_METHOD1(RequestDecryptorNotification, void(const DecryptorReadyCB&));
|
|
|
| MOCK_METHOD2(BufferReady, void(DemuxerStream::Status,
|
| @@ -379,8 +377,7 @@ TEST_F(DecryptingDemuxerStreamTest, KeyAdded_DruingPendingDecrypt) {
|
| message_loop_.RunUntilIdle();
|
| }
|
|
|
| -// Test resetting when the DecryptingDemuxerStream is in kDecryptorRequested
|
| -// state.
|
| +// Test resetting in kDecryptorRequested state.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringDecryptorRequested) {
|
| // One for decryptor request, one for canceling request during Reset().
|
| EXPECT_CALL(*this, RequestDecryptorNotification(_))
|
| @@ -392,22 +389,20 @@ TEST_F(DecryptingDemuxerStreamTest, Reset_DuringDecryptorRequested) {
|
| Reset();
|
| }
|
|
|
| -// Test resetting when the DecryptingDemuxerStream is in kIdle state but has
|
| -// not returned any buffer.
|
| +// Test resetting in kIdle state but has not returned any buffer.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringIdleAfterInitialization) {
|
| Initialize();
|
| Reset();
|
| }
|
|
|
| -// Test resetting when the DecryptingDemuxerStream is in kIdle state after it
|
| -// has returned one buffer.
|
| +// Test resetting in kIdle state after having returned one buffer.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringIdleAfterReadOneBuffer) {
|
| Initialize();
|
| EnterNormalReadingState();
|
| Reset();
|
| }
|
|
|
| -// Test resetting when DecryptingDemuxerStream is in kPendingDemuxerRead state.
|
| +// Test resetting in kPendingDemuxerRead state.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringPendingDemuxerRead) {
|
| Initialize();
|
| EnterPendingReadState();
|
| @@ -419,7 +414,7 @@ TEST_F(DecryptingDemuxerStreamTest, Reset_DuringPendingDemuxerRead) {
|
| message_loop_.RunUntilIdle();
|
| }
|
|
|
| -// Test resetting when the DecryptingDemuxerStream is in kPendingDecrypt state.
|
| +// Test resetting in kPendingDecrypt state.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringPendingDecrypt) {
|
| Initialize();
|
| EnterPendingDecryptState();
|
| @@ -429,7 +424,7 @@ TEST_F(DecryptingDemuxerStreamTest, Reset_DuringPendingDecrypt) {
|
| Reset();
|
| }
|
|
|
| -// Test resetting when the DecryptingDemuxerStream is in kWaitingForKey state.
|
| +// Test resetting in kWaitingForKey state.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringWaitingForKey) {
|
| Initialize();
|
| EnterWaitingForKeyState();
|
| @@ -439,7 +434,7 @@ TEST_F(DecryptingDemuxerStreamTest, Reset_DuringWaitingForKey) {
|
| Reset();
|
| }
|
|
|
| -// Test resetting after the DecryptingDemuxerStream has been reset.
|
| +// Test resetting after reset.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_AfterReset) {
|
| Initialize();
|
| EnterNormalReadingState();
|
| @@ -458,7 +453,7 @@ TEST_F(DecryptingDemuxerStreamTest, DemuxerRead_Aborted) {
|
| ReadAndExpectBufferReadyWith(DemuxerStream::kAborted, NULL);
|
| }
|
|
|
| -// Test resetting when DecryptingDemuxerStream is waiting for an aborted read.
|
| +// Test resetting when waiting for an aborted read.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringAbortedDemuxerRead) {
|
| Initialize();
|
| EnterPendingReadState();
|
| @@ -487,8 +482,7 @@ TEST_F(DecryptingDemuxerStreamTest, DemuxerRead_ConfigChanged) {
|
| ReadAndExpectBufferReadyWith(DemuxerStream::kConfigChanged, NULL);
|
| }
|
|
|
| -// Test resetting when DecryptingDemuxerStream is waiting for a config changed
|
| -// read.
|
| +// Test resetting when waiting for a config changed read.
|
| TEST_F(DecryptingDemuxerStreamTest, Reset_DuringConfigChangedDemuxerRead) {
|
| Initialize();
|
| EnterPendingReadState();
|
| @@ -501,9 +495,11 @@ TEST_F(DecryptingDemuxerStreamTest, Reset_DuringConfigChangedDemuxerRead) {
|
| message_loop_.RunUntilIdle();
|
| }
|
|
|
| -// Test stopping when the DecryptingDemuxerStream is in kDecryptorRequested
|
| -// state.
|
| -TEST_F(DecryptingDemuxerStreamTest, Stop_DuringDecryptorRequested) {
|
| +// The following tests test destruction in various scenarios. The destruction
|
| +// happens in DecryptingDemuxerStreamTest's dtor.
|
| +
|
| +// Test destruction in kDecryptorRequested state.
|
| +TEST_F(DecryptingDemuxerStreamTest, Destroy_DuringDecryptorRequested) {
|
| // One for decryptor request, one for canceling request during Reset().
|
| EXPECT_CALL(*this, RequestDecryptorNotification(_))
|
| .Times(2);
|
| @@ -511,57 +507,48 @@ TEST_F(DecryptingDemuxerStreamTest, Stop_DuringDecryptorRequested) {
|
| kCodecVorbis, kSampleFormatPlanarF32, CHANNEL_LAYOUT_STEREO, 44100,
|
| NULL, 0, true);
|
| InitializeAudioAndExpectStatus(input_config, PIPELINE_ERROR_ABORT);
|
| - Stop();
|
| }
|
|
|
| -// Test stopping when the DecryptingDemuxerStream is in kIdle state but has
|
| -// not returned any buffer.
|
| -TEST_F(DecryptingDemuxerStreamTest, Stop_DuringIdleAfterInitialization) {
|
| +// Test destruction in kIdle state but has not returned any buffer.
|
| +TEST_F(DecryptingDemuxerStreamTest, Destroy_DuringIdleAfterInitialization) {
|
| Initialize();
|
| - Stop();
|
| }
|
|
|
| -// Test stopping when the DecryptingDemuxerStream is in kIdle state after it
|
| -// has returned one buffer.
|
| -TEST_F(DecryptingDemuxerStreamTest, Stop_DuringIdleAfterReadOneBuffer) {
|
| +// Test destruction in kIdle state after having returned one buffer.
|
| +TEST_F(DecryptingDemuxerStreamTest, Destroy_DuringIdleAfterReadOneBuffer) {
|
| Initialize();
|
| EnterNormalReadingState();
|
| - Stop();
|
| }
|
|
|
| -// Test stopping when DecryptingDemuxerStream is in kPendingDemuxerRead state.
|
| -TEST_F(DecryptingDemuxerStreamTest, Stop_DuringPendingDemuxerRead) {
|
| +// Test destruction in kPendingDemuxerRead state.
|
| +TEST_F(DecryptingDemuxerStreamTest, Destroy_DuringPendingDemuxerRead) {
|
| Initialize();
|
| EnterPendingReadState();
|
|
|
| EXPECT_CALL(*this, BufferReady(DemuxerStream::kAborted, IsNull()));
|
| - Stop();
|
| }
|
|
|
| -// Test stopping when the DecryptingDemuxerStream is in kPendingDecrypt state.
|
| -TEST_F(DecryptingDemuxerStreamTest, Stop_DuringPendingDecrypt) {
|
| +// Test destruction in kPendingDecrypt state.
|
| +TEST_F(DecryptingDemuxerStreamTest, Destroy_DuringPendingDecrypt) {
|
| Initialize();
|
| EnterPendingDecryptState();
|
|
|
| EXPECT_CALL(*this, BufferReady(DemuxerStream::kAborted, IsNull()));
|
| - Stop();
|
| }
|
|
|
| -// Test stopping when the DecryptingDemuxerStream is in kWaitingForKey state.
|
| -TEST_F(DecryptingDemuxerStreamTest, Stop_DuringWaitingForKey) {
|
| +// Test destruction in kWaitingForKey state.
|
| +TEST_F(DecryptingDemuxerStreamTest, Destroy_DuringWaitingForKey) {
|
| Initialize();
|
| EnterWaitingForKeyState();
|
|
|
| EXPECT_CALL(*this, BufferReady(DemuxerStream::kAborted, IsNull()));
|
| - Stop();
|
| }
|
|
|
| -// Test stopping after the DecryptingDemuxerStream has been reset.
|
| -TEST_F(DecryptingDemuxerStreamTest, Stop_AfterReset) {
|
| +// Test destruction after reset.
|
| +TEST_F(DecryptingDemuxerStreamTest, Destroy_AfterReset) {
|
| Initialize();
|
| EnterNormalReadingState();
|
| Reset();
|
| - Stop();
|
| }
|
|
|
| } // namespace media
|
|
|