1 /* 2 * Copyright 2021 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 #ifndef PC_TEST_MOCK_VOICE_MEDIA_CHANNEL_H_ 11 #define PC_TEST_MOCK_VOICE_MEDIA_CHANNEL_H_ 12 13 #include <memory> 14 #include <string> 15 #include <vector> 16 17 #include "api/call/audio_sink.h" 18 #include "media/base/media_channel.h" 19 #include "rtc_base/gunit.h" 20 #include "test/gmock.h" 21 #include "test/gtest.h" 22 23 using ::testing::InvokeWithoutArgs; 24 using ::testing::Mock; 25 26 namespace cricket { 27 class MockVoiceMediaChannel : public VoiceMediaChannel { 28 public: MockVoiceMediaChannel(webrtc::TaskQueueBase * network_thread)29 explicit MockVoiceMediaChannel(webrtc::TaskQueueBase* network_thread) 30 : VoiceMediaChannel(network_thread) {} 31 32 MOCK_METHOD(void, SetInterface, (NetworkInterface * iface), (override)); 33 MOCK_METHOD(void, 34 OnPacketReceived, 35 (rtc::CopyOnWriteBuffer packet, int64_t packet_time_us), 36 (override)); 37 MOCK_METHOD(void, 38 OnPacketSent, 39 (const rtc::SentPacket& sent_packet), 40 (override)); 41 MOCK_METHOD(void, OnReadyToSend, (bool ready), (override)); 42 MOCK_METHOD(void, 43 OnNetworkRouteChanged, 44 (absl::string_view transport_name, 45 const rtc::NetworkRoute& network_route), 46 (override)); 47 MOCK_METHOD(bool, AddSendStream, (const StreamParams& sp), (override)); 48 MOCK_METHOD(bool, RemoveSendStream, (uint32_t ssrc), (override)); 49 MOCK_METHOD(bool, AddRecvStream, (const StreamParams& sp), (override)); 50 MOCK_METHOD(bool, RemoveRecvStream, (uint32_t ssrc), (override)); 51 MOCK_METHOD(void, ResetUnsignaledRecvStream, (), (override)); 52 MOCK_METHOD(void, OnDemuxerCriteriaUpdatePending, (), (override)); 53 MOCK_METHOD(void, OnDemuxerCriteriaUpdateComplete, (), (override)); 54 MOCK_METHOD(int, GetRtpSendTimeExtnId, (), (const, override)); 55 MOCK_METHOD( 56 void, 57 SetFrameEncryptor, 58 (uint32_t ssrc, 59 rtc::scoped_refptr<webrtc::FrameEncryptorInterface> frame_encryptor), 60 (override)); 61 MOCK_METHOD( 62 void, 63 SetFrameDecryptor, 64 (uint32_t ssrc, 65 rtc::scoped_refptr<webrtc::FrameDecryptorInterface> frame_decryptor), 66 (override)); 67 MOCK_METHOD(void, SetVideoCodecSwitchingEnabled, (bool enabled), (override)); 68 MOCK_METHOD(webrtc::RtpParameters, 69 GetRtpSendParameters, 70 (uint32_t ssrc), 71 (const, override)); 72 MOCK_METHOD(webrtc::RTCError, 73 SetRtpSendParameters, 74 (uint32_t ssrc, 75 const webrtc::RtpParameters& parameters, 76 webrtc::SetParametersCallback callback), 77 (override)); 78 MOCK_METHOD( 79 void, 80 SetEncoderToPacketizerFrameTransformer, 81 (uint32_t ssrc, 82 rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer), 83 (override)); 84 MOCK_METHOD( 85 void, 86 SetDepacketizerToDecoderFrameTransformer, 87 (uint32_t ssrc, 88 rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer), 89 (override)); 90 91 MOCK_METHOD(bool, 92 SetSendParameters, 93 (const AudioSendParameters& params), 94 (override)); 95 MOCK_METHOD(bool, 96 SetRecvParameters, 97 (const AudioRecvParameters& params), 98 (override)); 99 MOCK_METHOD(webrtc::RtpParameters, 100 GetRtpReceiveParameters, 101 (uint32_t ssrc), 102 (const, override)); 103 MOCK_METHOD(webrtc::RtpParameters, 104 GetDefaultRtpReceiveParameters, 105 (), 106 (const, override)); 107 MOCK_METHOD(void, SetPlayout, (bool playout), (override)); 108 MOCK_METHOD(void, SetSend, (bool send), (override)); 109 MOCK_METHOD(bool, 110 SetAudioSend, 111 (uint32_t ssrc, 112 bool enable, 113 const AudioOptions* options, 114 AudioSource* source), 115 (override)); 116 MOCK_METHOD(bool, 117 SetOutputVolume, 118 (uint32_t ssrc, double volume), 119 (override)); 120 MOCK_METHOD(bool, SetDefaultOutputVolume, (double volume), (override)); 121 MOCK_METHOD(bool, CanInsertDtmf, (), (override)); 122 MOCK_METHOD(bool, 123 InsertDtmf, 124 (uint32_t ssrc, int event, int duration), 125 (override)); 126 MOCK_METHOD(bool, 127 GetStats, 128 (VoiceMediaInfo * info, bool get_and_clear_legacy_stats), 129 (override)); 130 MOCK_METHOD(void, 131 SetRawAudioSink, 132 (uint32_t ssrc, std::unique_ptr<webrtc::AudioSinkInterface> sink), 133 (override)); 134 MOCK_METHOD(void, 135 SetDefaultRawAudioSink, 136 (std::unique_ptr<webrtc::AudioSinkInterface> sink), 137 (override)); 138 MOCK_METHOD(std::vector<webrtc::RtpSource>, 139 GetSources, 140 (uint32_t ssrc), 141 (const, override)); 142 143 MOCK_METHOD(bool, 144 SetBaseMinimumPlayoutDelayMs, 145 (uint32_t ssrc, int delay_ms), 146 (override)); 147 MOCK_METHOD(absl::optional<int>, 148 GetBaseMinimumPlayoutDelayMs, 149 (uint32_t ssrc), 150 (const, override)); 151 }; 152 } // namespace cricket 153 154 #endif // PC_TEST_MOCK_VOICE_MEDIA_CHANNEL_H_ 155