Chromium Code Reviews| 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 |