/* * Copyright 2026 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "rtc_base/experiments/retransmit_flushed_packets_settings.h" #include "api/field_trials.h" #include "test/create_test_field_trials.h" #include "test/gtest.h" namespace webrtc { namespace { TEST(RetransmitFlushedPacketsSettingsTest, DisabledByDefault) { FieldTrials trials = CreateTestFieldTrials(""); RetransmitFlushedPacketsSettings settings(trials); EXPECT_FALSE(settings.is_enabled()); EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 2.0); } TEST(RetransmitFlushedPacketsSettingsTest, DisabledExplicitly) { FieldTrials trials = CreateTestFieldTrials("WebRTC-RetransmitFlushedPackets/Disabled/"); RetransmitFlushedPacketsSettings settings(trials); EXPECT_FALSE(settings.is_enabled()); } TEST(RetransmitFlushedPacketsSettingsTest, EnabledDefaultMultiplier) { FieldTrials trials = CreateTestFieldTrials("WebRTC-RetransmitFlushedPackets/Enabled/"); RetransmitFlushedPacketsSettings settings(trials); EXPECT_TRUE(settings.is_enabled()); EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 2.0); } TEST(RetransmitFlushedPacketsSettingsTest, EnabledWithCustomMultiplier) { FieldTrials trials = CreateTestFieldTrials( "WebRTC-RetransmitFlushedPackets/Enabled,rtt_multiplier:3.5/"); RetransmitFlushedPacketsSettings settings(trials); EXPECT_TRUE(settings.is_enabled()); EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 3.5); } TEST(RetransmitFlushedPacketsSettingsTest, EnabledViaParameter) { FieldTrials trials = CreateTestFieldTrials( "WebRTC-RetransmitFlushedPackets/enabled:true,rtt_multiplier:1.5/"); RetransmitFlushedPacketsSettings settings(trials); EXPECT_TRUE(settings.is_enabled()); EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 1.5); } TEST(RetransmitFlushedPacketsSettingsTest, NegativeMultiplierClampedToZero) { FieldTrials trials = CreateTestFieldTrials( "WebRTC-RetransmitFlushedPackets/Enabled,rtt_multiplier:-1.0/"); RetransmitFlushedPacketsSettings settings(trials); EXPECT_DOUBLE_EQ(settings.rtt_multiplier(), 0.0); } } // namespace } // namespace webrtc