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

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: Improve comments Created 3 years, 8 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/accessibility_types.h" 7 #include "ash/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
197 using ::testing::_; 187 using ::testing::_;
198 188
199 template <class T, class H> 189 template <class T, class H>
200 class MockOutShowHide : public T { 190 class MockOutShowHide : public T {
201 public: 191 public:
202 template <class P> explicit MockOutShowHide(P p) : T(p) {} 192 template <class P> explicit MockOutShowHide(P p) : T(p) {}
203 template <class P> 193 template <class P>
204 MockOutShowHide(P p, H* view) : T(p, view), view_(view) {} 194 MockOutShowHide(P p, H* view) : T(p, view), view_(view) {}
(...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 class WizardControllerDeviceStateTest : public WizardControllerFlowTest { 811 class WizardControllerDeviceStateTest : public WizardControllerFlowTest {
822 protected: 812 protected:
823 WizardControllerDeviceStateTest() 813 WizardControllerDeviceStateTest()
824 : install_attributes_(ScopedStubInstallAttributes::CreateUnset()) { 814 : install_attributes_(ScopedStubInstallAttributes::CreateUnset()) {
825 fake_statistics_provider_.SetMachineStatistic( 815 fake_statistics_provider_.SetMachineStatistic(
826 system::kSerialNumberKey, "test"); 816 system::kSerialNumberKey, "test");
827 fake_statistics_provider_.SetMachineStatistic( 817 fake_statistics_provider_.SetMachineStatistic(
828 system::kActivateDateKey, "2000-01"); 818 system::kActivateDateKey, "2000-01");
829 } 819 }
830 820
821 static void WaitForAutoEnrollmentState(policy::AutoEnrollmentState state) {
822 base::RunLoop loop;
823 std::unique_ptr<
824 AutoEnrollmentController::ProgressCallbackList::Subscription>
825 progress_subscription(
826 WizardController::default_controller()
827 ->GetAutoEnrollmentController()
828 ->RegisterProgressCallback(base::Bind(
829 &QuitLoopOnAutoEnrollmentProgress, state, &loop)));
830 loop.Run();
831 }
832
831 void SetUpCommandLine(base::CommandLine* command_line) override { 833 void SetUpCommandLine(base::CommandLine* command_line) override {
832 WizardControllerFlowTest::SetUpCommandLine(command_line); 834 WizardControllerFlowTest::SetUpCommandLine(command_line);
833 835
834 command_line->AppendSwitchASCII( 836 command_line->AppendSwitchASCII(
835 switches::kEnterpriseEnableForcedReEnrollment, 837 switches::kEnterpriseEnableForcedReEnrollment,
836 chromeos::AutoEnrollmentController::kForcedReEnrollmentAlways); 838 chromeos::AutoEnrollmentController::kForcedReEnrollmentAlways);
837 command_line->AppendSwitchASCII( 839 command_line->AppendSwitchASCII(
838 switches::kEnterpriseEnrollmentInitialModulus, "1"); 840 switches::kEnterpriseEnrollmentInitialModulus, "1");
839 command_line->AppendSwitchASCII( 841 command_line->AppendSwitchASCII(
840 switches::kEnterpriseEnrollmentModulusLimit, "2"); 842 switches::kEnterpriseEnrollmentModulusLimit, "2");
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 902 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
901 OnExit(*mock_enrollment_screen_, 903 OnExit(*mock_enrollment_screen_,
902 ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED); 904 ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED);
903 905
904 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); 906 EXPECT_TRUE(StartupUtils::IsOobeCompleted());
905 } 907 }
906 908
907 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, 909 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest,
908 ControlFlowNoForcedReEnrollmentOnFirstBoot) { 910 ControlFlowNoForcedReEnrollmentOnFirstBoot) {
909 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); 911 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey);
910 EXPECT_NE( 912 EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT,
911 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, 913 WizardController::default_controller()
912 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); 914 ->GetAutoEnrollmentController()
915 ->state());
913 916
914 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 917 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
915 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 918 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
916 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 919 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
917 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED); 920 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
918 921
919 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 922 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
920 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 923 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
921 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 924 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
922 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 925 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
923 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED); 926 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
924 927
925 // Let update screen smooth time process (time = 0ms). 928 // Let update screen smooth time process (time = 0ms).
926 content::RunAllPendingInMessageLoop(); 929 content::RunAllPendingInMessageLoop();
927 930
928 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 931 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
929 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 932 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
930 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 933 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
931 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED); 934 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
932 935
933 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 936 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
934 mock_auto_enrollment_check_screen_->RealShow(); 937 mock_auto_enrollment_check_screen_->RealShow();
935 EXPECT_EQ( 938 EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT,
936 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, 939 WizardController::default_controller()
937 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); 940 ->GetAutoEnrollmentController()
941 ->state());
938 } 942 }
939 943
940 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, 944 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest,
941 ControlFlowDeviceDisabled) { 945 ControlFlowDeviceDisabled) {
942 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 946 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
943 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 947 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
944 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 948 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
945 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED); 949 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
946 950
947 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 951 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 } 1322 }
1319 1323
1320 private: 1324 private:
1321 DISALLOW_COPY_AND_ASSIGN(WizardControllerCellularFirstTest); 1325 DISALLOW_COPY_AND_ASSIGN(WizardControllerCellularFirstTest);
1322 }; 1326 };
1323 1327
1324 IN_PROC_BROWSER_TEST_F(WizardControllerCellularFirstTest, CellularFirstFlow) { 1328 IN_PROC_BROWSER_TEST_F(WizardControllerCellularFirstTest, CellularFirstFlow) {
1325 TestControlFlowMain(); 1329 TestControlFlowMain();
1326 } 1330 }
1327 1331
1328 // TODO(dzhioev): Add test emaulating device with wrong HWID. 1332 // TODO(dzhioev): Add test emulating device with wrong HWID.
1329 1333
1330 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 1334 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571
1331 1335
1332 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when 1336 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when
1333 // UI and logic is ready. http://crbug.com/127016 1337 // UI and logic is ready. http://crbug.com/127016
1334 1338
1335 // TODO(dzhioev): Add tests for controller/host pairing flow. 1339 // TODO(dzhioev): Add tests for controller/host pairing flow.
1336 // http://crbug.com/375191 1340 // http://crbug.com/375191
1337 1341
1338 // TODO(khmel): Add tests for ARC OptIn flow. 1342 // TODO(khmel): Add tests for ARC OptIn flow.
1339 // http://crbug.com/651144 1343 // http://crbug.com/651144
1340 1344
1341 // TODO(fukino): Add tests for encryption migration UI. 1345 // TODO(fukino): Add tests for encryption migration UI.
1342 // http://crbug.com/706017 1346 // http://crbug.com/706017
1343 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 27, 1347 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 27,
1344 "tests for new control flow are missing"); 1348 "tests for new control flow are missing");
1345 1349
1346 } // namespace chromeos 1350 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.cc ('k') | chrome/browser/chromeos/policy/auto_enrollment_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698