forked from JumpingYang001/webrtc
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding MockVoipEngine for downstream project's tests
Bug: webrtc:11989 Change-Id: Ie9cfe11a0c2b041457de66c3e3a6cdcd6179e4e9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201900 Commit-Queue: Tim Na <[email protected]> Reviewed-by: Mirko Bonadei <[email protected]> Reviewed-by: Harald Alvestrand <[email protected]> Cr-Commit-Position: refs/heads/master@{#33093}
- Loading branch information
Showing
5 changed files
with
162 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
/* | ||
* Copyright (c) 2021 The WebRTC project authors. All Rights Reserved. | ||
* | ||
* Use of this source code is governed by a BSD-style license | ||
* that can be found in the LICENSE file in the root of the source | ||
* tree. An additional intellectual property rights grant can be found | ||
* in the file PATENTS. All contributing project authors may | ||
* be found in the AUTHORS file in the root of the source tree. | ||
*/ | ||
|
||
// This file verifies that all include files in this directory can be | ||
// compiled without errors or other required includes. | ||
|
||
#include "api/voip/test/mock_voip_engine.h" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
/* | ||
* Copyright (c) 2021 The WebRTC project authors. All Rights Reserved. | ||
* | ||
* Use of this source code is governed by a BSD-style license | ||
* that can be found in the LICENSE file in the root of the source | ||
* tree. An additional intellectual property rights grant can be found | ||
* in the file PATENTS. All contributing project authors may | ||
* be found in the AUTHORS file in the root of the source tree. | ||
*/ | ||
|
||
#ifndef API_VOIP_TEST_MOCK_VOIP_ENGINE_H_ | ||
#define API_VOIP_TEST_MOCK_VOIP_ENGINE_H_ | ||
|
||
#include <map> | ||
|
||
#include "absl/types/optional.h" | ||
#include "api/array_view.h" | ||
#include "api/voip/voip_base.h" | ||
#include "api/voip/voip_codec.h" | ||
#include "api/voip/voip_dtmf.h" | ||
#include "api/voip/voip_engine.h" | ||
#include "api/voip/voip_network.h" | ||
#include "api/voip/voip_statistics.h" | ||
#include "api/voip/voip_volume_control.h" | ||
#include "test/gmock.h" | ||
|
||
namespace webrtc { | ||
|
||
class MockVoipBase : public VoipBase { | ||
public: | ||
MOCK_METHOD(ChannelId, | ||
CreateChannel, | ||
(Transport*, absl::optional<uint32_t>), | ||
(override)); | ||
MOCK_METHOD(VoipResult, ReleaseChannel, (ChannelId), (override)); | ||
MOCK_METHOD(VoipResult, StartSend, (ChannelId), (override)); | ||
MOCK_METHOD(VoipResult, StopSend, (ChannelId), (override)); | ||
MOCK_METHOD(VoipResult, StartPlayout, (ChannelId), (override)); | ||
MOCK_METHOD(VoipResult, StopPlayout, (ChannelId), (override)); | ||
}; | ||
|
||
class MockVoipCodec : public VoipCodec { | ||
public: | ||
MOCK_METHOD(VoipResult, | ||
SetSendCodec, | ||
(ChannelId, int, const SdpAudioFormat&), | ||
(override)); | ||
MOCK_METHOD(VoipResult, | ||
SetReceiveCodecs, | ||
(ChannelId, (const std::map<int, SdpAudioFormat>&)), | ||
(override)); | ||
}; | ||
|
||
class MockVoipDtmf : public VoipDtmf { | ||
public: | ||
MOCK_METHOD(VoipResult, | ||
RegisterTelephoneEventType, | ||
(ChannelId, int, int), | ||
(override)); | ||
MOCK_METHOD(VoipResult, | ||
SendDtmfEvent, | ||
(ChannelId, DtmfEvent, int), | ||
(override)); | ||
}; | ||
|
||
class MockVoipNetwork : public VoipNetwork { | ||
public: | ||
MOCK_METHOD(VoipResult, | ||
ReceivedRTPPacket, | ||
(ChannelId channel_id, rtc::ArrayView<const uint8_t> rtp_packet), | ||
(override)); | ||
MOCK_METHOD(VoipResult, | ||
ReceivedRTCPPacket, | ||
(ChannelId channel_id, rtc::ArrayView<const uint8_t> rtcp_packet), | ||
(override)); | ||
}; | ||
|
||
class MockVoipStatistics : public VoipStatistics { | ||
public: | ||
MOCK_METHOD(VoipResult, | ||
GetIngressStatistics, | ||
(ChannelId, IngressStatistics&), | ||
(override)); | ||
MOCK_METHOD(VoipResult, | ||
GetChannelStatistics, | ||
(ChannelId channel_id, ChannelStatistics&), | ||
(override)); | ||
}; | ||
|
||
class MockVoipVolumeControl : public VoipVolumeControl { | ||
public: | ||
MOCK_METHOD(VoipResult, SetInputMuted, (ChannelId, bool), (override)); | ||
|
||
MOCK_METHOD(VoipResult, | ||
GetInputVolumeInfo, | ||
(ChannelId, VolumeInfo&), | ||
(override)); | ||
MOCK_METHOD(VoipResult, | ||
GetOutputVolumeInfo, | ||
(ChannelId, VolumeInfo&), | ||
(override)); | ||
}; | ||
|
||
class MockVoipEngine : public VoipEngine { | ||
public: | ||
VoipBase& Base() override { return base_; } | ||
VoipNetwork& Network() override { return network_; } | ||
VoipCodec& Codec() override { return codec_; } | ||
VoipDtmf& Dtmf() override { return dtmf_; } | ||
VoipStatistics& Statistics() override { return statistics_; } | ||
VoipVolumeControl& VolumeControl() override { return volume_; } | ||
|
||
// Direct access to underlying members are required for testing. | ||
MockVoipBase base_; | ||
MockVoipNetwork network_; | ||
MockVoipCodec codec_; | ||
MockVoipDtmf dtmf_; | ||
MockVoipStatistics statistics_; | ||
MockVoipVolumeControl volume_; | ||
}; | ||
|
||
} // namespace webrtc | ||
|
||
#endif // API_VOIP_TEST_MOCK_VOIP_ENGINE_H_ |
File renamed without changes.