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

Unified Diff: media/filters/decoder_base_unittest.cc

Issue 6901135: Rewriting FFmpegAudioDecoder and eliminating DecoderBase. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: all good Created 9 years, 3 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/ffmpeg_audio_decoder.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
deleted file mode 100644
index c742f919d157c8c64cee488852b4f79f061f0632..0000000000000000000000000000000000000000
--- a/media/filters/decoder_base_unittest.cc
+++ /dev/null
@@ -1,134 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <vector>
-
-#include "base/bind.h"
-#include "media/base/data_buffer.h"
-#include "media/base/mock_callback.h"
-#include "media/base/mock_filters.h"
-#include "media/base/mock_task.h"
-#include "media/base/pipeline.h"
-#include "media/filters/decoder_base.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using ::testing::_;
-using ::testing::AnyNumber;
-using ::testing::NotNull;
-using ::testing::StrictMock;
-using ::testing::WithArg;
-
-namespace media {
-
-class GTEST_TEST_CLASS_NAME_(DecoderBaseTest, FlowControl);
-
-class MockDecoderCallback {
- public:
- MOCK_METHOD1(OnReadComplete, void(scoped_refptr<Buffer> output));
-};
-
-class MockDecoderImpl : public DecoderBase<MockAudioDecoder, Buffer> {
- public:
- explicit MockDecoderImpl(MessageLoop* message_loop)
- : DecoderBase<MockAudioDecoder, Buffer>(message_loop) {
- }
-
- virtual ~MockDecoderImpl() {}
-
- // DecoderBase implementation.
- MOCK_METHOD3(DoInitialize,
- void(DemuxerStream* demuxer_stream,
- bool* success,
- Task* done_cb));
- MOCK_METHOD1(DoStop, void(Task* done_cb));
- MOCK_METHOD2(DoSeek, void(base::TimeDelta time, Task* done_cb));
- MOCK_METHOD1(DoDecode, void(Buffer* input));
-
- private:
- FRIEND_TEST(DecoderBaseTest, FlowControl);
-
- DISALLOW_COPY_AND_ASSIGN(MockDecoderImpl);
-};
-
-ACTION(Initialize) {
- base::ScopedTaskRunner done_runner(arg2);
- *arg1 = true;
-}
-
-ACTION_P(SaveDecodeRequest, list) {
- scoped_refptr<Buffer> buffer(arg0);
- list->push_back(buffer);
-}
-
-ACTION(CompleteDemuxRequest) {
- arg0.Run(new DataBuffer(0));
-}
-
-// Test the flow control of decoder base by the following sequence of actions:
-// - Read() -> DecoderStream
-// \ Read() -> DemuxerStream
-// - Read() -> DecoderBase
-// \ Read() -> DemixerStream
-// - ReadCallback() -> DecoderBase
-// \ DoDecode() -> Decoder
-// - ReadCallback() -> DecoderBase
-// \ DoDecode() -> Decoder
-// - DecodeCallback() -> DecoderBase
-// \ ReadCallback() -> client
-// - DecodeCallback() -> DecoderBase
-// \ ReadCallback() -> client
-TEST(DecoderBaseTest, FlowControl) {
- MessageLoop message_loop;
- scoped_refptr<MockDecoderImpl> decoder(new MockDecoderImpl(&message_loop));
-
- MockDecoderCallback read_callback;
- decoder->set_consume_audio_samples_callback(
- base::Bind(&MockDecoderCallback::OnReadComplete,
- base::Unretained(&read_callback)));
-
- scoped_refptr<MockDemuxerStream> demuxer_stream(new MockDemuxerStream());
- MockStatisticsCallback stats_callback_object;
- EXPECT_CALL(stats_callback_object, OnStatistics(_))
- .Times(AnyNumber());
-
- // Initialize.
- EXPECT_CALL(*decoder, DoInitialize(NotNull(), NotNull(), NotNull()))
- .WillOnce(Initialize());
- decoder->Initialize(demuxer_stream.get(), NewExpectedCallback(),
- NewCallback(&stats_callback_object,
- &MockStatisticsCallback::OnStatistics));
- message_loop.RunAllPending();
-
- // Read.
- std::vector<scoped_refptr<Buffer> > decode_requests;
- EXPECT_CALL(*demuxer_stream, Read(_))
- .Times(2)
- .WillRepeatedly(CompleteDemuxRequest());
- EXPECT_CALL(*decoder, DoDecode(NotNull()))
- .Times(2)
- .WillRepeatedly(SaveDecodeRequest(&decode_requests));
- scoped_refptr<DataBuffer> output;
- decoder->PostReadTaskHack(output);
- decoder->PostReadTaskHack(output);
- message_loop.RunAllPending();
-
- // Fulfill the decode request.
- EXPECT_CALL(read_callback, OnReadComplete(_)).Times(2);
- PipelineStatistics statistics;
- for (size_t i = 0; i < decode_requests.size(); ++i) {
- decoder->EnqueueResult(new DataBuffer(0));
- decoder->OnDecodeComplete(statistics);
- }
- decode_requests.clear();
- message_loop.RunAllPending();
-
- // Stop.
- EXPECT_CALL(*decoder, DoStop(_))
- .WillOnce(WithArg<0>(InvokeRunnable()));
- decoder->Stop(NewExpectedCallback());
- message_loop.RunAllPending();
-}
-
-} // namespace media
« no previous file with comments | « media/filters/decoder_base.h ('k') | media/filters/ffmpeg_audio_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698