blob: 497c078f854b1b4095fd108394f31451298138cd [file] [log] [blame]
Åsa Persson517678c2019-05-06 14:17:35 +02001/*
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/quality_scaler_settings.h"
12
13#include "test/field_trial.h"
14#include "test/gtest.h"
15
16namespace webrtc {
17namespace {
18
19TEST(QualityScalerSettingsTest, ValuesNotSetByDefault) {
20 EXPECT_FALSE(QualityScalerSettings::ParseFromFieldTrials().MinFrames());
21 EXPECT_FALSE(
22 QualityScalerSettings::ParseFromFieldTrials().InitialScaleFactor());
23 EXPECT_FALSE(QualityScalerSettings::ParseFromFieldTrials().ScaleFactor());
24}
25
26TEST(QualityScalerSettingsTest, ParseMinFrames) {
27 test::ScopedFieldTrials field_trials(
28 "WebRTC-Video-QualityScalerSettings/min_frames:100/");
29 EXPECT_EQ(100, QualityScalerSettings::ParseFromFieldTrials().MinFrames());
30}
31
32TEST(QualityScalerSettingsTest, ParseInitialScaleFactor) {
33 test::ScopedFieldTrials field_trials(
34 "WebRTC-Video-QualityScalerSettings/initial_scale_factor:1.5/");
35 EXPECT_EQ(1.5,
36 QualityScalerSettings::ParseFromFieldTrials().InitialScaleFactor());
37}
38
39TEST(QualityScalerSettingsTest, ParseScaleFactor) {
40 test::ScopedFieldTrials field_trials(
41 "WebRTC-Video-QualityScalerSettings/scale_factor:1.1/");
42 EXPECT_EQ(1.1, QualityScalerSettings::ParseFromFieldTrials().ScaleFactor());
43}
44
45TEST(QualityScalerSettingsTest, ParseAll) {
46 test::ScopedFieldTrials field_trials(
47 "WebRTC-Video-QualityScalerSettings/"
48 "min_frames:100,initial_scale_factor:1.5,scale_factor:0.9/");
49 const auto settings = QualityScalerSettings::ParseFromFieldTrials();
50 EXPECT_EQ(100, settings.MinFrames());
51 EXPECT_EQ(1.5, settings.InitialScaleFactor());
52 EXPECT_EQ(0.9, settings.ScaleFactor());
53}
54
55TEST(QualityScalerSettingsTest, DoesNotParseIncorrectValue) {
56 test::ScopedFieldTrials field_trials(
57 "WebRTC-Video-QualityScalerSettings/"
58 "min_frames:a,initial_scale_factor:b,scale_factor:c/");
59 const auto settings = QualityScalerSettings::ParseFromFieldTrials();
60 EXPECT_FALSE(settings.MinFrames());
61 EXPECT_FALSE(settings.InitialScaleFactor());
62 EXPECT_FALSE(settings.ScaleFactor());
63}
64
65TEST(QualityScalerSettingsTest, DoesNotReturnTooSmallValue) {
66 test::ScopedFieldTrials field_trials(
67 "WebRTC-Video-QualityScalerSettings/"
68 "min_frames:0,initial_scale_factor:0.0,scale_factor:0.0/");
69 const auto settings = QualityScalerSettings::ParseFromFieldTrials();
70 EXPECT_FALSE(settings.MinFrames());
71 EXPECT_FALSE(settings.InitialScaleFactor());
72 EXPECT_FALSE(settings.ScaleFactor());
73}
74
75} // namespace
76} // namespace webrtc