tor-browser

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

mock_voip_engine.h (3887B)


      1 /*
      2 *  Copyright (c) 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 
     11 #ifndef API_VOIP_TEST_MOCK_VOIP_ENGINE_H_
     12 #define API_VOIP_TEST_MOCK_VOIP_ENGINE_H_
     13 
     14 #include <cstdint>
     15 #include <map>
     16 #include <optional>
     17 
     18 #include "api/array_view.h"
     19 #include "api/audio_codecs/audio_format.h"
     20 #include "api/voip/voip_base.h"
     21 #include "api/voip/voip_codec.h"
     22 #include "api/voip/voip_dtmf.h"
     23 #include "api/voip/voip_engine.h"
     24 #include "api/voip/voip_network.h"
     25 #include "api/voip/voip_statistics.h"
     26 #include "api/voip/voip_volume_control.h"
     27 #include "test/gmock.h"
     28 
     29 namespace webrtc {
     30 
     31 class MockVoipBase : public VoipBase {
     32 public:
     33  MOCK_METHOD(ChannelId,
     34              CreateChannel,
     35              (Transport*, std::optional<uint32_t>),
     36              (override));
     37  MOCK_METHOD(VoipResult, ReleaseChannel, (ChannelId), (override));
     38  MOCK_METHOD(VoipResult, StartSend, (ChannelId), (override));
     39  MOCK_METHOD(VoipResult, StopSend, (ChannelId), (override));
     40  MOCK_METHOD(VoipResult, StartPlayout, (ChannelId), (override));
     41  MOCK_METHOD(VoipResult, StopPlayout, (ChannelId), (override));
     42 };
     43 
     44 class MockVoipCodec : public VoipCodec {
     45 public:
     46  MOCK_METHOD(VoipResult,
     47              SetSendCodec,
     48              (ChannelId, int, const SdpAudioFormat&),
     49              (override));
     50  MOCK_METHOD(VoipResult,
     51              SetReceiveCodecs,
     52              (ChannelId, (const std::map<int, SdpAudioFormat>&)),
     53              (override));
     54 };
     55 
     56 class MockVoipDtmf : public VoipDtmf {
     57 public:
     58  MOCK_METHOD(VoipResult,
     59              RegisterTelephoneEventType,
     60              (ChannelId, int, int),
     61              (override));
     62  MOCK_METHOD(VoipResult,
     63              SendDtmfEvent,
     64              (ChannelId, DtmfEvent, int),
     65              (override));
     66 };
     67 
     68 class MockVoipNetwork : public VoipNetwork {
     69 public:
     70  MOCK_METHOD(VoipResult,
     71              ReceivedRTPPacket,
     72              (ChannelId channel_id, ArrayView<const uint8_t> rtp_packet),
     73              (override));
     74  MOCK_METHOD(VoipResult,
     75              ReceivedRTCPPacket,
     76              (ChannelId channel_id, ArrayView<const uint8_t> rtcp_packet),
     77              (override));
     78 };
     79 
     80 class MockVoipStatistics : public VoipStatistics {
     81 public:
     82  MOCK_METHOD(VoipResult,
     83              GetIngressStatistics,
     84              (ChannelId, IngressStatistics&),
     85              (override));
     86  MOCK_METHOD(VoipResult,
     87              GetChannelStatistics,
     88              (ChannelId channel_id, ChannelStatistics&),
     89              (override));
     90 };
     91 
     92 class MockVoipVolumeControl : public VoipVolumeControl {
     93 public:
     94  MOCK_METHOD(VoipResult, SetInputMuted, (ChannelId, bool), (override));
     95 
     96  MOCK_METHOD(VoipResult,
     97              GetInputVolumeInfo,
     98              (ChannelId, VolumeInfo&),
     99              (override));
    100  MOCK_METHOD(VoipResult,
    101              GetOutputVolumeInfo,
    102              (ChannelId, VolumeInfo&),
    103              (override));
    104 };
    105 
    106 class MockVoipEngine : public VoipEngine {
    107 public:
    108  VoipBase& Base() override { return base_; }
    109  VoipNetwork& Network() override { return network_; }
    110  VoipCodec& Codec() override { return codec_; }
    111  VoipDtmf& Dtmf() override { return dtmf_; }
    112  VoipStatistics& Statistics() override { return statistics_; }
    113  VoipVolumeControl& VolumeControl() override { return volume_; }
    114 
    115  // Direct access to underlying members are required for testing.
    116  MockVoipBase base_;
    117  MockVoipNetwork network_;
    118  MockVoipCodec codec_;
    119  MockVoipDtmf dtmf_;
    120  MockVoipStatistics statistics_;
    121  MockVoipVolumeControl volume_;
    122 };
    123 
    124 }  // namespace webrtc
    125 
    126 #endif  // API_VOIP_TEST_MOCK_VOIP_ENGINE_H_