| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 const uint32_t kSsrcZ = 0x42; | 57 const uint32_t kSsrcZ = 0x42; |
| 58 const uint32_t kSsrcW = 0x02; | 58 const uint32_t kSsrcW = 0x02; |
| 59 const uint32_t kSsrcs4[] = { 11, 200, 30, 44 }; | 59 const uint32_t kSsrcs4[] = { 11, 200, 30, 44 }; |
| 60 | 60 |
| 61 constexpr int kRtpHistoryMs = 5000; | 61 constexpr int kRtpHistoryMs = 5000; |
| 62 | 62 |
| 63 class FakeVoEWrapper : public cricket::VoEWrapper { | 63 class FakeVoEWrapper : public cricket::VoEWrapper { |
| 64 public: | 64 public: |
| 65 explicit FakeVoEWrapper(cricket::FakeWebRtcVoiceEngine* engine) | 65 explicit FakeVoEWrapper(cricket::FakeWebRtcVoiceEngine* engine) |
| 66 : cricket::VoEWrapper(engine, // base | 66 : cricket::VoEWrapper(engine, // base |
| 67 engine, // codec | 67 engine) { // codec |
| 68 engine) { // hw | |
| 69 } | 68 } |
| 70 }; | 69 }; |
| 71 | 70 |
| 72 class MockTransmitMixer : public webrtc::voe::TransmitMixer { | 71 class MockTransmitMixer : public webrtc::voe::TransmitMixer { |
| 73 public: | 72 public: |
| 74 MockTransmitMixer() = default; | 73 MockTransmitMixer() = default; |
| 75 virtual ~MockTransmitMixer() = default; | 74 virtual ~MockTransmitMixer() = default; |
| 76 | 75 |
| 77 MOCK_METHOD1(EnableStereoChannelSwapping, void(bool enable)); | 76 MOCK_METHOD1(EnableStereoChannelSwapping, void(bool enable)); |
| 78 }; | 77 }; |
| 78 |
| 79 void AdmSetupExpectations(webrtc::test::MockAudioDeviceModule* adm) { |
| 80 RTC_DCHECK(adm); |
| 81 EXPECT_CALL(*adm, AddRef()).WillOnce(Return(0)); |
| 82 EXPECT_CALL(*adm, Release()).WillOnce(Return(0)); |
| 83 #if !defined(WEBRTC_IOS) |
| 84 EXPECT_CALL(*adm, Recording()).WillOnce(Return(false)); |
| 85 EXPECT_CALL(*adm, SetRecordingChannel(webrtc::AudioDeviceModule:: |
| 86 ChannelType::kChannelBoth)).WillOnce(Return(0)); |
| 87 #if defined(WEBRTC_WIN) |
| 88 EXPECT_CALL(*adm, SetRecordingDevice( |
| 89 testing::Matcher<webrtc::AudioDeviceModule::WindowsDeviceType>( |
| 90 webrtc::AudioDeviceModule::kDefaultCommunicationDevice))) |
| 91 .WillOnce(Return(0)); |
| 92 #else |
| 93 EXPECT_CALL(*adm, SetRecordingDevice(0)).WillOnce(Return(0)); |
| 94 #endif // #if defined(WEBRTC_WIN) |
| 95 EXPECT_CALL(*adm, InitMicrophone()).WillOnce(Return(0)); |
| 96 EXPECT_CALL(*adm, StereoRecordingIsAvailable(testing::_)).WillOnce(Return(0)); |
| 97 EXPECT_CALL(*adm, SetStereoRecording(false)).WillOnce(Return(0)); |
| 98 EXPECT_CALL(*adm, Playing()).WillOnce(Return(false)); |
| 99 #if defined(WEBRTC_WIN) |
| 100 EXPECT_CALL(*adm, SetPlayoutDevice( |
| 101 testing::Matcher<webrtc::AudioDeviceModule::WindowsDeviceType>( |
| 102 webrtc::AudioDeviceModule::kDefaultCommunicationDevice))) |
| 103 .WillOnce(Return(0)); |
| 104 #else |
| 105 EXPECT_CALL(*adm, SetPlayoutDevice(0)).WillOnce(Return(0)); |
| 106 #endif // #if defined(WEBRTC_WIN) |
| 107 EXPECT_CALL(*adm, InitSpeaker()).WillOnce(Return(0)); |
| 108 EXPECT_CALL(*adm, StereoPlayoutIsAvailable(testing::_)).WillOnce(Return(0)); |
| 109 EXPECT_CALL(*adm, SetStereoPlayout(false)).WillOnce(Return(0)); |
| 110 #endif // #if !defined(WEBRTC_IOS) |
| 111 EXPECT_CALL(*adm, BuiltInAECIsAvailable()).WillOnce(Return(false)); |
| 112 EXPECT_CALL(*adm, BuiltInAGCIsAvailable()).WillOnce(Return(false)); |
| 113 EXPECT_CALL(*adm, BuiltInNSIsAvailable()).WillOnce(Return(false)); |
| 114 EXPECT_CALL(*adm, SetAGC(true)).WillOnce(Return(0)); |
| 115 } |
| 79 } // namespace | 116 } // namespace |
| 80 | 117 |
| 81 // Tests that our stub library "works". | 118 // Tests that our stub library "works". |
| 82 TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) { | 119 TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) { |
| 83 StrictMock<webrtc::test::MockAudioDeviceModule> adm; | 120 StrictMock<webrtc::test::MockAudioDeviceModule> adm; |
| 84 EXPECT_CALL(adm, AddRef()).WillOnce(Return(0)); | 121 AdmSetupExpectations(&adm); |
| 85 EXPECT_CALL(adm, Release()).WillOnce(Return(0)); | |
| 86 EXPECT_CALL(adm, BuiltInAECIsAvailable()).WillOnce(Return(false)); | |
| 87 EXPECT_CALL(adm, BuiltInAGCIsAvailable()).WillOnce(Return(false)); | |
| 88 EXPECT_CALL(adm, BuiltInNSIsAvailable()).WillOnce(Return(false)); | |
| 89 EXPECT_CALL(adm, SetAGC(true)).WillOnce(Return(0)); | |
| 90 StrictMock<webrtc::test::MockAudioProcessing> apm; | 122 StrictMock<webrtc::test::MockAudioProcessing> apm; |
| 91 EXPECT_CALL(apm, ApplyConfig(testing::_)); | 123 EXPECT_CALL(apm, ApplyConfig(testing::_)); |
| 92 EXPECT_CALL(apm, SetExtraOptions(testing::_)); | 124 EXPECT_CALL(apm, SetExtraOptions(testing::_)); |
| 93 EXPECT_CALL(apm, Initialize()).WillOnce(Return(0)); | 125 EXPECT_CALL(apm, Initialize()).WillOnce(Return(0)); |
| 94 StrictMock<MockTransmitMixer> transmit_mixer; | 126 StrictMock<MockTransmitMixer> transmit_mixer; |
| 95 EXPECT_CALL(transmit_mixer, EnableStereoChannelSwapping(false)); | 127 EXPECT_CALL(transmit_mixer, EnableStereoChannelSwapping(false)); |
| 96 cricket::FakeWebRtcVoiceEngine voe(&apm, &transmit_mixer); | 128 cricket::FakeWebRtcVoiceEngine voe(&apm, &transmit_mixer); |
| 97 EXPECT_FALSE(voe.IsInited()); | 129 EXPECT_FALSE(voe.IsInited()); |
| 98 { | 130 { |
| 99 cricket::WebRtcVoiceEngine engine( | 131 cricket::WebRtcVoiceEngine engine( |
| (...skipping 16 matching lines...) Expand all Loading... |
| 116 class WebRtcVoiceEngineTestFake : public testing::Test { | 148 class WebRtcVoiceEngineTestFake : public testing::Test { |
| 117 public: | 149 public: |
| 118 WebRtcVoiceEngineTestFake() : WebRtcVoiceEngineTestFake("") {} | 150 WebRtcVoiceEngineTestFake() : WebRtcVoiceEngineTestFake("") {} |
| 119 | 151 |
| 120 explicit WebRtcVoiceEngineTestFake(const char* field_trials) | 152 explicit WebRtcVoiceEngineTestFake(const char* field_trials) |
| 121 : apm_gc_(*apm_.gain_control()), apm_ec_(*apm_.echo_cancellation()), | 153 : apm_gc_(*apm_.gain_control()), apm_ec_(*apm_.echo_cancellation()), |
| 122 apm_ns_(*apm_.noise_suppression()), apm_vd_(*apm_.voice_detection()), | 154 apm_ns_(*apm_.noise_suppression()), apm_vd_(*apm_.voice_detection()), |
| 123 call_(webrtc::Call::Config(&event_log_)), voe_(&apm_, &transmit_mixer_), | 155 call_(webrtc::Call::Config(&event_log_)), voe_(&apm_, &transmit_mixer_), |
| 124 override_field_trials_(field_trials) { | 156 override_field_trials_(field_trials) { |
| 125 // AudioDeviceModule. | 157 // AudioDeviceModule. |
| 126 EXPECT_CALL(adm_, AddRef()).WillOnce(Return(0)); | 158 AdmSetupExpectations(&adm_); |
| 127 EXPECT_CALL(adm_, Release()).WillOnce(Return(0)); | |
| 128 EXPECT_CALL(adm_, BuiltInAECIsAvailable()).WillOnce(Return(false)); | |
| 129 EXPECT_CALL(adm_, BuiltInAGCIsAvailable()).WillOnce(Return(false)); | |
| 130 EXPECT_CALL(adm_, BuiltInNSIsAvailable()).WillOnce(Return(false)); | |
| 131 EXPECT_CALL(adm_, SetAGC(true)).WillOnce(Return(0)); | |
| 132 // AudioProcessing. | 159 // AudioProcessing. |
| 133 EXPECT_CALL(apm_, ApplyConfig(testing::_)); | 160 EXPECT_CALL(apm_, ApplyConfig(testing::_)); |
| 134 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); | 161 EXPECT_CALL(apm_, SetExtraOptions(testing::_)); |
| 135 EXPECT_CALL(apm_, Initialize()).WillOnce(Return(0)); | 162 EXPECT_CALL(apm_, Initialize()).WillOnce(Return(0)); |
| 136 // Default Options. | 163 // Default Options. |
| 137 EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); | 164 EXPECT_CALL(apm_ec_, Enable(true)).WillOnce(Return(0)); |
| 138 EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); | 165 EXPECT_CALL(apm_ec_, enable_metrics(true)).WillOnce(Return(0)); |
| 139 EXPECT_CALL(apm_gc_, Enable(true)).WillOnce(Return(0)); | 166 EXPECT_CALL(apm_gc_, Enable(true)).WillOnce(Return(0)); |
| 140 EXPECT_CALL(apm_ns_, Enable(true)).WillOnce(Return(0)); | 167 EXPECT_CALL(apm_ns_, Enable(true)).WillOnce(Return(0)); |
| 141 EXPECT_CALL(apm_vd_, Enable(true)).WillOnce(Return(0)); | 168 EXPECT_CALL(apm_vd_, Enable(true)).WillOnce(Return(0)); |
| (...skipping 3667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3809 // Without this cast, the comparison turned unsigned and, thus, failed for -1. | 3836 // Without this cast, the comparison turned unsigned and, thus, failed for -1. |
| 3810 const int num_specs = static_cast<int>(specs.size()); | 3837 const int num_specs = static_cast<int>(specs.size()); |
| 3811 EXPECT_GE(find_codec({"cn", 8000, 1}), num_specs); | 3838 EXPECT_GE(find_codec({"cn", 8000, 1}), num_specs); |
| 3812 EXPECT_GE(find_codec({"cn", 16000, 1}), num_specs); | 3839 EXPECT_GE(find_codec({"cn", 16000, 1}), num_specs); |
| 3813 EXPECT_EQ(find_codec({"cn", 32000, 1}), -1); | 3840 EXPECT_EQ(find_codec({"cn", 32000, 1}), -1); |
| 3814 EXPECT_GE(find_codec({"telephone-event", 8000, 1}), num_specs); | 3841 EXPECT_GE(find_codec({"telephone-event", 8000, 1}), num_specs); |
| 3815 EXPECT_GE(find_codec({"telephone-event", 16000, 1}), num_specs); | 3842 EXPECT_GE(find_codec({"telephone-event", 16000, 1}), num_specs); |
| 3816 EXPECT_GE(find_codec({"telephone-event", 32000, 1}), num_specs); | 3843 EXPECT_GE(find_codec({"telephone-event", 32000, 1}), num_specs); |
| 3817 EXPECT_GE(find_codec({"telephone-event", 48000, 1}), num_specs); | 3844 EXPECT_GE(find_codec({"telephone-event", 48000, 1}), num_specs); |
| 3818 } | 3845 } |
| OLD | NEW |