Home | History | Annotate | Download | only in base
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/message_loop/message_loop.h"
      6 #include "media/base/audio_decoder_config.h"
      7 #include "media/base/demuxer_stream.h"
      8 #include "media/base/video_decoder_config.h"
      9 #include "testing/gmock/include/gmock/gmock.h"
     10 
     11 namespace media {
     12 
     13 // Fake implementation of the DemuxerStream.  These are the stream objects
     14 // we pass to the text renderer object when streams are added and removed.
     15 class FakeTextTrackStream : public DemuxerStream {
     16  public:
     17   FakeTextTrackStream();
     18   virtual ~FakeTextTrackStream();
     19 
     20   // DemuxerStream implementation.
     21   virtual void Read(const ReadCB&) OVERRIDE;
     22   MOCK_METHOD0(audio_decoder_config, AudioDecoderConfig());
     23   MOCK_METHOD0(video_decoder_config, VideoDecoderConfig());
     24   virtual Type type() OVERRIDE;
     25   MOCK_METHOD0(EnableBitstreamConverter, void());
     26   virtual bool SupportsConfigChanges();
     27 
     28   void SatisfyPendingRead(const base::TimeDelta& start,
     29                           const base::TimeDelta& duration,
     30                           const std::string& id,
     31                           const std::string& content,
     32                           const std::string& settings);
     33   void AbortPendingRead();
     34   void SendEosNotification();
     35 
     36   void Stop();
     37 
     38   MOCK_METHOD0(OnRead, void());
     39 
     40  private:
     41   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
     42   ReadCB read_cb_;
     43   bool stopping_;
     44 
     45   DISALLOW_COPY_AND_ASSIGN(FakeTextTrackStream);
     46 };
     47 
     48 }  // namespace media
     49