Index: content/renderer/media/rtc_video_decoder_unittest.cc |
diff --git a/content/renderer/media/rtc_video_decoder_unittest.cc b/content/renderer/media/rtc_video_decoder_unittest.cc |
index 5bb0f0430a26655806f9d00936138ff9787afc90..746bddbe90347724870b8959c0f368b9878cdd9d 100644 |
--- a/content/renderer/media/rtc_video_decoder_unittest.cc |
+++ b/content/renderer/media/rtc_video_decoder_unittest.cc |
@@ -37,19 +37,25 @@ class RTCVideoDecoderTest : public ::testing::Test, |
mock_vda_ = new media::MockVideoDecodeAccelerator; |
EXPECT_CALL(*mock_gpu_factories_, GetMessageLoop()) |
.WillRepeatedly(Return(vda_loop_proxy_)); |
+ EXPECT_CALL(*mock_gpu_factories_, CreateVideoDecodeAccelerator(_, _)) |
+ .WillRepeatedly( |
+ Return(static_cast<media::VideoDecodeAccelerator*>(NULL))); |
EXPECT_CALL(*mock_gpu_factories_, |
CreateVideoDecodeAccelerator(media::VP8PROFILE_MAIN, _)) |
- .WillOnce(Return(mock_vda_)); |
+ .WillRepeatedly(Return(mock_vda_)); |
EXPECT_CALL(*mock_gpu_factories_, Abort()).WillRepeatedly(Return()); |
EXPECT_CALL(*mock_gpu_factories_, CreateSharedMemory(_)) |
.WillRepeatedly(Return(static_cast<base::SharedMemory*>(NULL))); |
EXPECT_CALL(*mock_vda_, Destroy()); |
- rtc_decoder_ = RTCVideoDecoder::Create(mock_gpu_factories_); |
+ rtc_decoder_ = RTCVideoDecoder::Create( |
+ webrtc::kVideoCodecVP8, vda_loop_proxy_, mock_gpu_factories_); |
} |
virtual void TearDown() OVERRIDE { |
VLOG(2) << "TearDown"; |
if (vda_thread_.IsRunning()) { |
+ if (rtc_decoder_) |
+ rtc_decoder_->Release(); |
RunUntilIdle(); // Wait until all callbascks complete. |
vda_loop_proxy_->DeleteSoon(FROM_HERE, rtc_decoder_.release()); |
// Make sure the decoder is released before stopping the thread. |
@@ -103,6 +109,14 @@ class RTCVideoDecoderTest : public ::testing::Test, |
base::WaitableEvent idle_waiter_; |
}; |
+TEST_F(RTCVideoDecoderTest, CreateReturnsNullOnUnsupportedCodec) { |
+ scoped_ptr<RTCVideoDecoder> null_rtc_decoder( |
+ RTCVideoDecoder::Create(webrtc::kVideoCodecI420, |
+ vda_thread_.message_loop_proxy(), |
+ mock_gpu_factories_)); |
+ EXPECT_EQ(NULL, null_rtc_decoder.get()); |
+} |
+ |
TEST_F(RTCVideoDecoderTest, InitDecodeReturnsErrorOnFeedbackMode) { |
codec_.codecType = webrtc::kVideoCodecVP8; |
codec_.codecSpecific.VP8.feedbackModeOn = true; |
@@ -141,8 +155,6 @@ TEST_F(RTCVideoDecoderTest, ResetReturnsOk) { |
TEST_F(RTCVideoDecoderTest, ReleaseReturnsOk) { |
Initialize(); |
- EXPECT_CALL(*mock_vda_, Reset()) |
- .WillOnce(Invoke(this, &RTCVideoDecoderTest::NotifyResetDone)); |
EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, rtc_decoder_->Release()); |
} |
Ami GONE FROM CHROMIUM
2013/07/22 19:46:21
Where's the test that multiple decoders can be cre
wuchengli
2013/07/23 16:29:28
Good point. That should be a new test file because
|