tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

MockMediaDataDemuxer.h (2466B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #ifndef MOCK_MEDIA_DATA_DEMUXER_H_
      8 #define MOCK_MEDIA_DATA_DEMUXER_H_
      9 
     10 #include "MediaContainerType.h"
     11 #include "MediaDecoderOwner.h"
     12 #include "MediaMIMETypes.h"
     13 #include "VideoUtils.h"
     14 #include "gmock/gmock.h"
     15 
     16 namespace mozilla {
     17 
     18 class MockMediaDataDemuxer : public MediaDataDemuxer {
     19 public:
     20  MockMediaDataDemuxer() {
     21    ON_CALL(*this, Init).WillByDefault([]() {
     22      return InitPromise::CreateAndResolve(NS_OK, __func__);
     23    });
     24  }
     25 
     26  MOCK_METHOD(RefPtr<InitPromise>, Init, (), (override));
     27  MOCK_METHOD(uint32_t, GetNumberTracks, (TrackInfo::TrackType aType),
     28              (const, override));
     29  MOCK_METHOD(already_AddRefed<MediaTrackDemuxer>, GetTrackDemuxer,
     30              (TrackInfo::TrackType aType, uint32_t aTrackNumber), (override));
     31  MOCK_METHOD(bool, IsSeekable, (), (const, override));
     32 
     33 protected:
     34  ~MockMediaDataDemuxer() override = default;
     35 };
     36 
     37 class MockMediaTrackDemuxer : public MediaTrackDemuxer {
     38 public:
     39  // aExtendedMimeType must be a static string or otherwise alive when
     40  // GetInfo() is called.
     41  explicit MockMediaTrackDemuxer(const char* aExtendedMimeType) {
     42    ON_CALL(*this, GetInfo).WillByDefault([=]() {
     43      auto extended = MakeMediaContainerType(aExtendedMimeType).value();
     44      return CreateTrackInfoWithMIMETypeAndContainerTypeExtraParameters(
     45          extended.Type().AsString(), extended);
     46    });
     47  }
     48 
     49  MOCK_METHOD(UniquePtr<TrackInfo>, GetInfo, (), (const, override));
     50  MOCK_METHOD(RefPtr<SeekPromise>, Seek, (const media::TimeUnit& aTime),
     51              (override));
     52  RefPtr<SamplesPromise> GetSamples(int32_t aNumSamples = 1) override {
     53    EXPECT_EQ(aNumSamples, 1) << "Multiple samples not implemented";
     54    return MockGetSamples();
     55  }
     56  MOCK_METHOD(RefPtr<SamplesPromise>, MockGetSamples, ());
     57  MOCK_METHOD(void, Reset, (), (override));
     58  MOCK_METHOD(RefPtr<SkipAccessPointPromise>, SkipToNextRandomAccessPoint,
     59              (const media::TimeUnit& aTimeThreshold), (override));
     60  MOCK_METHOD(media::TimeIntervals, GetBuffered, (), (override));
     61 
     62 protected:
     63  ~MockMediaTrackDemuxer() override = default;
     64 };
     65 
     66 }  // namespace mozilla
     67 
     68 #endif /* MOCK_MEDIA_DATA_DEMUXER_H_ */