blob: 974c82e2e6015cf172ca4b0d400f109d71e08c65 [file] [log] [blame]
phoglund@webrtc.org667eca62011-12-14 13:55:34 +00001/*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef SRC_VOICE_ENGINE_MAIN_TEST_AUTO_TEST_STANDARD_TEST_BASE_H_
12#define SRC_VOICE_ENGINE_MAIN_TEST_AUTO_TEST_STANDARD_TEST_BASE_H_
13
Mirko Bonadei71207422017-09-15 13:58:09 +020014#include "common_types.h" // NOLINT(build/include)
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020015#include "test/gmock.h"
16#include "test/gtest.h"
Mirko Bonadei71207422017-09-15 13:58:09 +020017#include "typedefs.h" // NOLINT(build/include)
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020018#include "voice_engine/include/voe_base.h"
19#include "voice_engine/include/voe_codec.h"
20#include "voice_engine/include/voe_errors.h"
21#include "voice_engine/include/voe_file.h"
22#include "voice_engine/include/voe_network.h"
23#include "voice_engine/include/voe_rtp_rtcp.h"
24#include "voice_engine/test/auto_test/voe_test_common.h"
phoglund@webrtc.org667eca62011-12-14 13:55:34 +000025
phoglund@webrtc.org667eca62011-12-14 13:55:34 +000026// This convenient fixture sets up all voice engine interfaces automatically for
27// use by testing subclasses. It allocates each interface and releases it once
28// which means that if a tests allocates additional interfaces from the voice
29// engine and forgets to release it, this test will fail in the destructor.
30// It will not call any init methods.
31//
32// Implementation note:
33// The interface fetching is done in the constructor and not SetUp() since
34// this relieves our subclasses from calling SetUp in the superclass if they
35// choose to override SetUp() themselves. This is fine as googletest will
36// construct new test objects for each method.
37class BeforeInitializationFixture : public testing::Test {
38 public:
39 BeforeInitializationFixture();
40 virtual ~BeforeInitializationFixture();
41
42 protected:
andrew@webrtc.org1926d332013-01-05 03:30:11 +000043 // Use this sleep function to sleep in tests.
phoglund@webrtc.orgc12f8152012-01-16 12:40:18 +000044 void Sleep(long milliseconds);
45
phoglund@webrtc.org667eca62011-12-14 13:55:34 +000046 webrtc::VoiceEngine* voice_engine_;
47 webrtc::VoEBase* voe_base_;
48 webrtc::VoECodec* voe_codec_;
phoglund@webrtc.org667eca62011-12-14 13:55:34 +000049 webrtc::VoERTP_RTCP* voe_rtp_rtcp_;
phoglund@webrtc.org667eca62011-12-14 13:55:34 +000050 webrtc::VoENetwork* voe_network_;
51 webrtc::VoEFile* voe_file_;
phoglund@webrtc.org667eca62011-12-14 13:55:34 +000052};
53
54#endif // SRC_VOICE_ENGINE_MAIN_TEST_AUTO_TEST_STANDARD_TEST_BASE_H_