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

Side by Side Diff: media/filters/decrypting_video_decoder_unittest.cc

Issue 11492003: Encrypted Media: Support Audio Decrypt-Only. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments mostly resolved (I believe); need to add/update tests if this looks good Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 .Times(AtMost(1)); 223 .Times(AtMost(1));
224 EXPECT_CALL(*decryptor_, DeinitializeDecoder(Decryptor::kVideo)) 224 EXPECT_CALL(*decryptor_, DeinitializeDecoder(Decryptor::kVideo))
225 .WillRepeatedly(InvokeWithoutArgs( 225 .WillRepeatedly(InvokeWithoutArgs(
226 this, &DecryptingVideoDecoderTest::AbortAllPendingCBs)); 226 this, &DecryptingVideoDecoderTest::AbortAllPendingCBs));
227 227
228 decoder_->Stop(NewExpectedClosure()); 228 decoder_->Stop(NewExpectedClosure());
229 message_loop_.RunUntilIdle(); 229 message_loop_.RunUntilIdle();
230 } 230 }
231 231
232 MOCK_METHOD1(RequestDecryptorNotification, 232 MOCK_METHOD1(RequestDecryptorNotification,
233 void(const DecryptingVideoDecoder::DecryptorNotificationCB&)); 233 void(const DecryptingVideoDecoder::DecryptorReadyCB&));
234 234
235 MOCK_METHOD2(FrameReady, void(VideoDecoder::Status, 235 MOCK_METHOD2(FrameReady, void(VideoDecoder::Status,
236 const scoped_refptr<VideoFrame>&)); 236 const scoped_refptr<VideoFrame>&));
237 237
238 MessageLoop message_loop_; 238 MessageLoop message_loop_;
239 scoped_refptr<DecryptingVideoDecoder> decoder_; 239 scoped_refptr<DecryptingVideoDecoder> decoder_;
240 scoped_ptr<StrictMock<MockDecryptor> > decryptor_; 240 scoped_ptr<StrictMock<MockDecryptor> > decryptor_;
241 scoped_refptr<StrictMock<MockDemuxerStream> > demuxer_; 241 scoped_refptr<StrictMock<MockDemuxerStream> > demuxer_;
242 MockStatisticsCB statistics_cb_; 242 MockStatisticsCB statistics_cb_;
243 VideoDecoderConfig config_; 243 VideoDecoderConfig config_;
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 Reset(); 439 Reset();
440 } 440 }
441 441
442 // Test stopping when the decoder is in kDecryptorRequested state. 442 // Test stopping when the decoder is in kDecryptorRequested state.
443 TEST_F(DecryptingVideoDecoderTest, Stop_DuringDecryptorRequested) { 443 TEST_F(DecryptingVideoDecoderTest, Stop_DuringDecryptorRequested) {
444 config_.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN, kVideoFormat, 444 config_.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN, kVideoFormat,
445 kCodedSize, kVisibleRect, kNaturalSize, 445 kCodedSize, kVisibleRect, kNaturalSize,
446 NULL, 0, true, true); 446 NULL, 0, true, true);
447 EXPECT_CALL(*demuxer_, video_decoder_config()) 447 EXPECT_CALL(*demuxer_, video_decoder_config())
448 .WillRepeatedly(ReturnRef(config_)); 448 .WillRepeatedly(ReturnRef(config_));
449 DecryptingVideoDecoder::DecryptorNotificationCB decryptor_notification_cb; 449 DecryptingVideoDecoder::DecryptorReadyCB decryptor_ready_cb;
450 EXPECT_CALL(*this, RequestDecryptorNotification(_)) 450 EXPECT_CALL(*this, RequestDecryptorNotification(_))
451 .WillOnce(SaveArg<0>(&decryptor_notification_cb)); 451 .WillOnce(SaveArg<0>(&decryptor_ready_cb));
452 decoder_->Initialize(demuxer_, 452 decoder_->Initialize(demuxer_,
453 NewExpectedStatusCB(DECODER_ERROR_NOT_SUPPORTED), 453 NewExpectedStatusCB(DECODER_ERROR_NOT_SUPPORTED),
454 base::Bind(&MockStatisticsCB::OnStatistics, 454 base::Bind(&MockStatisticsCB::OnStatistics,
455 base::Unretained(&statistics_cb_))); 455 base::Unretained(&statistics_cb_)));
456 message_loop_.RunUntilIdle(); 456 message_loop_.RunUntilIdle();
457 // |decryptor_notification_cb| is saved but not called here. 457 // |decryptor_ready_cb| is saved but not called here.
458 EXPECT_FALSE(decryptor_notification_cb.is_null()); 458 EXPECT_FALSE(decryptor_ready_cb.is_null());
459 459
460 // During stop, RequestDecryptorNotification() should be called with a NULL 460 // During stop, RequestDecryptorNotification() should be called with a NULL
461 // callback to cancel the |decryptor_notification_cb|. 461 // callback to cancel the |decryptor_ready_cb|.
462 EXPECT_CALL(*this, RequestDecryptorNotification(IsNullCallback())) 462 EXPECT_CALL(*this, RequestDecryptorNotification(IsNullCallback()))
463 .WillOnce(ResetAndRunCallback(&decryptor_notification_cb, 463 .WillOnce(ResetAndRunCallback(&decryptor_ready_cb,
464 reinterpret_cast<Decryptor*>(NULL))); 464 reinterpret_cast<Decryptor*>(NULL)));
465 Stop(); 465 Stop();
466 } 466 }
467 467
468 // Test stopping when the decoder is in kPendingDecoderInit state. 468 // Test stopping when the decoder is in kPendingDecoderInit state.
469 TEST_F(DecryptingVideoDecoderTest, Stop_DuringPendingDecoderInit) { 469 TEST_F(DecryptingVideoDecoderTest, Stop_DuringPendingDecoderInit) {
470 EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _)) 470 EXPECT_CALL(*decryptor_, InitializeVideoDecoderMock(_, _))
471 .WillOnce(SaveArg<1>(&pending_init_cb_)); 471 .WillOnce(SaveArg<1>(&pending_init_cb_));
472 472
473 config_.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN, kVideoFormat, 473 config_.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN, kVideoFormat,
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 EXPECT_CALL(*demuxer_, Read(_)) 598 EXPECT_CALL(*demuxer_, Read(_))
599 .WillOnce(RunCallback<0>(DemuxerStream::kConfigChanged, 599 .WillOnce(RunCallback<0>(DemuxerStream::kConfigChanged,
600 scoped_refptr<DecoderBuffer>())); 600 scoped_refptr<DecoderBuffer>()));
601 601
602 // TODO(xhwang): Update this test when kConfigChanged is supported in 602 // TODO(xhwang): Update this test when kConfigChanged is supported in
603 // DecryptingVideoDecoder. 603 // DecryptingVideoDecoder.
604 ReadAndExpectFrameReadyWith(VideoDecoder::kDecodeError, null_video_frame_); 604 ReadAndExpectFrameReadyWith(VideoDecoder::kDecodeError, null_video_frame_);
605 } 605 }
606 606
607 } // namespace media 607 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698