Use GlobalSimulatedTimeController in dtmf_sender_unittest

Bug: webrtc:42223992
Change-Id: I7359fa261b641db0db6fb32e2c36ec376a6a6964
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/457580
Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#47219}
diff --git a/pc/dtmf_sender_unittest.cc b/pc/dtmf_sender_unittest.cc
index 9c62cc1..7e4063c 100644
--- a/pc/dtmf_sender_unittest.cc
+++ b/pc/dtmf_sender_unittest.cc
@@ -20,11 +20,11 @@
 #include "api/scoped_refptr.h"
 #include "api/test/rtc_error_matchers.h"
 #include "api/units/time_delta.h"
-#include "rtc_base/fake_clock.h"
-#include "rtc_base/thread.h"
+#include "api/units/timestamp.h"
 #include "rtc_base/time_utils.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
+#include "test/time_controller/simulated_time_controller.h"
 #include "test/wait_until.h"
 
 using webrtc::DtmfProviderInterface;
@@ -116,9 +116,12 @@
 class DtmfSenderTest : public ::testing::Test {
  protected:
   DtmfSenderTest()
-      : observer_(new FakeDtmfObserver()), provider_(new FakeDtmfProvider()) {
+      : time_controller_(webrtc::Timestamp::Seconds(1)),
+        observer_(new FakeDtmfObserver()),
+        provider_(new FakeDtmfProvider()) {
     provider_->SetCanInsertDtmf(true);
-    dtmf_ = DtmfSender::Create(webrtc::Thread::Current(), provider_.get());
+    dtmf_ =
+        DtmfSender::Create(time_controller_.GetMainThread(), provider_.get());
     dtmf_->RegisterObserver(observer_.get());
   }
 
@@ -211,11 +214,10 @@
     }
   }
 
-  webrtc::AutoThread main_thread_;
+  webrtc::GlobalSimulatedTimeController time_controller_;
   std::unique_ptr<FakeDtmfObserver> observer_;
   std::unique_ptr<FakeDtmfProvider> provider_;
   webrtc::scoped_refptr<DtmfSender> dtmf_;
-  webrtc::ScopedFakeClock fake_clock_;
 };
 
 TEST_F(DtmfSenderTest, CanInsertDtmf) {
@@ -232,7 +234,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->completed(); }, ::testing::IsTrue(),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
 
   // The unrecognized characters should be ignored.
@@ -252,7 +254,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->tones().size(); }, ::testing::Eq(1),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
   VerifyExpectedState("2", duration, inter_tone_gap);
   // Insert with another tone buffer.
@@ -262,7 +264,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->completed(); }, ::testing::IsTrue(),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
 
   std::vector<FakeDtmfProvider::DtmfInfo> dtmf_queue_ref;
@@ -281,13 +283,13 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->tones().size(); }, ::testing::Eq(1),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
   // Delete provider.
   dtmf_->OnDtmfProviderDestroyed();
   provider_.reset();
   // The queue should be discontinued so no more tone callbacks.
-  fake_clock_.AdvanceTime(webrtc::TimeDelta::Millis(200));
+  time_controller_.AdvanceTime(webrtc::TimeDelta::Millis(200));
   EXPECT_EQ(1U, observer_->tones().size());
 }
 
@@ -300,12 +302,12 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->tones().size(); }, ::testing::Eq(1),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
   // Delete the sender.
   dtmf_ = nullptr;
   // The queue should be discontinued so no more tone callbacks.
-  fake_clock_.AdvanceTime(webrtc::TimeDelta::Millis(200));
+  time_controller_.AdvanceTime(webrtc::TimeDelta::Millis(200));
   EXPECT_EQ(1U, observer_->tones().size());
 }
 
@@ -319,7 +321,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->tones().size(); }, ::testing::Eq(1),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
   // Insert with another tone buffer.
   EXPECT_TRUE(dtmf_->InsertDtmf(tones2, duration, inter_tone_gap));
@@ -327,7 +329,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->completed(); }, ::testing::IsTrue(),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
 
   std::vector<FakeDtmfProvider::DtmfInfo> dtmf_queue_ref;
@@ -346,7 +348,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->completed(); }, ::testing::IsTrue(),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
 
   VerifyOnProvider(tones, duration, inter_tone_gap);
@@ -365,7 +367,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->completed(); }, ::testing::IsTrue(),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
 
   VerifyOnProvider(tones, duration, inter_tone_gap, comma_delay);
@@ -404,7 +406,7 @@
   EXPECT_THAT(webrtc::WaitUntil(
                   [&] { return observer_->tones().size(); }, ::testing::Eq(1),
                   {.timeout = webrtc::TimeDelta::Millis(kMaxWaitMs),
-                   .clock = &fake_clock_}),
+                   .clock = &time_controller_}),
               webrtc::IsRtcOk());
   VerifyExpectedState("BC", duration, inter_tone_gap);
 }