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

Unified Diff: media/filters/decoder_base_unittest.cc

Issue 2101022: refactoring decoder interface (Closed)
Patch Set: q Created 10 years, 7 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/decoder_base.h ('k') | media/filters/video_renderer_base.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/decoder_base_unittest.cc
diff --git a/media/filters/decoder_base_unittest.cc b/media/filters/decoder_base_unittest.cc
index 54686024b60c6fa5029d6fb690792af8a3348e86..e771989f947498af3246485e0f7286efad7e3975 100644
--- a/media/filters/decoder_base_unittest.cc
+++ b/media/filters/decoder_base_unittest.cc
@@ -9,6 +9,7 @@
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
+using ::testing::_;
using ::testing::NotNull;
using ::testing::StrictMock;
@@ -25,8 +26,6 @@ class MockDecoderOutput : public media::StreamSample {
MOCK_CONST_METHOD0(IsEndOfStream, bool());
};
-class MockDecoder : public media::MediaFilter {};
-
class MockBuffer : public media::Buffer {
public:
MockBuffer() {}
@@ -38,6 +37,24 @@ class MockBuffer : public media::Buffer {
DISALLOW_COPY_AND_ASSIGN(MockBuffer);
};
+class MockDecoder : public media::MediaFilter {
+ public:
+ typedef Callback1<scoped_refptr<MockDecoderOutput> >::Type
+ FillBufferDoneCallback;
+ void set_fill_buffer_done_callback_(FillBufferDoneCallback* callback) {
+ fill_buffer_done_callback_.reset(callback);
+ }
+ FillBufferDoneCallback* fill_buffer_done_callback() {
+ return fill_buffer_done_callback_.get();
+ }
+ scoped_ptr<FillBufferDoneCallback> fill_buffer_done_callback_;
+};
+
+class MockDecoderCallback {
+ public:
+ MOCK_METHOD1(OnReadComplete, void(scoped_refptr<MockDecoderOutput> output));
+};
+
class MockDecoderImpl : public media::DecoderBase<
MockDecoder, MockDecoderOutput> {
public:
@@ -62,16 +79,6 @@ class MockDecoderImpl : public media::DecoderBase<
DISALLOW_COPY_AND_ASSIGN(MockDecoderImpl);
};
-class MockDecoderReadCallback {
- public:
- MockDecoderReadCallback() {}
- virtual ~MockDecoderReadCallback() {}
- MOCK_METHOD1(ReadCallback, void(MockDecoderOutput* output));
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockDecoderReadCallback);
-};
-
} // namespace
namespace media {
@@ -107,6 +114,9 @@ ACTION(CompleteDemuxRequest) {
TEST(DecoderBaseTest, FlowControl) {
MessageLoop message_loop;
scoped_refptr<MockDecoderImpl> decoder = new MockDecoderImpl();
+ MockDecoderCallback read_callback;
+ decoder->set_fill_buffer_done_callback_(
+ NewCallback(&read_callback, &MockDecoderCallback::OnReadComplete));
scoped_refptr<MockDemuxerStream> demuxer_stream = new MockDemuxerStream();
StrictMock<MockFilterCallback> callback;
decoder->set_message_loop(&message_loop);
@@ -120,7 +130,6 @@ TEST(DecoderBaseTest, FlowControl) {
message_loop.RunAllPending();
// Read.
- StrictMock<MockDecoderReadCallback> read_callback;
std::vector<scoped_refptr<Buffer> > decode_requests;
EXPECT_CALL(*demuxer_stream, Read(NotNull()))
.Times(2)
@@ -128,16 +137,13 @@ TEST(DecoderBaseTest, FlowControl) {
EXPECT_CALL(*decoder, DoDecode(NotNull()))
.Times(2)
.WillRepeatedly(SaveDecodeRequest(&decode_requests));
- decoder->Read(
- NewCallback(reinterpret_cast<MockDecoderReadCallback*>(&read_callback),
- &MockDecoderReadCallback::ReadCallback));
- decoder->Read(
- NewCallback(reinterpret_cast<MockDecoderReadCallback*>(&read_callback),
- &MockDecoderReadCallback::ReadCallback));
+ scoped_refptr<MockDecoderOutput> output;
+ decoder->FillThisBuffer(output);
+ decoder->FillThisBuffer(output);
message_loop.RunAllPending();
// Fulfill the decode request.
- EXPECT_CALL(read_callback, ReadCallback(NotNull())).Times(2);
+ EXPECT_CALL(read_callback, OnReadComplete(_)).Times(2);
for (size_t i = 0; i < decode_requests.size(); ++i) {
decoder->EnqueueResult(new MockDecoderOutput());
decoder->OnDecodeComplete();
« no previous file with comments | « media/filters/decoder_base.h ('k') | media/filters/video_renderer_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698