diff --git a/test/DEPS b/test/DEPS
index 1b0b340..a8b7df1 100644
--- a/test/DEPS
+++ b/test/DEPS
@@ -70,6 +70,7 @@
     "+p2p/base/port_allocator.h",
   ],
   ".*network_emulation_pc_unittest\.cc": [
+    "+p2p/base/port_allocator.h",
     "+pc/peer_connection_wrapper.h",
     "+pc/test/mock_peer_connection_observers.h",
     "+p2p/client/basic_port_allocator.h",
diff --git a/test/network/BUILD.gn b/test/network/BUILD.gn
index d1ba8f5..fa99fd2 100644
--- a/test/network/BUILD.gn
+++ b/test/network/BUILD.gn
@@ -99,23 +99,32 @@
     sources = [ "network_emulation_pc_unittest.cc" ]
     deps = [
       ":emulated_network",
+      "..:wait_until",
       "../:test_support",
       "../..//test/network:simulated_network",
+      "../../api:audio_options_api",
       "../../api:enable_media_with_defaults",
       "../../api:libjingle_peerconnection_api",
+      "../../api:media_stream_interface",
+      "../../api:network_emulation_manager_api",
+      "../../api:packet_socket_factory",
+      "../../api:rtc_error_matchers",
       "../../api:scoped_refptr",
       "../../api:simulated_network_api",
       "../../api/rtc_event_log:rtc_event_log_factory",
       "../../api/task_queue:default_task_queue_factory",
+      "../../api/test/network_emulation",
       "../../api/transport:field_trial_based_config",
       "../../media:rtc_audio_video",
       "../../modules/audio_device:test_audio_device_module",
       "../../p2p:basic_packet_socket_factory",
       "../../p2p:basic_port_allocator",
+      "../../p2p:port_allocator",
       "../../pc:pc_test_utils",
       "../../pc:peerconnection_wrapper",
       "../../rtc_base:gunit_helpers",
       "../../rtc_base:logging",
+      "../../rtc_base:network",
       "../../rtc_base:rtc_event",
       "../../rtc_base:task_queue_for_test",
     ]
@@ -146,21 +155,37 @@
     sources = [ "network_emulation_unittest.cc" ]
     deps = [
       ":emulated_network",
+      "..:wait_until",
       "../:test_support",
       "../..//test/network:simulated_network",
       "../../api:create_time_controller",
+      "../../api:network_emulation_manager_api",
+      "../../api:rtc_error_matchers",
       "../../api:simulated_network_api",
       "../../api/task_queue:task_queue",
+      "../../api/test/network_emulation",
       "../../api/transport:ecn_marking",
+      "../../api/transport:stun_types",
+      "../../api/units:data_size",
       "../../api/units:time_delta",
       "../../api/units:timestamp",
       "../../rtc_base:buffer",
+      "../../rtc_base:byte_buffer",
+      "../../rtc_base:checks",
+      "../../rtc_base:copy_on_write_buffer",
       "../../rtc_base:gunit_helpers",
+      "../../rtc_base:ip_address",
       "../../rtc_base:logging",
+      "../../rtc_base:macromagic",
+      "../../rtc_base:net_helpers",
       "../../rtc_base:rtc_event",
       "../../rtc_base:socket",
+      "../../rtc_base:socket_address",
       "../../rtc_base:task_queue_for_test",
+      "../../rtc_base:threading",
       "../../rtc_base/synchronization:mutex",
+      "../../rtc_base/third_party/sigslot",
+      "//third_party/abseil-cpp/absl/functional:any_invocable",
     ]
   }
 
diff --git a/test/network/network_emulation_pc_unittest.cc b/test/network/network_emulation_pc_unittest.cc
index 61fb47c..298e953 100644
--- a/test/network/network_emulation_pc_unittest.cc
+++ b/test/network/network_emulation_pc_unittest.cc
@@ -8,34 +8,45 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <cstdint>
 #include <memory>
+#include <utility>
+#include <vector>
 
+#include "api/audio_options.h"
 #include "api/enable_media_with_defaults.h"
+#include "api/jsep.h"
+#include "api/media_stream_interface.h"
+#include "api/packet_socket_factory.h"
 #include "api/peer_connection_interface.h"
 #include "api/rtc_event_log/rtc_event_log_factory.h"
 #include "api/scoped_refptr.h"
 #include "api/task_queue/default_task_queue_factory.h"
+#include "api/test/network_emulation/network_emulation_interfaces.h"
+#include "api/test/network_emulation_manager.h"
+#include "api/test/rtc_error_matchers.h"
+#include "api/test/simulated_network.h"
 #include "api/transport/field_trial_based_config.h"
