Propagate field trials in rtc_base/ unittests

No-Iwyu: subtle 3rd party include suggestion out of scope of this change
Bug: webrtc:419453427
Change-Id: I42df68883e6fb49ac5b254bd7feb68de18ee6828
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/395300
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#44855}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 3ce8dcb..86d4a55 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -1747,7 +1747,6 @@
     "../api/task_queue:pending_task_safety_flag",
     "../api/units:time_delta",
     "../api/units:timestamp",
-    "../test:scoped_key_value_config",
     "memory:always_valid_pointer",
     "memory:fifo_buffer",
     "network:received_packet",
@@ -1977,7 +1976,6 @@
         "../api/units:time_delta",
         "../api/units:timestamp",
         "../system_wrappers",
-        "../test:field_trial",
         "../test:fileutils",
         "../test:test_main",
         "../test:test_support",
@@ -2263,6 +2261,7 @@
         ":timeutils",
         ":unique_id_generator",
         "../api:array_view",
+        "../api:field_trials",
         "../api:field_trials_view",
         "../api:make_ref_counted",
         "../api:rtc_error_matchers",
@@ -2276,10 +2275,9 @@
         "../api/task_queue:task_queue_test",
         "../api/units:time_delta",
         "../system_wrappers",
-        "../test:field_trial",
+        "../test:create_test_field_trials",
         "../test:fileutils",
         "../test:rtc_expect_death",
-        "../test:scoped_key_value_config",
         "../test:test_main",
         "../test:test_support",
         "../test:wait_until",
diff --git a/rtc_base/network_unittest.cc b/rtc_base/network_unittest.cc
index 35795ed..8a754cc 100644
--- a/rtc_base/network_unittest.cc
+++ b/rtc_base/network_unittest.cc
@@ -25,10 +25,12 @@
 #include "api/array_view.h"
 #include "api/environment/environment.h"
 #include "api/environment/environment_factory.h"
+#include "api/field_trials.h"
 #include "api/sequence_checker.h"
 #include "api/test/rtc_error_matchers.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/ip_address.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/net_helpers.h"
 #include "rtc_base/net_test_helpers.h"
 #include "rtc_base/network_constants.h"
@@ -38,6 +40,8 @@
 #include "rtc_base/socket_address.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
+#include "test/create_test_field_trials.h"
+#include "test/gmock.h"
 #include "test/gtest.h"
 #include "test/wait_until.h"
 
@@ -49,23 +53,13 @@
 
 #include "rtc_base/ifaddrs_converter.h"
 #endif  // defined(WEBRTC_POSIX)
-#include "test/gmock.h"
-#if defined(WEBRTC_WIN)
-#include "rtc_base/logging.h"  // For RTC_LOG_GLE
-#endif
 // IWYU pragma: end_keep
-#include "test/field_trial.h"
-#include "test/scoped_key_value_config.h"
 
 using ::testing::Contains;
 using ::testing::IsTrue;
 using ::testing::Not;
 using ::testing::UnorderedElementsAre;
 using ::testing::UnorderedElementsAreArray;
