[M120 Migration][hbbtv] Audio tracks count notification
[platform/framework/web/chromium-efl.git] / media / filters / hls_test_helpers.h
1 // Copyright 2023 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_FILTERS_HLS_TEST_HELPERS_H_
6 #define MEDIA_FILTERS_HLS_TEST_HELPERS_H_
7
8 #include "media/filters/hls_codec_detector.h"
9 #include "media/filters/hls_data_source_provider.h"
10 #include "media/filters/hls_rendition.h"
11 #include "media/filters/manifest_demuxer.h"
12 #include "testing/gmock/include/gmock/gmock.h"
13
14 namespace media {
15
16 class MockCodecDetector : public HlsCodecDetector {
17  public:
18   ~MockCodecDetector() override;
19   MockCodecDetector();
20   MOCK_METHOD(void,
21               DetermineContainerAndCodec,
22               (std::unique_ptr<HlsDataSourceStream>, CodecCallback),
23               (override));
24   MOCK_METHOD(void,
25               DetermineContainerOnly,
26               (std::unique_ptr<HlsDataSourceStream> stream, CodecCallback cb),
27               (override));
28 };
29
30 class MockHlsDataSourceProvider : public HlsDataSourceProvider {
31  public:
32   MockHlsDataSourceProvider();
33   ~MockHlsDataSourceProvider() override;
34   MOCK_METHOD(void,
35               ReadFromUrl,
36               (GURL,
37                absl::optional<hls::types::ByteRange>,
38                HlsDataSourceProvider::ReadCb),
39               (override));
40   MOCK_METHOD(void,
41               ReadFromExistingStream,
42               (std::unique_ptr<HlsDataSourceStream>,
43                HlsDataSourceProvider::ReadCb),
44               (override));
45   MOCK_METHOD(void,
46               AbortPendingReads,
47               (base::OnceClosure callback),
48               (override));
49 };
50
51 class StringHlsDataSourceStreamFactory {
52  public:
53   static std::unique_ptr<HlsDataSourceStream> CreateStream(std::string content);
54 };
55
56 class FileHlsDataSourceStreamFactory {
57  public:
58   static std::unique_ptr<HlsDataSourceStream> CreateStream(std::string file);
59 };
60
61 class MockManifestDemuxerEngineHost : public ManifestDemuxerEngineHost {
62  public:
63   MockManifestDemuxerEngineHost();
64   ~MockManifestDemuxerEngineHost() override;
65   MOCK_METHOD(bool,
66               AddRole,
67               (base::StringPiece, std::string, std::string),
68               (override));
69   MOCK_METHOD(void, RemoveRole, (base::StringPiece), (override));
70   MOCK_METHOD(void, SetSequenceMode, (base::StringPiece, bool), (override));
71   MOCK_METHOD(void, SetDuration, (double), (override));
72   MOCK_METHOD(Ranges<base::TimeDelta>,
73               GetBufferedRanges,
74               (base::StringPiece),
75               (override));
76   MOCK_METHOD(void,
77               Remove,
78               (base::StringPiece, base::TimeDelta, base::TimeDelta),
79               (override));
80   MOCK_METHOD(
81       void,
82       RemoveAndReset,
83       (base::StringPiece, base::TimeDelta, base::TimeDelta, base::TimeDelta*),
84       (override));
85   MOCK_METHOD(void,
86               SetGroupStartIfParsingAndSequenceMode,
87               (base::StringPiece, base::TimeDelta),
88               (override));
89   MOCK_METHOD(void,
90               EvictCodedFrames,
91               (base::StringPiece, base::TimeDelta, size_t),
92               (override));
93   MOCK_METHOD(bool,
94               AppendAndParseData,
95               (base::StringPiece,
96                base::TimeDelta,
97                base::TimeDelta,
98                base::TimeDelta*,
99                const uint8_t*,
100                size_t),
101               (override));
102   MOCK_METHOD(void, OnError, (PipelineStatus), (override));
103   MOCK_METHOD(void, RequestSeek, (base::TimeDelta), (override));
104   MOCK_METHOD(void,
105               SetGroupStartTimestamp,
106               (base::StringPiece role, base::TimeDelta time),
107               (override));
108   MOCK_METHOD(void, SetEndOfStream, (), (override));
109   MOCK_METHOD(void, UnsetEndOfStream, (), (override));
110 };
111
112 class MockHlsRenditionHost : public HlsRenditionHost {
113  public:
114   MockHlsRenditionHost();
115   ~MockHlsRenditionHost() override;
116   MOCK_METHOD(void,
117               ReadFromUrl,
118               (GURL uri,
119                bool read_chunked,
120                absl::optional<hls::types::ByteRange> range,
121                HlsDataSourceProvider::ReadCb cb),
122               (override));
123
124   MOCK_METHOD(hls::ParseStatus::Or<scoped_refptr<hls::MediaPlaylist>>,
125               ParseMediaPlaylistFromStringSource,
126               (base::StringPiece source,
127                GURL uri,
128                hls::types::DecimalInteger version),
129               (override));
130
131   MOCK_METHOD(void,
132               ReadStream,
133               (std::unique_ptr<HlsDataSourceStream>,
134                HlsDataSourceProvider::ReadCb),
135               (override));
136 };
137
138 class MockHlsRendition : public HlsRendition {
139  public:
140   MockHlsRendition();
141   ~MockHlsRendition() override;
142
143   MOCK_METHOD(void,
144               CheckState,
145               (base::TimeDelta time,
146                double rate,
147                ManifestDemuxer::DelayCallback cb),
148               (override));
149   MOCK_METHOD(ManifestDemuxer::SeekResponse,
150               Seek,
151               (base::TimeDelta time),
152               (override));
153   MOCK_METHOD(void, StartWaitingForSeek, (), (override));
154   MOCK_METHOD(absl::optional<base::TimeDelta>, GetDuration, (), (override));
155   MOCK_METHOD(void, Stop, (), (override));
156 };
157
158 }  // namespace media
159
160 #endif  // MEDIA_FILTERS_HLS_TEST_HELPERS_H_