Use GlobalSimulatedTimeController in local_network_access_port_unittest

This removes uses of ScopedFakeClock and AutoThread.

Bug: webrtc:469327588,webrtc:42223992
Change-Id: Iaefd14a9c09eee15147d1b562a0296f16a6a6964
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/457242
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#47169}
diff --git a/p2p/base/local_network_access_port_unittest.cc b/p2p/base/local_network_access_port_unittest.cc
index 01292a0..9f27cb7 100644
--- a/p2p/base/local_network_access_port_unittest.cc
+++ b/p2p/base/local_network_access_port_unittest.cc
@@ -23,6 +23,7 @@
 #include "api/test/mock_async_dns_resolver.h"
 #include "api/test/mock_local_network_access_permission.h"
 #include "api/test/rtc_error_matchers.h"
+#include "api/units/timestamp.h"
 #include "p2p/base/port.h"
 #include "p2p/base/port_allocator.h"
 #include "p2p/base/stun_port.h"
@@ -32,17 +33,16 @@
 #include "p2p/test/test_stun_server.h"
 #include "p2p/test/test_turn_server.h"
 #include "p2p/test/turn_server.h"
-#include "rtc_base/fake_clock.h"
 #include "rtc_base/net_helper.h"
 #include "rtc_base/net_helpers.h"
 #include "rtc_base/network.h"
 #include "rtc_base/socket.h"
 #include "rtc_base/socket_address.h"
-#include "rtc_base/thread.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "test/create_test_environment.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
+#include "test/time_controller/simulated_time_controller.h"
 #include "test/wait_until.h"
 
 namespace webrtc {
@@ -78,8 +78,9 @@
 
     switch (server_type()) {
       case kStun:
-        stun_server_ = TestStunServer::Create(env_, {server_address(), 5000},
-                                              ss_, thread_);
+        stun_server_ =
+            TestStunServer::Create(env_, {server_address(), 5000}, ss_,
+                                   *time_controller_.GetMainThread());
         break;
       case kTurn:
         turn_server_.AddInternalSocket({server_address(), 5000}, PROTO_UDP);
@@ -118,7 +119,7 @@
     ProtocolAddress proto_server_address({server_address, 5000}, PROTO_UDP);
     CreateRelayPortArgs args = {
         .env = env_,
-        .network_thread = &thread_,
+        .network_thread = time_controller_.GetMainThread(),
         .socket_factory = &socket_factory_,
         .network = &network_,
         .server_address = &proto_server_address,
@@ -145,7 +146,7 @@
       LocalNetworkAccessPermissionFactoryInterface& lna_permission_factory) {
     Port::PortParametersRef params = {
         .env = env_,
-        .network_thread = &thread_,
+        .network_thread = time_controller_.GetMainThread(),
         .socket_factory = &socket_factory_,
         .network = &network_,
         .ice_username_fragment = kIceUfrag,
@@ -187,10 +188,10 @@
   bool port_ready_ = false;
   bool port_error_ = false;
 
-  ScopedFakeClock fake_clock_;
-  const Environment env_ = CreateTestEnvironment();
   VirtualSocketServer ss_;
-  AutoSocketServerThread thread_{&ss_};
+  GlobalSimulatedTimeController time_controller_{Timestamp::Micros(1234567),
+                                                 &ss_};
+  const Environment env_ = CreateTestEnvironment({.time = &time_controller_});
   MockDnsResolvingPacketSocketFactory socket_factory_{&ss_};
 
   const bool is_using_ipv6_{SocketAddress(server_address(), 5000).family() ==
@@ -199,8 +200,8 @@
                                                     : kLocalAddr};
   Network network_{"unittest", "unittest", local_address_.ipaddr(), 32};
 
-  TestTurnServer turn_server_{env_, &thread_, &ss_, kTurnUdpIntAddr,
-                              kTurnUdpExtAddr};
+  TestTurnServer turn_server_{env_, time_controller_.GetMainThread(), &ss_,
+                              kTurnUdpIntAddr, kTurnUdpExtAddr};
   TestStunServer::StunServerPtr stun_server_;
 };
 
@@ -265,13 +266,13 @@
   if (lna_fake_result() == LnaFakeResult::kPermissionNotNeeded ||
       lna_fake_result() == LnaFakeResult::kPermissionGranted) {
     EXPECT_THAT(WaitUntil([&] { return port_ready_; }, IsTrue(),
-                          {.clock = &fake_clock_}),
+                          {.clock = &time_controller_}),
                 IsRtcOk());
     EXPECT_EQ(1u, port->Candidates().size());
     EXPECT_NE(SOCKET_ERROR, port->GetError());
   } else {
     EXPECT_THAT(WaitUntil([&] { return port_error_; }, IsTrue(),
-                          {.clock = &fake_clock_}),
+                          {.clock = &time_controller_}),
                 IsRtcOk());
     EXPECT_EQ(0u, port->Candidates().size());
     EXPECT_NE(SOCKET_ERROR, port->GetError());
@@ -288,13 +289,13 @@
   if (lna_fake_result() == LnaFakeResult::kPermissionNotNeeded ||
       lna_fake_result() == LnaFakeResult::kPermissionGranted) {
     EXPECT_THAT(WaitUntil([&] { return port_ready_; }, IsTrue(),
-                          {.clock = &fake_clock_}),
+                          {.clock = &time_controller_}),
                 IsRtcOk());
     EXPECT_EQ(1u, port->Candidates().size());
     EXPECT_NE(SOCKET_ERROR, port->GetError());
   } else {
     EXPECT_THAT(WaitUntil([&] { return port_error_; }, IsTrue(),
-                          {.clock = &fake_clock_}),
+                          {.clock = &time_controller_}),
                 IsRtcOk());
     EXPECT_EQ(0u, port->Candidates().size());
     EXPECT_NE(SOCKET_ERROR, port->GetError());