/* * Copyright (c) 2012 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. */ #include "webrtc/voice_engine/include/voe_audio_processing.h" #include "testing/gtest/include/gtest/gtest.h" #include "webrtc/voice_engine/include/voe_base.h" namespace webrtc { namespace voe { namespace { class VoEAudioProcessingTest : public ::testing::Test { protected: VoEAudioProcessingTest() : voe_(VoiceEngine::Create()), base_(VoEBase::GetInterface(voe_)), audioproc_(VoEAudioProcessing::GetInterface(voe_)) {} virtual ~VoEAudioProcessingTest() { base_->Terminate(); audioproc_->Release(); base_->Release(); VoiceEngine::Delete(voe_); } VoiceEngine* voe_; VoEBase* base_; VoEAudioProcessing* audioproc_; }; TEST_F(VoEAudioProcessingTest, FailureIfNotInitialized) { EXPECT_EQ(-1, audioproc_->EnableDriftCompensation(true)); EXPECT_EQ(-1, audioproc_->EnableDriftCompensation(false)); EXPECT_FALSE(audioproc_->DriftCompensationEnabled()); } // TODO(andrew): Investigate race conditions triggered by this test: // https://code.google.com/p/webrtc/issues/detail?id=788 TEST_F(VoEAudioProcessingTest, DISABLED_DriftCompensationIsEnabledIfSupported) { ASSERT_EQ(0, base_->Init()); // TODO(andrew): Ideally, DriftCompensationSupported() would be mocked. bool supported = VoEAudioProcessing::DriftCompensationSupported(); if (supported) { EXPECT_EQ(0, audioproc_->EnableDriftCompensation(true)); EXPECT_TRUE(audioproc_->DriftCompensationEnabled()); EXPECT_EQ(0, audioproc_->EnableDriftCompensation(false)); EXPECT_FALSE(audioproc_->DriftCompensationEnabled()); } else { EXPECT_EQ(-1, audioproc_->EnableDriftCompensation(true)); EXPECT_FALSE(audioproc_->DriftCompensationEnabled()); EXPECT_EQ(-1, audioproc_->EnableDriftCompensation(false)); EXPECT_FALSE(audioproc_->DriftCompensationEnabled()); } } } // namespace } // namespace voe } // namespace webrtc