-#include "media/engine/webrtc_media_engine.h"
 #include "modules/audio_device/include/test_audio_device.h"
-#include "p2p/base/basic_packet_socket_factory.h"
+#include "p2p/base/port_allocator.h"
 #include "p2p/client/basic_port_allocator.h"
 #include "pc/peer_connection_wrapper.h"
 #include "pc/test/mock_peer_connection_observers.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/network.h"
 #include "rtc_base/task_queue_for_test.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 #include "test/network/network_emulation.h"
 #include "test/network/network_emulation_manager.h"
 #include "test/network/simulated_network.h"
+#include "test/wait_until.h"
 
 namespace webrtc {
 namespace test {
 namespace {
 
-constexpr int kDefaultTimeoutMs = 1000;
+using ::testing::Eq;
+using ::testing::IsTrue;
+
 constexpr int kMaxAptitude = 32000;
 constexpr int kSamplingFrequency = 48000;
 constexpr char kSignalThreadName[] = "signaling_thread";
@@ -171,11 +182,14 @@
     // Connect peers.
     ASSERT_TRUE(alice->ExchangeOfferAnswerWith(bob.get()));
     // Do the SDP negotiation, and also exchange ice candidates.
-    ASSERT_TRUE_WAIT(
-        alice->signaling_state() == PeerConnectionInterface::kStable,
-        kDefaultTimeoutMs);
-    ASSERT_TRUE_WAIT(alice->IsIceGatheringDone(), kDefaultTimeoutMs);
-    ASSERT_TRUE_WAIT(bob->IsIceGatheringDone(), kDefaultTimeoutMs);
+    ASSERT_THAT(WaitUntil([&] { return alice->signaling_state(); },
+                          Eq(PeerConnectionInterface::kStable)),
+                IsRtcOk());
+    ASSERT_THAT(
+        WaitUntil([&] { return alice->IsIceGatheringDone(); }, IsTrue()),
+        IsRtcOk());
+    ASSERT_THAT(WaitUntil([&] { return bob->IsIceGatheringDone(); }, IsTrue()),
+                IsRtcOk());
 
     // Connect an ICE candidate pairs.
     ASSERT_TRUE(
@@ -183,8 +197,10 @@
     ASSERT_TRUE(
         AddIceCandidates(alice.get(), bob->observer()->GetAllCandidates()));
     // This means that ICE and DTLS are connected.
-    ASSERT_TRUE_WAIT(bob->IsIceConnected(), kDefaultTimeoutMs);
-    ASSERT_TRUE_WAIT(alice->IsIceConnected(), kDefaultTimeoutMs);
+    ASSERT_THAT(WaitUntil([&] { return bob->IsIceConnected(); }, IsTrue()),
+                IsRtcOk());
+    ASSERT_THAT(WaitUntil([&] { return alice->IsIceConnected(); }, IsTrue()),
+                IsRtcOk());
 
     // Close peer connections
     alice->pc()->Close();
@@ -281,11 +297,14 @@
     // Connect peers.
     ASSERT_TRUE(alice->ExchangeOfferAnswerWith(bob.get()));
     // Do the SDP negotiation, and also exchange ice candidates.
-    ASSERT_TRUE_WAIT(
-        alice->signaling_state() == PeerConnectionInterface::kStable,
-        kDefaultTimeoutMs);
-    ASSERT_TRUE_WAIT(alice->IsIceGatheringDone(), kDefaultTimeoutMs);
-    ASSERT_TRUE_WAIT(bob->IsIceGatheringDone(), kDefaultTimeoutMs);
+    ASSERT_THAT(WaitUntil([&] { return alice->signaling_state(); },
+                          Eq(PeerConnectionInterface::kStable)),
+                IsRtcOk());
+    ASSERT_THAT(
+        WaitUntil([&] { return alice->IsIceGatheringDone(); }, IsTrue()),
+        IsRtcOk());
+    ASSERT_THAT(WaitUntil([&] { return bob->IsIceGatheringDone(); }, IsTrue()),
+                IsRtcOk());
 
     // Connect an ICE candidate pairs.
     ASSERT_TRUE(
@@ -293,8 +312,10 @@
     ASSERT_TRUE(
         AddIceCandidates(alice.get(), bob->observer()->GetAllCandidates()));
     // This means that ICE and DTLS are connected.
-    ASSERT_TRUE_WAIT(bob->IsIceConnected(), kDefaultTimeoutMs);
-    ASSERT_TRUE_WAIT(alice->IsIceConnected(), kDefaultTimeoutMs);
+    ASSERT_THAT(WaitUntil([&] { return bob->IsIceConnected(); }, IsTrue()),
+                IsRtcOk());
+    ASSERT_THAT(WaitUntil([&] { return alice->IsIceConnected(); }, IsTrue()),
+                IsRtcOk());
 
     // Close peer connections
     alice->pc()->Close();
diff --git a/test/network/network_emulation_unittest.cc b/test/network/network_emulation_unittest.cc
index 610dc17..d8455b9 100644
--- a/test/network/network_emulation_unittest.cc
+++ b/test/network/network_emulation_unittest.cc
@@ -11,32 +11,52 @@
 #include "test/network/network_emulation.h"
 
 #include <atomic>
+#include <cstdint>
 #include <functional>
 #include <map>
 #include <memory>
+#include <optional>
 #include <set>
+#include <string>
+#include <utility>
+#include <vector>
 
+#include "absl/functional/any_invocable.h"
 #include "api/task_queue/task_queue_base.h"
-#include "api/test/create_time_controller.h"
+#include "api/test/network_emulation/network_emulation_interfaces.h"
+#include "api/test/network_emulation_manager.h"
+#include "api/test/rtc_error_matchers.h"
 #include "api/test/simulated_network.h"
 #include "api/transport/ecn_marking.h"
+#include "api/transport/stun.h"
+#include "api/units/data_size.h"
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/byte_buffer.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/copy_on_write_buffer.h"
+#include "rtc_base/ip_address.h"
+#include "rtc_base/net_helpers.h"
 #include "rtc_base/socket.h"
+#include "rtc_base/socket_address.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/task_queue_for_test.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
+#include "rtc_base/thread_annotations.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 #include "test/network/network_emulation_manager.h"
 #include "test/network/simulated_network.h"
+#include "test/wait_until.h"
 
 namespace webrtc {
 namespace test {
 namespace {
 
 using ::testing::ElementsAreArray;
+using ::testing::Eq;
 
 constexpr TimeDelta kNetworkPacketWaitTimeout = TimeDelta::Millis(100);
 constexpr TimeDelta kStatsWaitTimeout = TimeDelta::Seconds(1);
@@ -359,9 +379,10 @@
 
     received_stats_count++;
   });
-  ASSERT_EQ_SIMULATED_WAIT(received_stats_count.load(), 2,
-                           kStatsWaitTimeout.ms(),
-                           *network_manager.time_controller());
+  ASSERT_THAT(WaitUntil([&] { return received_stats_count.load(); }, Eq(2),
+                        {.timeout = kStatsWaitTimeout,
+                         .clock = network_manager.time_controller()}),
+              IsRtcOk());
 }
 
 TEST(NetworkEmulationManagerTest, EcnMarkingIsPropagated) {
@@ -440,9 +461,10 @@
     EXPECT_EQ(st.overall_incoming_stats.ecn_count.not_ect(), 0);
     ++received_stats_count;
   });
-  ASSERT_EQ_SIMULATED_WAIT(received_stats_count.load(), 2,
-                           kStatsWaitTimeout.ms(),
-                           *network_manager.time_controller());
+  ASSERT_THAT(WaitUntil([&] { return received_stats_count.load(); }, Eq(2),
+                        {.timeout = kStatsWaitTimeout,
+                         .clock = network_manager.time_controller()}),
+              IsRtcOk());
 
   SendTask(t1, [&] { delete s1; });
   SendTask(t2, [&] { delete s2; });
@@ -544,9 +566,10 @@
 
     received_stats_count++;
   });
-  ASSERT_EQ_SIMULATED_WAIT(received_stats_count.load(), 1,
-                           kStatsWaitTimeout.ms(),
-                           *network_manager.time_controller());
+  ASSERT_THAT(WaitUntil([&] { return received_stats_count.load(); }, Eq(1),
+                        {.timeout = kStatsWaitTimeout,
+                         .clock = network_manager.time_controller()}),
+              IsRtcOk());
 }
 
 TEST(NetworkEmulationManagerTest, ThroughputStats) {
@@ -622,9 +645,10 @@
     received_stats_count++;
   });
 
-  ASSERT_EQ_SIMULATED_WAIT(received_stats_count.load(), 1,
-                           kStatsWaitTimeout.ms(),
-                           *network_manager.time_controller());
+  ASSERT_THAT(WaitUntil([&] { return received_stats_count.load(); }, Eq(1),
+                        {.timeout = kStatsWaitTimeout,
+                         .clock = network_manager.time_controller()}),
+              IsRtcOk());
 
   EXPECT_EQ(r1.ReceivedCount(), 11);
   EXPECT_EQ(r2.ReceivedCount(), 11);
