Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Unified Diff: media/filters/decrypting_video_decoder_unittest.cc

Issue 14256013: Make more VideoDecoders reinitializable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/filters/decrypting_video_decoder.cc ('k') | media/filters/gpu_video_decoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/decrypting_video_decoder_unittest.cc
diff --git a/media/filters/decrypting_video_decoder_unittest.cc b/media/filters/decrypting_video_decoder_unittest.cc
index fde78bf1c61e6ef550a5b657a763627255c85849..727ef2abf947408fe7e00f867cb8bea794fdfdf5 100644
--- a/media/filters/decrypting_video_decoder_unittest.cc
+++ b/media/filters/decrypting_video_decoder_unittest.cc
@@ -80,6 +80,8 @@ class DecryptingVideoDecoderTest : public testing::Test {
TestVideoConfig::NormalCodedSize())),
null_video_frame_(scoped_refptr<VideoFrame>()),
end_of_stream_video_frame_(VideoFrame::CreateEmptyFrame()) {
+ EXPECT_CALL(*this, RequestDecryptorNotification(_))
+ .WillRepeatedly(RunCallbackIfNotNull(decryptor_.get()));
}
virtual ~DecryptingVideoDecoderTest() {
@@ -89,9 +91,6 @@ class DecryptingVideoDecoderTest : public testing::Test {
void InitializeAndExpectStatus(const VideoDecoderConfig& config,
PipelineStatus status) {
demuxer_->set_video_decoder_config(config);
- EXPECT_CALL(*this, RequestDecryptorNotification(_))
- .WillOnce(RunCallbackIfNotNull(decryptor_.get()));
-
decoder_->Initialize(demuxer_.get(), NewExpectedStatusCB(status),
base::Bind(&MockStatisticsCB::OnStatistics,
base::Unretained(&statistics_cb_)));
@@ -100,14 +99,18 @@ class DecryptingVideoDecoderTest : public testing::Test {
void Initialize() {
EXPECT_CALL(*decryptor_, InitializeVideoDecoder(_, _))
- .Times(AtMost(1))
- .WillOnce(RunCallback<1>(true));
+ .WillRepeatedly(RunCallback<1>(true));
EXPECT_CALL(*decryptor_, RegisterNewKeyCB(Decryptor::kVideo, _))
- .WillOnce(SaveArg<1>(&key_added_cb_));
+ .WillRepeatedly(SaveArg<1>(&key_added_cb_));
InitializeAndExpectStatus(TestVideoConfig::NormalEncrypted(), PIPELINE_OK);
}
+ void Reinitialize() {
+ EXPECT_CALL(*decryptor_, DeinitializeDecoder(Decryptor::kVideo));
+ InitializeAndExpectStatus(TestVideoConfig::LargeEncrypted(), PIPELINE_OK);
+ }
+
void ReadAndExpectFrameReadyWith(
VideoDecoder::Status status,
const scoped_refptr<VideoFrame>& video_frame) {
@@ -251,19 +254,27 @@ TEST_F(DecryptingVideoDecoderTest, Initialize_Normal) {
Initialize();
}
-// Ensure that DecryptingVideoDecoder only accepts encrypted video.
-TEST_F(DecryptingVideoDecoderTest, Initialize_UnencryptedVideoConfig) {
- InitializeAndExpectStatus(TestVideoConfig::Normal(),
+TEST_F(DecryptingVideoDecoderTest, Initialize_Failure) {
+ EXPECT_CALL(*decryptor_, InitializeVideoDecoder(_, _))
+ .WillRepeatedly(RunCallback<1>(false));
+ EXPECT_CALL(*decryptor_, RegisterNewKeyCB(Decryptor::kVideo, _))
+ .WillRepeatedly(SaveArg<1>(&key_added_cb_));
+
+ InitializeAndExpectStatus(TestVideoConfig::NormalEncrypted(),
DECODER_ERROR_NOT_SUPPORTED);
}
-// Ensure decoder handles invalid video configs without crashing.
-TEST_F(DecryptingVideoDecoderTest, Initialize_InvalidVideoConfig) {
- InitializeAndExpectStatus(TestVideoConfig::Invalid(), PIPELINE_ERROR_DECODE);
+TEST_F(DecryptingVideoDecoderTest, Reinitialize_Normal) {
+ Initialize();
+ EnterNormalDecodingState();
+ Reinitialize();
}
-// Ensure decoder handles unsupported video configs without crashing.
-TEST_F(DecryptingVideoDecoderTest, Initialize_UnsupportedVideoConfig) {
+TEST_F(DecryptingVideoDecoderTest, Reinitialize_Failure) {
+ Initialize();
+ EnterNormalDecodingState();
+
+ EXPECT_CALL(*decryptor_, DeinitializeDecoder(Decryptor::kVideo));
EXPECT_CALL(*decryptor_, InitializeVideoDecoder(_, _))
.WillOnce(RunCallback<1>(false));
« no previous file with comments | « media/filters/decrypting_video_decoder.cc ('k') | media/filters/gpu_video_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698