blob: 5457dc4d79b7f84eff4492e1fa14600fff2c5699 [file] [log] [blame]
Rasmus Brandt3dde4502019-03-21 11:46:17 +01001/*
2 * Copyright 2019 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/keyframe_interval_settings.h"
12#include "test/field_trial.h"
13#include "test/gtest.h"
14
15namespace webrtc {
16namespace {
17
18TEST(KeyframeIntervalSettingsTest, ParsesMinKeyframeSendIntervalMs) {
19 EXPECT_FALSE(KeyframeIntervalSettings::ParseFromFieldTrials()
20 .MinKeyframeSendIntervalMs());
21
22 test::ScopedFieldTrials field_trials(
23 "WebRTC-KeyframeInterval/min_keyframe_send_interval_ms:100/");
24 EXPECT_EQ(KeyframeIntervalSettings::ParseFromFieldTrials()
25 .MinKeyframeSendIntervalMs(),
26 100);
27}
28
29TEST(KeyframeIntervalSettingsTest, ParsesMaxWaitForKeyframeMs) {
30 EXPECT_FALSE(
31 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs());
32
33 test::ScopedFieldTrials field_trials(
34 "WebRTC-KeyframeInterval/max_wait_for_keyframe_ms:100/");
35 EXPECT_EQ(
36 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs(),
37 100);
38}
39
40TEST(KeyframeIntervalSettingsTest, ParsesMaxWaitForFrameMs) {
41 EXPECT_FALSE(
42 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
43
44 test::ScopedFieldTrials field_trials(
45 "WebRTC-KeyframeInterval/max_wait_for_frame_ms:100/");
46 EXPECT_EQ(
47 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs(),
48 100);
49}
50
51TEST(KeyframeIntervalSettingsTest, ParsesAllValues) {
52 test::ScopedFieldTrials field_trials(
53 "WebRTC-KeyframeInterval/"
54 "min_keyframe_send_interval_ms:100,"
55 "max_wait_for_keyframe_ms:101,"
56 "max_wait_for_frame_ms:102/");
57 EXPECT_EQ(KeyframeIntervalSettings::ParseFromFieldTrials()
58 .MinKeyframeSendIntervalMs(),
59 100);
60 EXPECT_EQ(
61 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs(),
62 101);
63 EXPECT_EQ(
64 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs(),
65 102);
66}
67
68TEST(KeyframeIntervalSettingsTest, DoesNotParseAllValuesWhenIncorrectlySet) {
69 EXPECT_FALSE(
70 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
71
72 test::ScopedFieldTrials field_trials(
73 "WebRTC-KeyframeInterval/"
74 "min_keyframe_send_interval_ms:a,"
75 "max_wait_for_keyframe_ms:b,"
76 "max_wait_for_frame_ms:c/");
77 EXPECT_FALSE(KeyframeIntervalSettings::ParseFromFieldTrials()
78 .MinKeyframeSendIntervalMs());
79 EXPECT_FALSE(
80 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs());
81 EXPECT_FALSE(
82 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
83}
84
85} // namespace
86} // namespace webrtc