1b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org/* 2b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 3b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org * 4b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org */ 10b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 11b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org#include "webrtc/voice_engine/include/voe_base.h" 12b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 13b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org#include "testing/gtest/include/gtest/gtest.h" 14b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org#include "webrtc/modules/audio_device/include/fake_audio_device.h" 15471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/modules/audio_processing/include/audio_processing.h" 16b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org#include "webrtc/system_wrappers/interface/scoped_ptr.h" 17b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 18b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.orgnamespace webrtc { 19b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 20b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.orgclass VoEBaseTest : public ::testing::Test { 21b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org protected: 22b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org VoEBaseTest() : 23b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org voe_(VoiceEngine::Create()), 24b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org base_(VoEBase::GetInterface(voe_)), 25b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org adm_(new FakeAudioDeviceModule) { 26b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org } 27b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 28b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org ~VoEBaseTest() { 29b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org base_->Release(); 30b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org VoiceEngine::Delete(voe_); 31b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org } 32b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 33b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org VoiceEngine* voe_; 34b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org VoEBase* base_; 35b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org scoped_ptr<FakeAudioDeviceModule> adm_; 36b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org}; 37b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 38b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.orgTEST_F(VoEBaseTest, AcceptsAudioProcessingPtr) { 39b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org AudioProcessing* audioproc = AudioProcessing::Create(0); 40b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org EXPECT_EQ(0, base_->Init(adm_.get(), audioproc)); 41b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org EXPECT_EQ(audioproc, base_->audio_processing()); 42b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org} 43b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 44b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.orgTEST_F(VoEBaseTest, AudioProcessingCreatedAfterInit) { 45b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org EXPECT_TRUE(base_->audio_processing() == NULL); 46b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org EXPECT_EQ(0, base_->Init(adm_.get(), NULL)); 47b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org EXPECT_TRUE(base_->audio_processing() != NULL); 48b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org} 49b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org 50b79627b0f3cf072721f3ae4a584a4f90edba2d1bandrew@webrtc.org} // namespace webrtc 51