1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef SRC_VOICE_ENGINE_MAIN_TEST_AUTO_TEST_STANDARD_TEST_BASE_H_ 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define SRC_VOICE_ENGINE_MAIN_TEST_AUTO_TEST_STANDARD_TEST_BASE_H_ 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#include <assert.h> 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 160de0049a4e555f347cab027c2fddd32e7f916ed3minyue@webrtc.org#include "webrtc/common.h" 17471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/common_types.h" 18471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/engine_configurations.h" 19471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/test/testsupport/gtest_disable.h" 20471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_audio_processing.h" 21471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_base.h" 22471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_codec.h" 23471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_dtmf.h" 24471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_errors.h" 25471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_external_media.h" 26471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_file.h" 27471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_hardware.h" 28471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_neteq_stats.h" 29471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_network.h" 30471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_rtp_rtcp.h" 31471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_video_sync.h" 32471ae72f18e7b23a96b245dbd508386fe139449cpbos@webrtc.org#include "webrtc/voice_engine/include/voe_volume_control.h" 338510750bf2847dcdca26d914974c6d51d1e311a7pbos@webrtc.org#include "webrtc/voice_engine/test/auto_test/voe_test_common.h" 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 358510750bf2847dcdca26d914974c6d51d1e311a7pbos@webrtc.org#include "testing/gmock/include/gmock/gmock.h" 368510750bf2847dcdca26d914974c6d51d1e311a7pbos@webrtc.org#include "testing/gtest/include/gtest/gtest.h" 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// This convenient fixture sets up all voice engine interfaces automatically for 39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// use by testing subclasses. It allocates each interface and releases it once 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// which means that if a tests allocates additional interfaces from the voice 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// engine and forgets to release it, this test will fail in the destructor. 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// It will not call any init methods. 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// Implementation note: 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// The interface fetching is done in the constructor and not SetUp() since 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// this relieves our subclasses from calling SetUp in the superclass if they 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// choose to override SetUp() themselves. This is fine as googletest will 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// construct new test objects for each method. 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass BeforeInitializationFixture : public testing::Test { 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org public: 51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org BeforeInitializationFixture(); 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org virtual ~BeforeInitializationFixture(); 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org protected: 55fbb6e45a37e84d50313318b1ad1e94f4bf1322f3andrew@webrtc.org // Use this sleep function to sleep in tests. 56b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org void Sleep(long milliseconds); 57b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 58b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoiceEngine* voice_engine_; 59b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEBase* voe_base_; 60b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoECodec* voe_codec_; 61b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEVolumeControl* voe_volume_control_; 62b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEDtmf* voe_dtmf_; 63b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoERTP_RTCP* voe_rtp_rtcp_; 64b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEAudioProcessing* voe_apm_; 65b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoENetwork* voe_network_; 66b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEFile* voe_file_; 67b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEVideoSync* voe_vsync_; 68b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEHardware* voe_hardware_; 69b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoEExternalMedia* voe_xmedia_; 70b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org webrtc::VoENetEqStats* voe_neteq_stats_; 710de0049a4e555f347cab027c2fddd32e7f916ed3minyue@webrtc.org webrtc::Config config_; 72b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}; 73b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 74b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif // SRC_VOICE_ENGINE_MAIN_TEST_AUTO_TEST_STANDARD_TEST_BASE_H_ 75