Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(888)

Side by Side Diff: chrome/browser/chromeos/login/wizard_controller_browsertest.cc

Issue 2771803003: Don't start FRE from the login screen (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/wizard_controller.h" 5 #include "chrome/browser/chromeos/login/wizard_controller.h"
6 6
7 #include "ash/common/accessibility_types.h" 7 #include "ash/common/accessibility_types.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
15 #include "chrome/browser/browser_shutdown.h" 15 #include "chrome/browser/browser_shutdown.h"
16 #include "chrome/browser/chrome_notification_types.h" 16 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" 17 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
18 #include "chrome/browser/chromeos/base/locale_util.h" 18 #include "chrome/browser/chromeos/base/locale_util.h"
19 #include "chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h"
19 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" 20 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h"
20 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper. h" 21 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper. h"
21 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc reen.h" 22 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc reen.h"
22 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h" 23 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h"
23 #include "chrome/browser/chromeos/login/existing_user_controller.h" 24 #include "chrome/browser/chromeos/login/existing_user_controller.h"
24 #include "chrome/browser/chromeos/login/oobe_screen.h" 25 #include "chrome/browser/chromeos/login/oobe_screen.h"
25 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h" 26 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h"
26 #include "chrome/browser/chromeos/login/screens/error_screen.h" 27 #include "chrome/browser/chromeos/login/screens/error_screen.h"
27 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" 28 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h"
28 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_view .h" 29 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_view .h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 } 175 }
175 176
176 void QuitLoopOnAutoEnrollmentProgress( 177 void QuitLoopOnAutoEnrollmentProgress(
177 policy::AutoEnrollmentState expected_state, 178 policy::AutoEnrollmentState expected_state,
178 base::RunLoop* loop, 179 base::RunLoop* loop,
179 policy::AutoEnrollmentState actual_state) { 180 policy::AutoEnrollmentState actual_state) {
180 if (expected_state == actual_state) 181 if (expected_state == actual_state)
181 loop->Quit(); 182 loop->Quit();
182 } 183 }
183 184
184 void WaitForAutoEnrollmentState(policy::AutoEnrollmentState state) {
185 base::RunLoop loop;
186 AutoEnrollmentController* auto_enrollment_controller =
187 LoginDisplayHost::default_host()->GetAutoEnrollmentController();
188 std::unique_ptr<AutoEnrollmentController::ProgressCallbackList::Subscription>
189 progress_subscription(
190 auto_enrollment_controller->RegisterProgressCallback(
191 base::Bind(&QuitLoopOnAutoEnrollmentProgress, state, &loop)));
192 loop.Run();
193 }
194
195 } // namespace 185 } // namespace
196 186
187 // Can't be in anonymous namespace because it needs to be a friend of
188 // WizardController to access the AutoEnrollmentController.
189 void WaitForAutoEnrollmentState(policy::AutoEnrollmentState state) {
190 base::RunLoop loop;
191 std::unique_ptr<AutoEnrollmentController::ProgressCallbackList::Subscription>
192 progress_subscription(
193 WizardController::default_controller()
194 ->GetAutoEnrollmentController()
195 ->RegisterProgressCallback(
196 base::Bind(&QuitLoopOnAutoEnrollmentProgress, state, &loop)));
197 loop.Run();
198 }
199
197 using ::testing::_; 200 using ::testing::_;
198 201
199 template <class T, class H> 202 template <class T, class H>
200 class MockOutShowHide : public T { 203 class MockOutShowHide : public T {
201 public: 204 public:
202 template <class P> explicit MockOutShowHide(P p) : T(p) {} 205 template <class P> explicit MockOutShowHide(P p) : T(p) {}
203 template <class P> 206 template <class P>
204 MockOutShowHide(P p, H* view) : T(p, view), view_(view) {} 207 MockOutShowHide(P p, H* view) : T(p, view), view_(view) {}
205 template <class P, class Q> 208 template <class P, class Q>
206 MockOutShowHide(P p, Q q, H* view) : T(p, q, view), view_(view) {} 209 MockOutShowHide(P p, Q q, H* view) : T(p, q, view), view_(view) {}
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 903 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
901 OnExit(*mock_enrollment_screen_, 904 OnExit(*mock_enrollment_screen_,
902 ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED); 905 ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED);
903 906
904 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); 907 EXPECT_TRUE(StartupUtils::IsOobeCompleted());
905 } 908 }
906 909
907 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, 910 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest,
908 ControlFlowNoForcedReEnrollmentOnFirstBoot) { 911 ControlFlowNoForcedReEnrollmentOnFirstBoot) {
909 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); 912 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey);
910 EXPECT_NE( 913 EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT,
911 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, 914 WizardController::default_controller()
912 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); 915 ->GetAutoEnrollmentController()
916 ->state());
913 917
914 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 918 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
915 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 919 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
916 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 920 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
917 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED); 921 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
918 922
919 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 923 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
920 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 924 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
921 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 925 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
922 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 926 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
923 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED); 927 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
924 928
925 // Let update screen smooth time process (time = 0ms). 929 // Let update screen smooth time process (time = 0ms).
926 content::RunAllPendingInMessageLoop(); 930 content::RunAllPendingInMessageLoop();
927 931
928 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 932 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
929 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 933 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
930 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 934 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
931 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED); 935 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
932 936
933 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 937 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
934 mock_auto_enrollment_check_screen_->RealShow(); 938 mock_auto_enrollment_check_screen_->RealShow();
935 EXPECT_EQ( 939 EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT,
936 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, 940 WizardController::default_controller()
937 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); 941 ->GetAutoEnrollmentController()
942 ->state());
938 } 943 }
939 944
940 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, 945 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest,
941 ControlFlowDeviceDisabled) { 946 ControlFlowDeviceDisabled) {
942 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 947 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
943 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 948 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
944 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 949 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
945 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED); 950 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
946 951
947 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 952 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 } 1323 }
1319 1324
1320 private: 1325 private:
1321 DISALLOW_COPY_AND_ASSIGN(WizardControllerCellularFirstTest); 1326 DISALLOW_COPY_AND_ASSIGN(WizardControllerCellularFirstTest);
1322 }; 1327 };
1323 1328
1324 IN_PROC_BROWSER_TEST_F(WizardControllerCellularFirstTest, CellularFirstFlow) { 1329 IN_PROC_BROWSER_TEST_F(WizardControllerCellularFirstTest, CellularFirstFlow) {
1325 TestControlFlowMain(); 1330 TestControlFlowMain();
1326 } 1331 }
1327 1332
1328 // TODO(dzhioev): Add test emaulating device with wrong HWID. 1333 // TODO(dzhioev): Add test emulating device with wrong HWID.
achuithb 2017/03/24 01:33:29 Just drop this TODO since there's no bug id
Thiemo Nagel 2017/04/12 14:30:40 Imho, missing a bug number or referencing a person
achuithb 2017/04/19 19:04:42 Perhaps the right thing to do would be to file a b
1329 1334
1330 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 1335 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571
1331 1336
1332 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when 1337 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when
1333 // UI and logic is ready. http://crbug.com/127016 1338 // UI and logic is ready. http://crbug.com/127016
1334 1339
1335 // TODO(dzhioev): Add tests for controller/host pairing flow. 1340 // TODO(dzhioev): Add tests for controller/host pairing flow.
achuithb 2017/03/24 01:33:29 dzhioev, nkostylev, merkulova don't work in chromi
Thiemo Nagel 2017/04/12 14:30:40 See above.
achuithb 2017/04/19 19:04:42 Acknowledged.
1336 // http://crbug.com/375191 1341 // http://crbug.com/375191
1337 1342
1338 // TODO(khmel): Add tests for ARC OptIn flow. 1343 // TODO(khmel): Add tests for ARC OptIn flow.
1339 // http://crbug.com/651144 1344 // http://crbug.com/651144
1340 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 25, 1345 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 25,
1341 "tests for new control flow are missing"); 1346 "tests for new control flow are missing");
1342 1347
1343 } // namespace chromeos 1348 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698