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 |