Index: chrome/browser/chromeos/login/screens/network_screen_browsertest.cc |
diff --git a/chrome/browser/chromeos/login/screens/network_screen_browsertest.cc b/chrome/browser/chromeos/login/screens/network_screen_browsertest.cc |
index 3337dee077b0bfb6d908f71d2c30787508113dc1..c30bd1bd07ae636b2ff4750825a9d8733dbf90ed 100644 |
--- a/chrome/browser/chromeos/login/screens/network_screen_browsertest.cc |
+++ b/chrome/browser/chromeos/login/screens/network_screen_browsertest.cc |
@@ -9,6 +9,7 @@ |
#include "base/command_line.h" |
#include "base/macros.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/test/test_mock_time_task_runner.h" |
#include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" |
#include "chrome/browser/chromeos/login/helper.h" |
#include "chrome/browser/chromeos/login/screens/base_screen.h" |
@@ -170,8 +171,16 @@ class HandsOffNetworkScreenTest : public NetworkScreenTest { |
->GetShillManagerClient() |
->GetTestInterface() |
->SetupDefaultEnvironment(); |
+ |
+ // Set up mock TaskRunner. |
+ base::TestMockTimeTaskRunner::ScopedContext scoped_context( |
xiyuan
2017/04/18 22:45:26
We need to make ScopedContext a member var of the
|
+ task_runner_.get()); |
} |
+ // Replace main thread's task runner with a mock for duration of test. |
+ scoped_refptr<base::TestMockTimeTaskRunner> task_runner_ = |
+ new base::TestMockTimeTaskRunner(); |
+ |
private: |
// Overridden from InProcessBrowserTest: |
void SetUpCommandLine(base::CommandLine* command_line) override { |
@@ -259,6 +268,9 @@ IN_PROC_BROWSER_TEST_F(HandsOffNetworkScreenTest, ContinueClickedOnlyOnce) { |
// Stop waiting for net0. |
network_screen_->StopWaitingForConnection(base::ASCIIToUTF16("net0")); |
+ // Fast forward time by 3 minutes. |
+ task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(3)); |
+ |
// Check that OnContinueButtonPressed has been called exactly once. |
ASSERT_EQ(1, network_screen_->continue_attempts_); |