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

Unified Diff: media/base/pipeline_unittest.cc

Issue 9968117: Move Demuxer::set_host() to Initialize(). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: fixes Created 8 years, 9 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/base/pipeline.cc ('k') | media/filters/chunk_demuxer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/pipeline_unittest.cc
diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
index 14d39d9f9e9f5028fc9f5ca45c46336825fdf7a5..5827ff66ed58c6ee201ab2b0c69880541a3948da 100644
--- a/media/base/pipeline_unittest.cc
+++ b/media/base/pipeline_unittest.cc
@@ -20,9 +20,9 @@
using ::testing::_;
using ::testing::DeleteArg;
+using ::testing::DoAll;
using ::testing::InSequence;
using ::testing::Invoke;
-using ::testing::InvokeArgument;
using ::testing::Mock;
using ::testing::NotNull;
using ::testing::Return;
@@ -32,11 +32,22 @@ using ::testing::WithArg;
namespace media {
-// Total bytes of the data source.
+// Demuxer properties.
static const int kTotalBytes = 1024;
-
-// Buffered bytes of the data source.
static const int kBufferedBytes = 1024;
+static const int kBitrate = 1234;
+static const bool kLocalSource = false;
+static const bool kSeekable = true;
+
+ACTION_P(InitializeDemuxerWithError, error) {
+ arg1.Run(error);
+}
+
+ACTION_P(SetDemuxerProperties, duration) {
+ arg0->SetTotalBytes(kTotalBytes);
+ arg0->SetBufferedBytes(kBufferedBytes);
+ arg0->SetDuration(duration);
+}
// Used for setting expectations on pipeline callbacks. Using a StrictMock
// also lets us test for missing callbacks.
@@ -67,7 +78,7 @@ class PipelineTest : public ::testing::Test {
: pipeline_(new Pipeline(&message_loop_, new MediaLog())) {
mocks_.reset(new MockFilterCollection());
- // InitializeDemuxer adds overriding expectations for expected non-NULL
+ // InitializeDemuxer() adds overriding expectations for expected non-NULL
// streams.
DemuxerStream* null_pointer = NULL;
EXPECT_CALL(*mocks_->demuxer(), GetStream(_))
@@ -97,16 +108,23 @@ class PipelineTest : public ::testing::Test {
typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector;
void InitializeDemuxer(MockDemuxerStreamVector* streams,
const base::TimeDelta& duration) {
- EXPECT_CALL(*mocks_->demuxer(), Initialize(_))
- .WillOnce(Invoke(&RunPipelineStatusCB));
- mocks_->demuxer()->SetTotalAndBufferedBytesAndDuration(
- kTotalBytes, kBufferedBytes, duration);
+ EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _))
+ .WillOnce(DoAll(SetDemuxerProperties(duration),
+ Invoke(&RunPipelineStatusCB2)));
EXPECT_CALL(*mocks_->demuxer(), SetPlaybackRate(0.0f));
EXPECT_CALL(*mocks_->demuxer(), Seek(mocks_->demuxer()->GetStartTime(), _))
.WillOnce(Invoke(&RunPipelineStatusCB2));
EXPECT_CALL(*mocks_->demuxer(), Stop(_))
.WillOnce(Invoke(&RunStopFilterCallback));
+ // Demuxer properties.
+ EXPECT_CALL(*mocks_->demuxer(), GetBitrate())
+ .WillRepeatedly(Return(kBitrate));
+ EXPECT_CALL(*mocks_->demuxer(), IsLocalSource())
+ .WillRepeatedly(Return(kLocalSource));
+ EXPECT_CALL(*mocks_->demuxer(), IsSeekable())
+ .WillRepeatedly(Return(kSeekable));
+
// Configure the demuxer to return the streams.
for (size_t i = 0; i < streams->size(); ++i) {
scoped_refptr<DemuxerStream> stream((*streams)[i]);
@@ -115,6 +133,11 @@ class PipelineTest : public ::testing::Test {
}
}
+ void InitializeDemuxer(MockDemuxerStreamVector* streams) {
+ // Initialize with a default non-zero duration.
+ InitializeDemuxer(streams, base::TimeDelta::FromSeconds(10));
+ }
+
StrictMock<MockDemuxerStream>* CreateStream(DemuxerStream::Type type) {
StrictMock<MockDemuxerStream>* stream =
new StrictMock<MockDemuxerStream>();
@@ -281,7 +304,7 @@ TEST_F(PipelineTest, NotStarted) {
TEST_F(PipelineTest, NeverInitializes) {
// Don't execute the callback passed into Initialize().
- EXPECT_CALL(*mocks_->demuxer(), Initialize(_));
+ EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _));
EXPECT_CALL(*mocks_->demuxer(), Stop(_))
.WillOnce(Invoke(&RunStopFilterCallback));
@@ -322,9 +345,8 @@ TEST_F(PipelineTest, RequiredFilterMissing) {
}
TEST_F(PipelineTest, URLNotFound) {
- EXPECT_CALL(*mocks_->demuxer(), Initialize(_))
- .WillOnce(RunPipelineStatusCBWithError(
- PIPELINE_ERROR_URL_NOT_FOUND));
+ EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _))
+ .WillOnce(InitializeDemuxerWithError(PIPELINE_ERROR_URL_NOT_FOUND));
EXPECT_CALL(*mocks_->demuxer(), Stop(_))
.WillOnce(Invoke(&RunStopFilterCallback));
@@ -333,8 +355,8 @@ TEST_F(PipelineTest, URLNotFound) {
}
TEST_F(PipelineTest, NoStreams) {
- EXPECT_CALL(*mocks_->demuxer(), Initialize(_))
- .WillOnce(Invoke(&RunPipelineStatusCB));
+ EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _))
+ .WillOnce(Invoke(&RunPipelineStatusCB2));
EXPECT_CALL(*mocks_->demuxer(), Stop(_))
.WillOnce(Invoke(&RunStopFilterCallback));
@@ -347,7 +369,7 @@ TEST_F(PipelineTest, AudioStream) {
MockDemuxerStreamVector streams;
streams.push_back(audio_stream());
- InitializeDemuxer(&streams, base::TimeDelta());
+ InitializeDemuxer(&streams);
InitializeAudioDecoder(audio_stream());
InitializeAudioRenderer();
@@ -362,7 +384,7 @@ TEST_F(PipelineTest, VideoStream) {
MockDemuxerStreamVector streams;
streams.push_back(video_stream());
- InitializeDemuxer(&streams, base::TimeDelta());
+ InitializeDemuxer(&streams);
InitializeVideoDecoder(video_stream());
InitializeVideoRenderer();
@@ -379,7 +401,7 @@ TEST_F(PipelineTest, AudioVideoStream) {
streams.push_back(audio_stream());
streams.push_back(video_stream());
- InitializeDemuxer(&streams, base::TimeDelta());
+ InitializeDemuxer(&streams);
InitializeAudioDecoder(audio_stream());
InitializeAudioRenderer();
InitializeVideoDecoder(video_stream());
@@ -418,7 +440,7 @@ TEST_F(PipelineTest, SetVolume) {
MockDemuxerStreamVector streams;
streams.push_back(audio_stream());
- InitializeDemuxer(&streams, base::TimeDelta());
+ InitializeDemuxer(&streams);
InitializeAudioDecoder(audio_stream());
InitializeAudioRenderer();
@@ -522,7 +544,7 @@ TEST_F(PipelineTest, DisableAudioRenderer) {
streams.push_back(audio_stream());
streams.push_back(video_stream());
- InitializeDemuxer(&streams, base::TimeDelta());
+ InitializeDemuxer(&streams);
InitializeAudioDecoder(audio_stream());
InitializeAudioRenderer();
InitializeVideoDecoder(video_stream());
@@ -559,7 +581,7 @@ TEST_F(PipelineTest, DisableAudioRendererDuringInit) {
streams.push_back(audio_stream());
streams.push_back(video_stream());
- InitializeDemuxer(&streams, base::TimeDelta());
+ InitializeDemuxer(&streams);
InitializeAudioDecoder(audio_stream());
InitializeAudioRenderer(true);
InitializeVideoDecoder(video_stream());
@@ -592,7 +614,7 @@ TEST_F(PipelineTest, EndedCallback) {
streams.push_back(audio_stream());
streams.push_back(video_stream());
- InitializeDemuxer(&streams, base::TimeDelta());
+ InitializeDemuxer(&streams);
InitializeAudioDecoder(audio_stream());
InitializeAudioRenderer();
InitializeVideoDecoder(video_stream());
@@ -814,6 +836,24 @@ TEST_F(PipelineTest, StartTimeIsNonZero) {
EXPECT_EQ(kStartTime, pipeline_->GetCurrentTime());
}
+TEST_F(PipelineTest, DemuxerProperties) {
+ CreateAudioStream();
+ CreateVideoStream();
+ MockDemuxerStreamVector streams;
+ streams.push_back(audio_stream());
+ streams.push_back(video_stream());
+
+ InitializeDemuxer(&streams);
+ InitializeAudioDecoder(audio_stream());
+ InitializeAudioRenderer();
+ InitializeVideoDecoder(video_stream());
+ InitializeVideoRenderer();
+ InitializePipeline(PIPELINE_OK);
+
+ EXPECT_EQ(kLocalSource, pipeline_->IsLocalSource());
+ EXPECT_EQ(!kSeekable, pipeline_->IsStreaming());
+}
+
class FlexibleCallbackRunner : public base::DelegateSimpleThread::Delegate {
public:
FlexibleCallbackRunner(base::TimeDelta delay, PipelineStatus status,
« no previous file with comments | « media/base/pipeline.cc ('k') | media/filters/chunk_demuxer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698