1 /*
2 * Copyright 2018 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 #include "rtc_base/experiments/rtt_mult_experiment.h"
12
13 #include "test/field_trial.h"
14 #include "test/gtest.h"
15
16 namespace webrtc {
17
TEST(RttMultExperimentTest,RttMultDisabledByDefault)18 TEST(RttMultExperimentTest, RttMultDisabledByDefault) {
19 EXPECT_FALSE(RttMultExperiment::RttMultEnabled());
20 }
21
TEST(RttMultExperimentTest,RttMultEnabledByFieldTrial)22 TEST(RttMultExperimentTest, RttMultEnabledByFieldTrial) {
23 webrtc::test::ScopedFieldTrials field_trials(
24 "WebRTC-RttMult/Enabled-0.60,100.0/");
25 EXPECT_TRUE(RttMultExperiment::RttMultEnabled());
26 }
27
TEST(RttMultExperimentTest,RttMultTestValue)28 TEST(RttMultExperimentTest, RttMultTestValue) {
29 webrtc::test::ScopedFieldTrials field_trials(
30 "WebRTC-RttMult/Enabled-0.60,100.0/");
31 EXPECT_EQ(0.6f, RttMultExperiment::GetRttMultValue()->rtt_mult_setting);
32 EXPECT_EQ(100.0f, RttMultExperiment::GetRttMultValue()->rtt_mult_add_cap_ms);
33 }
34
TEST(RttMultExperimentTest,RttMultTestMalformedEnabled)35 TEST(RttMultExperimentTest, RttMultTestMalformedEnabled) {
36 webrtc::test::ScopedFieldTrials field_trials(
37 "WebRTC-RttMult/Enable-0.60,100.0/");
38 EXPECT_FALSE(RttMultExperiment::RttMultEnabled());
39 EXPECT_FALSE(RttMultExperiment::GetRttMultValue());
40 }
41
TEST(RttMultExperimentTest,RttMultTestValueOutOfBoundsPositive)42 TEST(RttMultExperimentTest, RttMultTestValueOutOfBoundsPositive) {
43 webrtc::test::ScopedFieldTrials field_trials(
44 "WebRTC-RttMult/Enabled-1.5,2100.0/");
45 EXPECT_EQ(1.0f, RttMultExperiment::GetRttMultValue()->rtt_mult_setting);
46 EXPECT_EQ(2000.0f, RttMultExperiment::GetRttMultValue()->rtt_mult_add_cap_ms);
47 }
48
TEST(RttMultExperimentTest,RttMultTestValueOutOfBoundsNegative)49 TEST(RttMultExperimentTest, RttMultTestValueOutOfBoundsNegative) {
50 webrtc::test::ScopedFieldTrials field_trials(
51 "WebRTC-RttMult/Enabled--0.5,-100.0/");
52 EXPECT_EQ(0.0f, RttMultExperiment::GetRttMultValue()->rtt_mult_setting);
53 EXPECT_EQ(0.0f, RttMultExperiment::GetRttMultValue()->rtt_mult_add_cap_ms);
54 }
55
TEST(RttMultExperimentTest,RttMultTestMalformedValue)56 TEST(RttMultExperimentTest, RttMultTestMalformedValue) {
57 webrtc::test::ScopedFieldTrials field_trials(
58 "WebRTC-RttMult/Enabled-0.25,10a0.0/");
59 EXPECT_NE(100.0f, RttMultExperiment::GetRttMultValue()->rtt_mult_add_cap_ms);
60 }
61
62 } // namespace webrtc
63