-using ::webrtc::CreateEnvironment;
-using ::webrtc::Environment;
-using ::webrtc::test::ScopedFieldTrials;
-using ::webrtc::test::ScopedKeyValueConfig;
 
 #define MAYBE_SKIP_IPV4                        \
   if (!::webrtc::HasIPv4Enabled()) {           \
@@ -175,8 +169,6 @@
 
 class NetworkTest : public ::testing::Test, public sigslot::has_slots<> {
  public:
-  NetworkTest() : callback_called_(false) {}
-
   void OnNetworksChanged() { callback_called_ = true; }
 
   NetworkManager::Stats MergeNetworkList(
@@ -339,9 +331,10 @@
 #endif  // defined(WEBRTC_POSIX)
 
  protected:
-  ScopedKeyValueConfig field_trials_;
+  const FieldTrials field_trials_ = CreateTestFieldTrials();
+  const Environment env_ = CreateEnvironment(&field_trials_);
   AutoThread main_thread_;
-  bool callback_called_;
+  bool callback_called_ = false;
 };
 
 class TestBasicNetworkManager : public BasicNetworkManager {
@@ -369,7 +362,7 @@
   Network ipv4_network2("test_eth1", "Test Network Adapter 2",
                         IPAddress(0x010000U), 24, ADAPTER_TYPE_ETHERNET);
   PhysicalSocketServer socket_server;
-  BasicNetworkManager network_manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager network_manager(env_, &socket_server);
   network_manager.StartUpdating();
   EXPECT_FALSE(IsIgnoredNetwork(network_manager, ipv4_network1));
   EXPECT_TRUE(IsIgnoredNetwork(network_manager, ipv4_network2));
@@ -381,14 +374,13 @@
                     24);
   Network include_me("include_me", "Include me please!", IPAddress(0x12345600U),
                      24);
-  const Environment env = CreateEnvironment();
   PhysicalSocketServer socket_server;
-  BasicNetworkManager default_network_manager(env, &socket_server);
+  BasicNetworkManager default_network_manager(env_, &socket_server);
   default_network_manager.StartUpdating();
   EXPECT_FALSE(IsIgnoredNetwork(default_network_manager, ignore_me));
   EXPECT_FALSE(IsIgnoredNetwork(default_network_manager, include_me));
 
-  BasicNetworkManager ignoring_network_manager(env, &socket_server);
+  BasicNetworkManager ignoring_network_manager(env_, &socket_server);
   std::vector<std::string> ignore_list;
   ignore_list.push_back("ignore_me");
   ignoring_network_manager.set_network_ignore_list(ignore_list);
@@ -400,7 +392,7 @@
 // Test is failing on Windows opt: b/11288214
 TEST_F(NetworkTest, DISABLED_TestCreateNetworks) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   std::vector<std::unique_ptr<Network>> result = GetNetworks(manager, true);
   // We should be able to bind to any addresses we find.
   for (auto it = result.begin(); it != result.end(); ++it) {
@@ -434,7 +426,7 @@
 // ALLOWED.
 TEST_F(NetworkTest, TestUpdateNetworks) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   EXPECT_EQ(NetworkManager::ENUMERATION_ALLOWED,
@@ -474,7 +466,7 @@
   ipv4_network1.AddIP(IPAddress(0x12345678));
   ipv4_network2.AddIP(IPAddress(0x00010004));
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
 
   // Add ipv4_network1 to the list of networks.
   std::vector<std::unique_ptr<Network>> list;
@@ -581,7 +573,7 @@
 // Test that the basic network merging case works.
 TEST_F(NetworkTest, TestIPv6MergeNetworkList) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   std::vector<std::unique_ptr<Network>> networks;
@@ -603,7 +595,7 @@
 // objects remain in the result list.
 TEST_F(NetworkTest, TestNoChangeMerge) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   std::vector<std::unique_ptr<Network>> networks;
@@ -634,7 +626,7 @@
 // IP changed.
 TEST_F(NetworkTest, MergeWithChangedIP) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   std::vector<std::unique_ptr<Network>> original_list;
@@ -671,7 +663,7 @@
 
 TEST_F(NetworkTest, TestMultipleIPMergeNetworkList) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   std::vector<std::unique_ptr<Network>> original_list;
@@ -725,7 +717,7 @@
 // Test that merge correctly distinguishes multiple networks on an interface.
 TEST_F(NetworkTest, TestMultiplePublicNetworksOnOneInterfaceMerge) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   std::vector<std::unique_ptr<Network>> original_list;
@@ -768,7 +760,7 @@
 // Test that DumpNetworks does not crash.
 TEST_F(NetworkTest, TestCreateAndDumpNetworks) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
   std::vector<std::unique_ptr<Network>> list = GetNetworks(manager, true);
   bool changed;
@@ -778,7 +770,7 @@
 
 TEST_F(NetworkTest, TestIPv6Toggle) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
   bool ipv6_found = false;
   for (const auto& network : GetNetworks(manager, true)) {
@@ -794,7 +786,7 @@
 // IPv6 comes first.
 TEST_F(NetworkTest, IPv6NetworksPreferredOverIPv4) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   Network ipv4_network1("test_eth0", "Test Network Adapter 1",
                         IPAddress(0x12345600U), 24);
   ipv4_network1.AddIP(IPAddress(0x12345600U));
@@ -824,7 +816,7 @@
 // to be preference-ordered by name. For example, "eth0" before "eth1".
 TEST_F(NetworkTest, NetworksSortedByInterfaceName) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   auto eth0 = std::make_unique<Network>("test_eth0", "Test Network Adapter 1",
                                         IPAddress(0x65432100U), 24);
   eth0->AddIP(IPAddress(0x65432100U));
@@ -873,7 +865,7 @@
 
   std::vector<std::unique_ptr<Network>> result;
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
   CallConvertIfAddrs(manager, &list, true, &result);
   EXPECT_TRUE(result.empty());
@@ -890,7 +882,7 @@
                         "FFFF:FFFF:FFFF:FFFF::", 0);
   std::vector<std::unique_ptr<Network>> result;
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
   CallConvertIfAddrs(manager, list, true, &result);
   EXPECT_EQ(1U, result.size());
@@ -912,7 +904,7 @@
 
   std::vector<std::unique_ptr<Network>> result;
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
   CallConvertIfAddrs(manager, &list, true, &result);
   EXPECT_TRUE(result.empty());
@@ -927,7 +919,7 @@
 
   std::vector<std::unique_ptr<Network>> result;
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
   CallConvertIfAddrs(manager, &list, true, &result);
   EXPECT_TRUE(result.empty());
@@ -939,7 +931,7 @@
   char if_name[20] = "wifi0";
   std::string ipv6_address = "1000:2000:3000:4000:0:0:0:1";
   std::string ipv6_mask = "FFFF:FFFF:FFFF:FFFF::";
-  const Environment env = CreateEnvironment();
+  const Environment env = env_;
   PhysicalSocketServer socket_server;
   BasicNetworkManager manager_without_monitor(
       env, &socket_server, /*network_monitor_factory=*/nullptr);
@@ -972,7 +964,7 @@
   std::string ipv6_address2 = "1000:2000:3000:8000:0:0:0:1";
   std::string ipv6_mask = "FFFF:FFFF:FFFF:FFFF::";
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
 
   // IPSec interface; name is in form "ipsec<index>".
@@ -1050,7 +1042,7 @@
   // Sanity check that both interfaces are included by default.
   FakeNetworkMonitorFactory factory;
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server, &factory);
+  BasicNetworkManager manager(env_, &socket_server, &factory);
   manager.StartUpdating();
   CallConvertIfAddrs(manager, list, /*include_ignored=*/false, &result);
   EXPECT_EQ(2u, result.size());
@@ -1076,7 +1068,7 @@
 // prefix/length into a single Network.
 TEST_F(NetworkTest, TestMergeNetworkList) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   std::vector<std::unique_ptr<Network>> list;
 
   // Create 2 IPAddress classes with only last digit different.
@@ -1112,7 +1104,7 @@
 // a network becomes inactive and then active again.
 TEST_F(NetworkTest, TestMergeNetworkListWithInactiveNetworks) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   Network network1("test_wifi", "Test Network Adapter 1",
                    IPAddress(0x12345600U), 24);
   Network network2("test_eth0", "Test Network Adapter 2",
@@ -1261,7 +1253,7 @@
 TEST_F(NetworkTest, TestNetworkMonitoring) {
   FakeNetworkMonitorFactory factory;
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server, &factory);
+  BasicNetworkManager manager(env_, &socket_server, &factory);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   manager.StartUpdating();
@@ -1293,8 +1285,7 @@
   IPAddress ip;
   FakeNetworkMonitorFactory factory;
   PhysicalSocketServer socket_server;
-  TestBasicNetworkManager manager(CreateEnvironment(), &socket_server,
-                                  &factory);
+  TestBasicNetworkManager manager(env_, &socket_server, &factory);
   manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
                                         &NetworkTest::OnNetworksChanged);
   manager.StartUpdating();
@@ -1359,7 +1350,7 @@
 // when changing from cellular_X to cellular_Y.
 TEST_F(NetworkTest, TestWhenNetworkListChangeReturnsChangedFlag) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
 
   IPAddress ip1;
   EXPECT_TRUE(IPFromString("2400:4030:1:2c00:be30:0:0:1", &ip1));
@@ -1421,7 +1412,7 @@
   std::string ipv6_address = "2607:fc20:f340:1dc8:214:22ff:fe01:2345";
   std::string ipv6_mask = "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF";
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.StartUpdating();
 
   // IPSec interface; name is in form "ipsec<index>".
@@ -1435,11 +1426,12 @@
 }
 
 TEST_F(NetworkTest, WebRTC_AllowMACBasedIPv6Address) {
-  ScopedFieldTrials field_trials("WebRTC-AllowMACBasedIPv6/Enabled/");
+  FieldTrials field_trials =
+      CreateTestFieldTrials("WebRTC-AllowMACBasedIPv6/Enabled/");
   std::string ipv6_address = "2607:fc20:f340:1dc8:214:22ff:fe01:2345";
   std::string ipv6_mask = "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF";
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(CreateEnvironment(&field_trials), &socket_server);
   manager.StartUpdating();
 
   // IPSec interface; name is in form "ipsec<index>".
@@ -1466,7 +1458,7 @@
   // Sanity check that both interfaces are included by default.
   FakeNetworkMonitorFactory factory;
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server, &factory);
+  BasicNetworkManager manager(env_, &socket_server, &factory);
   manager.StartUpdating();
   CallConvertIfAddrs(manager, list, /*include_ignored=*/false, &result);
   EXPECT_EQ(2u, result.size());
@@ -1498,7 +1490,7 @@
 TEST_F(NetworkTest, NetworkCostVpn_Default) {
   IPAddress ip1;
   EXPECT_TRUE(IPFromString("2400:4030:1:2c00:be30:0:0:1", &ip1));
-  ScopedKeyValueConfig field_trials;
+  FieldTrials field_trials = CreateTestFieldTrials();
 
   Network* net1 = new Network("em1", "em1", TruncateIP(ip1, 64), 64);
   net1->set_type(ADAPTER_TYPE_VPN);
@@ -1513,7 +1505,8 @@
 }
 
 TEST_F(NetworkTest, NetworkCostVpn_VpnMoreExpensive) {
-  ScopedKeyValueConfig field_trials("WebRTC-AddNetworkCostToVpn/Enabled/");
+  FieldTrials field_trials =
+      CreateTestFieldTrials("WebRTC-AddNetworkCostToVpn/Enabled/");
 
   IPAddress ip1;
   EXPECT_TRUE(IPFromString("2400:4030:1:2c00:be30:0:0:1", &ip1));
@@ -1531,7 +1524,7 @@
 }
 
 TEST_F(NetworkTest, GuessAdapterFromNetworkCost) {
-  ScopedKeyValueConfig field_trials(
+  FieldTrials field_trials = CreateTestFieldTrials(
       "WebRTC-AddNetworkCostToVpn/Enabled/"
       "WebRTC-UseDifferentiatedCellularCosts/Enabled/");
 
@@ -1572,10 +1565,9 @@
 }
 
 TEST_F(NetworkTest, VpnList) {
-  const Environment env = CreateEnvironment();
   PhysicalSocketServer socket_server;
   {
-    BasicNetworkManager manager(env, &socket_server);
+    BasicNetworkManager manager(env_, &socket_server);
     manager.set_vpn_list({NetworkMask(IPFromString("192.168.0.0"), 16)});
     manager.StartUpdating();
     EXPECT_TRUE(manager.IsConfiguredVpn(IPFromString("192.168.1.1"), 32));
@@ -1587,7 +1579,7 @@
     EXPECT_FALSE(manager.IsConfiguredVpn(IPFromString("192.168.0.0"), 15));
   }
   {
-    BasicNetworkManager manager(env, &socket_server);
+    BasicNetworkManager manager(env_, &socket_server);
     manager.set_vpn_list({NetworkMask(IPFromString("192.168.0.0"), 24)});
     manager.StartUpdating();
     EXPECT_FALSE(manager.IsConfiguredVpn(IPFromString("192.168.1.1"), 32));
@@ -1599,7 +1591,7 @@
 // TODO(webrtc:13114): Implement the InstallIpv4Network for windows.
 TEST_F(NetworkTest, VpnListOverrideAdapterType) {
   PhysicalSocketServer socket_server;
-  BasicNetworkManager manager(CreateEnvironment(), &socket_server);
+  BasicNetworkManager manager(env_, &socket_server);
   manager.set_vpn_list({NetworkMask(IPFromString("192.168.0.0"), 16)});
   manager.StartUpdating();
 
diff --git a/rtc_base/openssl_stream_adapter_unittest.cc b/rtc_base/openssl_stream_adapter_unittest.cc
index 9513ad6..4d7b985 100644
--- a/rtc_base/openssl_stream_adapter_unittest.cc
+++ b/rtc_base/openssl_stream_adapter_unittest.cc
@@ -16,14 +16,18 @@
 #include <set>
 #include <vector>
 
+#include "api/field_trials.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/ssl_stream_adapter.h"
+#include "test/create_test_field_trials.h"
 #include "test/gtest.h"
-#include "test/scoped_key_value_config.h"
+
+namespace webrtc {
+namespace {
 
 TEST(OpenSSLStreamAdapterTest, GetSupportedEphemeralKeyExchangeCipherGroups) {
   RTC_LOG(LS_INFO) << "OpenSSLStreamAdapter::IsBoringSsl(): "
-                   << webrtc::OpenSSLStreamAdapter::IsBoringSsl();
+                   << OpenSSLStreamAdapter::IsBoringSsl();
   std::set<uint16_t> expected = {
 #ifdef SSL_GROUP_SECP224R1
       SSL_GROUP_SECP224R1,
@@ -44,46 +48,44 @@
       SSL_GROUP_X25519_MLKEM768,
 #endif
   };
-  EXPECT_EQ(
-      webrtc::SSLStreamAdapter::GetSupportedEphemeralKeyExchangeCipherGroups(),
-      expected);
+  EXPECT_EQ(SSLStreamAdapter::GetSupportedEphemeralKeyExchangeCipherGroups(),
+            expected);
 }
 
 TEST(OpenSSLStreamAdapterTest, GetEphemeralKeyExchangeCipherGroupName) {
 #ifdef SSL_GROUP_SECP224R1
-  EXPECT_EQ(*webrtc::SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
+  EXPECT_EQ(*SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
                 SSL_GROUP_SECP224R1),
             "P-224");
 #endif
 #ifdef SSL_GROUP_SECP256R1
-  EXPECT_EQ(*webrtc::SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
+  EXPECT_EQ(*SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
                 SSL_GROUP_SECP256R1),
             "P-256");
 #endif
 #ifdef SSL_GROUP_SECP384R1
-  EXPECT_EQ(*webrtc::SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
+  EXPECT_EQ(*SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
                 SSL_GROUP_SECP384R1),
             "P-384");
 #endif
 #ifdef SSL_GROUP_SECP521R1
-  EXPECT_EQ(*webrtc::SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
+  EXPECT_EQ(*SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
                 SSL_GROUP_SECP521R1),
             "P-521");
 #endif
 #ifdef SSL_GROUP_X25519
-  EXPECT_EQ(*webrtc::SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
+  EXPECT_EQ(*SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
                 SSL_GROUP_X25519),
             "X25519");
 #endif
 #ifdef SSL_GROUP_X25519_MLKEM768
-  EXPECT_EQ(*webrtc::SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
+  EXPECT_EQ(*SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(
                 SSL_GROUP_X25519_MLKEM768),
             "X25519MLKEM768");
 #endif
 
   EXPECT_FALSE(
-      webrtc::SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(0)
-          .has_value());
+      SSLStreamAdapter::GetEphemeralKeyExchangeCipherGroupName(0).has_value());
 }
 
 TEST(OpenSSLStreamAdapterTest, GetDefaultEphemeralKeyExchangeCipherGroups) {
@@ -98,10 +100,9 @@
       SSL_GROUP_SECP384R1,
 #endif
   };
-  EXPECT_EQ(
-      webrtc::SSLStreamAdapter::GetDefaultEphemeralKeyExchangeCipherGroups(
-          /* field_trials= */ nullptr),
-      expected);
+  EXPECT_EQ(SSLStreamAdapter::GetDefaultEphemeralKeyExchangeCipherGroups(
+                /* field_trials= */ nullptr),
+            expected);
 }
 
 TEST(OpenSSLStreamAdapterTest,
@@ -120,10 +121,12 @@
       SSL_GROUP_SECP384R1,
 #endif
   };
-  webrtc::test::ScopedKeyValueConfig field_trials(
-      "WebRTC-EnableDtlsPqc/Enabled/");
-  EXPECT_EQ(
-      webrtc::SSLStreamAdapter::GetDefaultEphemeralKeyExchangeCipherGroups(
-          &field_trials),
-      expected);
+  FieldTrials field_trials =
+      CreateTestFieldTrials("WebRTC-EnableDtlsPqc/Enabled/");
+  EXPECT_EQ(SSLStreamAdapter::GetDefaultEphemeralKeyExchangeCipherGroups(
+                &field_trials),
+            expected);
 }
+
+}  // namespace
+}  // namespace webrtc
\ No newline at end of file
diff --git a/rtc_base/ssl_stream_adapter_unittest.cc b/rtc_base/ssl_stream_adapter_unittest.cc
index fe2430e..ac0714e 100644
--- a/rtc_base/ssl_stream_adapter_unittest.cc
+++ b/rtc_base/ssl_stream_adapter_unittest.cc
@@ -34,6 +34,7 @@
 #include "absl/strings/string_view.h"
 #include "api/array_view.h"
 #include "api/crypto/crypto_options.h"
+#include "api/field_trials.h"
 #include "api/sequence_checker.h"
 #include "api/task_queue/pending_task_safety_flag.h"
 #include "api/test/rtc_error_matchers.h"
@@ -52,17 +53,19 @@
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/time_utils.h"
+#include "test/create_test_field_trials.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
-#include "test/scoped_key_value_config.h"
 #include "test/wait_until.h"
 
+namespace webrtc {
+namespace {
+
 using ::testing::Combine;
 using ::testing::NotNull;
 using ::testing::tuple;
 using ::testing::Values;
 using ::testing::WithParamInterface;
-using ::webrtc::SafeTask;
 
 // Generated using `openssl genrsa -out key.pem 2048`
 static const char kRSA_PRIVATE_KEY_PEM[] =
@@ -468,22 +471,15 @@
     // Note: `client_ssl_` and `server_ssl_` may be non-nullptr.
 
     // The field trials are read when the OpenSSLStreamAdapter is initialized.
-    using webrtc::test::ScopedKeyValueConfig;
     {
-      std::unique_ptr<ScopedKeyValueConfig> trial(
-          client_experiment.empty()
-              ? nullptr
-              : new ScopedKeyValueConfig(client_experiment));
+      FieldTrials trial = CreateTestFieldTrials(client_experiment);
       client_ssl_ = webrtc::SSLStreamAdapter::Create(CreateClientStream(),
-                                                     nullptr, trial.get());
+                                                     nullptr, &trial);
     }
     {
-      std::unique_ptr<ScopedKeyValueConfig> trial(
-          server_experiment.empty()
-              ? nullptr
-              : new ScopedKeyValueConfig(server_experiment));
+      FieldTrials trial = CreateTestFieldTrials(server_experiment);
       server_ssl_ = webrtc::SSLStreamAdapter::Create(CreateServerStream(),
-                                                     nullptr, trial.get());
+                                                     nullptr, &trial);
     }
     client_ssl_->SetEventCallback(
         [this](int events, int err) { OnClientEvent(events, err); });
@@ -1631,3 +1627,6 @@
   }
 }
 #endif
+
+}  // namespace
+}  // namespace webrtc