OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2013 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 |
11 #include "webrtc/pc/localaudiosource.h" | 11 #include "webrtc/pc/localaudiosource.h" |
12 | 12 |
13 #include <string> | 13 #include <string> |
14 #include <vector> | 14 #include <vector> |
15 | 15 |
16 #include "webrtc/api/test/fakeconstraints.h" | 16 #include "webrtc/api/test/fakeconstraints.h" |
17 #include "webrtc/base/gunit.h" | 17 #include "webrtc/base/gunit.h" |
18 #include "webrtc/media/base/fakemediaengine.h" | 18 #include "webrtc/media/base/fakemediaengine.h" |
19 #include "webrtc/media/base/fakevideorenderer.h" | 19 #include "webrtc/media/base/fakevideorenderer.h" |
20 | 20 |
21 using webrtc::LocalAudioSource; | 21 using webrtc::LocalAudioSource; |
22 using webrtc::MediaConstraintsInterface; | 22 using webrtc::MediaConstraintsInterface; |
23 using webrtc::MediaSourceInterface; | 23 using webrtc::MediaSourceInterface; |
24 using webrtc::PeerConnectionFactoryInterface; | |
25 | 24 |
26 TEST(LocalAudioSourceTest, SetValidOptions) { | 25 TEST(LocalAudioSourceTest, SetValidOptions) { |
27 webrtc::FakeConstraints constraints; | 26 webrtc::FakeConstraints constraints; |
28 constraints.AddMandatory( | 27 constraints.AddMandatory( |
29 MediaConstraintsInterface::kGoogEchoCancellation, false); | 28 MediaConstraintsInterface::kGoogEchoCancellation, false); |
30 constraints.AddOptional( | 29 constraints.AddOptional( |
31 MediaConstraintsInterface::kExtendedFilterEchoCancellation, true); | 30 MediaConstraintsInterface::kExtendedFilterEchoCancellation, true); |
32 constraints.AddOptional(MediaConstraintsInterface::kDAEchoCancellation, true); | 31 constraints.AddOptional(MediaConstraintsInterface::kDAEchoCancellation, true); |
33 constraints.AddOptional(MediaConstraintsInterface::kAutoGainControl, true); | 32 constraints.AddOptional(MediaConstraintsInterface::kAutoGainControl, true); |
34 constraints.AddOptional( | 33 constraints.AddOptional( |
35 MediaConstraintsInterface::kExperimentalAutoGainControl, true); | 34 MediaConstraintsInterface::kExperimentalAutoGainControl, true); |
36 constraints.AddMandatory(MediaConstraintsInterface::kNoiseSuppression, false); | 35 constraints.AddMandatory(MediaConstraintsInterface::kNoiseSuppression, false); |
37 constraints.AddOptional(MediaConstraintsInterface::kHighpassFilter, true); | 36 constraints.AddOptional(MediaConstraintsInterface::kHighpassFilter, true); |
38 | 37 |
39 rtc::scoped_refptr<LocalAudioSource> source = | 38 rtc::scoped_refptr<LocalAudioSource> source = |
40 LocalAudioSource::Create(PeerConnectionFactoryInterface::Options(), | 39 LocalAudioSource::Create(&constraints); |
41 &constraints); | |
42 | 40 |
43 EXPECT_EQ(rtc::Optional<bool>(false), source->options().echo_cancellation); | 41 EXPECT_EQ(rtc::Optional<bool>(false), source->options().echo_cancellation); |
44 EXPECT_EQ(rtc::Optional<bool>(true), source->options().extended_filter_aec); | 42 EXPECT_EQ(rtc::Optional<bool>(true), source->options().extended_filter_aec); |
45 EXPECT_EQ(rtc::Optional<bool>(true), source->options().delay_agnostic_aec); | 43 EXPECT_EQ(rtc::Optional<bool>(true), source->options().delay_agnostic_aec); |
46 EXPECT_EQ(rtc::Optional<bool>(true), source->options().auto_gain_control); | 44 EXPECT_EQ(rtc::Optional<bool>(true), source->options().auto_gain_control); |
47 EXPECT_EQ(rtc::Optional<bool>(true), source->options().experimental_agc); | 45 EXPECT_EQ(rtc::Optional<bool>(true), source->options().experimental_agc); |
48 EXPECT_EQ(rtc::Optional<bool>(false), source->options().noise_suppression); | 46 EXPECT_EQ(rtc::Optional<bool>(false), source->options().noise_suppression); |
49 EXPECT_EQ(rtc::Optional<bool>(true), source->options().highpass_filter); | 47 EXPECT_EQ(rtc::Optional<bool>(true), source->options().highpass_filter); |
50 } | 48 } |
51 | 49 |
52 TEST(LocalAudioSourceTest, OptionNotSet) { | 50 TEST(LocalAudioSourceTest, OptionNotSet) { |
53 webrtc::FakeConstraints constraints; | 51 webrtc::FakeConstraints constraints; |
54 rtc::scoped_refptr<LocalAudioSource> source = | 52 rtc::scoped_refptr<LocalAudioSource> source = |
55 LocalAudioSource::Create(PeerConnectionFactoryInterface::Options(), | 53 LocalAudioSource::Create(&constraints); |
56 &constraints); | |
57 EXPECT_EQ(rtc::Optional<bool>(), source->options().highpass_filter); | 54 EXPECT_EQ(rtc::Optional<bool>(), source->options().highpass_filter); |
58 } | 55 } |
59 | 56 |
60 TEST(LocalAudioSourceTest, MandatoryOverridesOptional) { | 57 TEST(LocalAudioSourceTest, MandatoryOverridesOptional) { |
61 webrtc::FakeConstraints constraints; | 58 webrtc::FakeConstraints constraints; |
62 constraints.AddMandatory( | 59 constraints.AddMandatory( |
63 MediaConstraintsInterface::kGoogEchoCancellation, false); | 60 MediaConstraintsInterface::kGoogEchoCancellation, false); |
64 constraints.AddOptional( | 61 constraints.AddOptional( |
65 MediaConstraintsInterface::kGoogEchoCancellation, true); | 62 MediaConstraintsInterface::kGoogEchoCancellation, true); |
66 | 63 |
67 rtc::scoped_refptr<LocalAudioSource> source = | 64 rtc::scoped_refptr<LocalAudioSource> source = |
68 LocalAudioSource::Create(PeerConnectionFactoryInterface::Options(), | 65 LocalAudioSource::Create(&constraints); |
69 &constraints); | |
70 | 66 |
71 EXPECT_EQ(rtc::Optional<bool>(false), source->options().echo_cancellation); | 67 EXPECT_EQ(rtc::Optional<bool>(false), source->options().echo_cancellation); |
72 } | 68 } |
73 | 69 |
74 TEST(LocalAudioSourceTest, InvalidOptional) { | 70 TEST(LocalAudioSourceTest, InvalidOptional) { |
75 webrtc::FakeConstraints constraints; | 71 webrtc::FakeConstraints constraints; |
76 constraints.AddOptional(MediaConstraintsInterface::kHighpassFilter, false); | 72 constraints.AddOptional(MediaConstraintsInterface::kHighpassFilter, false); |
77 constraints.AddOptional("invalidKey", false); | 73 constraints.AddOptional("invalidKey", false); |
78 | 74 |
79 rtc::scoped_refptr<LocalAudioSource> source = | 75 rtc::scoped_refptr<LocalAudioSource> source = |
80 LocalAudioSource::Create(PeerConnectionFactoryInterface::Options(), | 76 LocalAudioSource::Create(&constraints); |
81 &constraints); | |
82 | 77 |
83 EXPECT_EQ(MediaSourceInterface::kLive, source->state()); | 78 EXPECT_EQ(MediaSourceInterface::kLive, source->state()); |
84 EXPECT_EQ(rtc::Optional<bool>(false), source->options().highpass_filter); | 79 EXPECT_EQ(rtc::Optional<bool>(false), source->options().highpass_filter); |
85 } | 80 } |
86 | 81 |
87 TEST(LocalAudioSourceTest, InvalidMandatory) { | 82 TEST(LocalAudioSourceTest, InvalidMandatory) { |
88 webrtc::FakeConstraints constraints; | 83 webrtc::FakeConstraints constraints; |
89 constraints.AddMandatory(MediaConstraintsInterface::kHighpassFilter, false); | 84 constraints.AddMandatory(MediaConstraintsInterface::kHighpassFilter, false); |
90 constraints.AddMandatory("invalidKey", false); | 85 constraints.AddMandatory("invalidKey", false); |
91 | 86 |
92 rtc::scoped_refptr<LocalAudioSource> source = | 87 rtc::scoped_refptr<LocalAudioSource> source = |
93 LocalAudioSource::Create(PeerConnectionFactoryInterface::Options(), | 88 LocalAudioSource::Create(&constraints); |
94 &constraints); | |
95 | 89 |
96 EXPECT_EQ(MediaSourceInterface::kLive, source->state()); | 90 EXPECT_EQ(MediaSourceInterface::kLive, source->state()); |
97 EXPECT_EQ(rtc::Optional<bool>(false), source->options().highpass_filter); | 91 EXPECT_EQ(rtc::Optional<bool>(false), source->options().highpass_filter); |
98 } | 92 } |
99 | 93 |
100 TEST(LocalAudioSourceTest, InitWithAudioOptions) { | 94 TEST(LocalAudioSourceTest, InitWithAudioOptions) { |
101 cricket::AudioOptions audio_options; | 95 cricket::AudioOptions audio_options; |
102 audio_options.highpass_filter = rtc::Optional<bool>(true); | 96 audio_options.highpass_filter = rtc::Optional<bool>(true); |
103 rtc::scoped_refptr<LocalAudioSource> source = LocalAudioSource::Create( | 97 rtc::scoped_refptr<LocalAudioSource> source = |
104 PeerConnectionFactoryInterface::Options(), &audio_options); | 98 LocalAudioSource::Create(&audio_options); |
105 EXPECT_EQ(rtc::Optional<bool>(true), source->options().highpass_filter); | 99 EXPECT_EQ(rtc::Optional<bool>(true), source->options().highpass_filter); |
106 } | 100 } |
107 | 101 |
108 TEST(LocalAudioSourceTest, InitWithNoOptions) { | 102 TEST(LocalAudioSourceTest, InitWithNoOptions) { |
109 rtc::scoped_refptr<LocalAudioSource> source = | 103 rtc::scoped_refptr<LocalAudioSource> source = |
110 LocalAudioSource::Create(PeerConnectionFactoryInterface::Options(), | 104 LocalAudioSource::Create((cricket::AudioOptions*)nullptr); |
111 (cricket::AudioOptions*)nullptr); | |
112 EXPECT_EQ(rtc::Optional<bool>(), source->options().highpass_filter); | 105 EXPECT_EQ(rtc::Optional<bool>(), source->options().highpass_filter); |
113 } | 106 } |
OLD | NEW |