OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/login/screens/network_screen.h" | 5 #include "chrome/browser/chromeos/login/screens/network_screen.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
12 #include "base/test/test_mock_time_task_runner.h" | |
12 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" | 13 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" |
13 #include "chrome/browser/chromeos/login/helper.h" | 14 #include "chrome/browser/chromeos/login/helper.h" |
14 #include "chrome/browser/chromeos/login/screens/base_screen.h" | 15 #include "chrome/browser/chromeos/login/screens/base_screen.h" |
15 #include "chrome/browser/chromeos/login/screens/mock_base_screen_delegate.h" | 16 #include "chrome/browser/chromeos/login/screens/mock_base_screen_delegate.h" |
16 #include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h" | 17 #include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h" |
17 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" | 18 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" |
18 #include "chrome/browser/chromeos/login/ui/login_display_host.h" | 19 #include "chrome/browser/chromeos/login/ui/login_display_host.h" |
19 #include "chrome/browser/chromeos/login/wizard_controller.h" | 20 #include "chrome/browser/chromeos/login/wizard_controller.h" |
20 #include "chromeos/chromeos_switches.h" | 21 #include "chromeos/chromeos_switches.h" |
21 #include "chromeos/dbus/dbus_thread_manager.h" | 22 #include "chromeos/dbus/dbus_thread_manager.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
163 | 164 |
164 protected: | 165 protected: |
165 void SetUpOnMainThread() override { | 166 void SetUpOnMainThread() override { |
166 NetworkScreenTest::SetUpOnMainThread(); | 167 NetworkScreenTest::SetUpOnMainThread(); |
167 | 168 |
168 // Set up fake networks. | 169 // Set up fake networks. |
169 DBusThreadManager::Get() | 170 DBusThreadManager::Get() |
170 ->GetShillManagerClient() | 171 ->GetShillManagerClient() |
171 ->GetTestInterface() | 172 ->GetTestInterface() |
172 ->SetupDefaultEnvironment(); | 173 ->SetupDefaultEnvironment(); |
174 | |
175 // Set up mock TaskRunner. | |
176 base::TestMockTimeTaskRunner::ScopedContext scoped_context( | |
xiyuan
2017/04/18 22:45:26
We need to make ScopedContext a member var of the
| |
177 task_runner_.get()); | |
173 } | 178 } |
174 | 179 |
180 // Replace main thread's task runner with a mock for duration of test. | |
181 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_ = | |
182 new base::TestMockTimeTaskRunner(); | |
183 | |
175 private: | 184 private: |
176 // Overridden from InProcessBrowserTest: | 185 // Overridden from InProcessBrowserTest: |
177 void SetUpCommandLine(base::CommandLine* command_line) override { | 186 void SetUpCommandLine(base::CommandLine* command_line) override { |
178 command_line->AppendSwitchASCII( | 187 command_line->AppendSwitchASCII( |
179 switches::kEnterpriseEnableZeroTouchEnrollment, "hands-off"); | 188 switches::kEnterpriseEnableZeroTouchEnrollment, "hands-off"); |
180 } | 189 } |
181 | 190 |
182 DISALLOW_COPY_AND_ASSIGN(HandsOffNetworkScreenTest); | 191 DISALLOW_COPY_AND_ASSIGN(HandsOffNetworkScreenTest); |
183 }; | 192 }; |
184 | 193 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
252 EXPECT_CALL(*mock_network_state_helper_, GetCurrentNetworkName()) | 261 EXPECT_CALL(*mock_network_state_helper_, GetCurrentNetworkName()) |
253 .Times(AnyNumber()) | 262 .Times(AnyNumber()) |
254 .WillRepeatedly(Return(base::ASCIIToUTF16("net0"))); | 263 .WillRepeatedly(Return(base::ASCIIToUTF16("net0"))); |
255 EXPECT_CALL(*mock_network_state_helper_, IsConnected()) | 264 EXPECT_CALL(*mock_network_state_helper_, IsConnected()) |
256 .Times(AnyNumber()) | 265 .Times(AnyNumber()) |
257 .WillRepeatedly(Return(true)); | 266 .WillRepeatedly(Return(true)); |
258 | 267 |
259 // Stop waiting for net0. | 268 // Stop waiting for net0. |
260 network_screen_->StopWaitingForConnection(base::ASCIIToUTF16("net0")); | 269 network_screen_->StopWaitingForConnection(base::ASCIIToUTF16("net0")); |
261 | 270 |
271 // Fast forward time by 3 minutes. | |
272 task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(3)); | |
273 | |
262 // Check that OnContinueButtonPressed has been called exactly once. | 274 // Check that OnContinueButtonPressed has been called exactly once. |
263 ASSERT_EQ(1, network_screen_->continue_attempts_); | 275 ASSERT_EQ(1, network_screen_->continue_attempts_); |
264 | 276 |
265 // Stop waiting for another network, net1. | 277 // Stop waiting for another network, net1. |
266 network_screen_->StopWaitingForConnection(base::ASCIIToUTF16("net1")); | 278 network_screen_->StopWaitingForConnection(base::ASCIIToUTF16("net1")); |
267 | 279 |
268 // Check that OnContinueButtonPressed stil has been called exactly once | 280 // Check that OnContinueButtonPressed stil has been called exactly once |
269 ASSERT_EQ(1, network_screen_->continue_attempts_); | 281 ASSERT_EQ(1, network_screen_->continue_attempts_); |
270 | 282 |
271 // Wait for the enrollment screen. | 283 // Wait for the enrollment screen. |
272 OobeScreenWaiter(OobeScreen::SCREEN_OOBE_ENROLLMENT) | 284 OobeScreenWaiter(OobeScreen::SCREEN_OOBE_ENROLLMENT) |
273 .WaitNoAssertCurrentScreen(); | 285 .WaitNoAssertCurrentScreen(); |
274 | 286 |
275 // Reset the enrollment helper so there is no side effect with other tests. | 287 // Reset the enrollment helper so there is no side effect with other tests. |
276 static_cast<EnrollmentScreen*>(wizard_controller->current_screen()) | 288 static_cast<EnrollmentScreen*>(wizard_controller->current_screen()) |
277 ->enrollment_helper_.reset(); | 289 ->enrollment_helper_.reset(); |
278 } | 290 } |
279 | 291 |
280 } // namespace chromeos | 292 } // namespace chromeos |
OLD | NEW |