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

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

Issue 539273002: Added UI to enable debugging features on CrOS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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 "base/basictypes.h" 7 #include "base/basictypes.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/prefs/pref_registry_simple.h" 10 #include "base/prefs/pref_registry_simple.h"
(...skipping 10 matching lines...) Expand all
21 #include "chrome/browser/chromeos/base/locale_util.h" 21 #include "chrome/browser/chromeos/base/locale_util.h"
22 #include "chrome/browser/chromeos/geolocation/simple_geolocation_provider.h" 22 #include "chrome/browser/chromeos/geolocation/simple_geolocation_provider.h"
23 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" 23 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h"
24 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc reen.h" 24 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc reen.h"
25 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h" 25 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h"
26 #include "chrome/browser/chromeos/login/existing_user_controller.h" 26 #include "chrome/browser/chromeos/login/existing_user_controller.h"
27 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h" 27 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h"
28 #include "chrome/browser/chromeos/login/screens/error_screen.h" 28 #include "chrome/browser/chromeos/login/screens/error_screen.h"
29 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" 29 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h"
30 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_acto r.h" 30 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_acto r.h"
31 #include "chrome/browser/chromeos/login/screens/mock_enable_debugging_screen.h"
31 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" 32 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h"
32 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" 33 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h"
33 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" 34 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h"
34 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h" 35 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h"
35 #include "chrome/browser/chromeos/login/screens/network_screen.h" 36 #include "chrome/browser/chromeos/login/screens/network_screen.h"
36 #include "chrome/browser/chromeos/login/screens/reset_screen.h" 37 #include "chrome/browser/chromeos/login/screens/reset_screen.h"
37 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" 38 #include "chrome/browser/chromeos/login/screens/user_image_screen.h"
38 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" 39 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h"
39 #include "chrome/browser/chromeos/login/startup_utils.h" 40 #include "chrome/browser/chromeos/login/startup_utils.h"
40 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" 41 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h"
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 return; 268 return;
268 chromeos::OobeUI* oobe_ui = host->GetOobeUI(); 269 chromeos::OobeUI* oobe_ui = host->GetOobeUI();
269 if (!oobe_ui) 270 if (!oobe_ui)
270 return; 271 return;
271 base::RunLoop run_loop; 272 base::RunLoop run_loop;
272 const bool oobe_ui_ready = oobe_ui->IsJSReady(run_loop.QuitClosure()); 273 const bool oobe_ui_ready = oobe_ui->IsJSReady(run_loop.QuitClosure());
273 if (!oobe_ui_ready) 274 if (!oobe_ui_ready)
274 run_loop.Run(); 275 run_loop.Run();
275 } 276 }
276 277
278 bool JSExecute(const std::string& expression) {
279 return content::ExecuteScript(
280 GetWebContents(),
281 "window.domAutomationController.send(!!(" + expression + "));");
282 }
283
277 bool JSExecuteBooleanExpression(const std::string& expression) { 284 bool JSExecuteBooleanExpression(const std::string& expression) {
278 bool result; 285 bool result;
279 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( 286 EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
280 GetWebContents(), 287 GetWebContents(),
281 "window.domAutomationController.send(!!(" + expression + "));", 288 "window.domAutomationController.send(!!(" + expression + "));",
282 &result)); 289 &result));
283 return result; 290 return result;
284 } 291 }
285 292
286 void CheckCurrentScreen(const std::string& screen_name) { 293 void CheckCurrentScreen(const std::string& screen_name) {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 MOCK(mock_enrollment_screen_, 432 MOCK(mock_enrollment_screen_,
426 kEnrollmentScreenName, 433 kEnrollmentScreenName,
427 MockEnrollmentScreen, 434 MockEnrollmentScreen,
428 MockEnrollmentScreenActor); 435 MockEnrollmentScreenActor);
429 MOCK(mock_auto_enrollment_check_screen_, 436 MOCK(mock_auto_enrollment_check_screen_,
430 kAutoEnrollmentCheckScreenName, 437 kAutoEnrollmentCheckScreenName,
431 MockAutoEnrollmentCheckScreen, 438 MockAutoEnrollmentCheckScreen,
432 MockAutoEnrollmentCheckScreenActor); 439 MockAutoEnrollmentCheckScreenActor);
433 MOCK(mock_wrong_hwid_screen_, kWrongHWIDScreenName, MockWrongHWIDScreen, 440 MOCK(mock_wrong_hwid_screen_, kWrongHWIDScreenName, MockWrongHWIDScreen,
434 MockWrongHWIDScreenActor); 441 MockWrongHWIDScreenActor);
442 MOCK(mock_enable_debugging_screen_,
443 kEnableDebuggingScreenName,
444 MockEnableDebuggingScreen,
445 MockEnableDebuggingScreenActor);
435 device_disabled_screen_actor_.reset(new MockDeviceDisabledScreenActor); 446 device_disabled_screen_actor_.reset(new MockDeviceDisabledScreenActor);
436 wizard_controller->screens_[WizardController::kDeviceDisabledScreenName] = 447 wizard_controller->screens_[WizardController::kDeviceDisabledScreenName] =
437 make_linked_ptr(new DeviceDisabledScreen( 448 make_linked_ptr(new DeviceDisabledScreen(
438 wizard_controller, 449 wizard_controller,
439 device_disabled_screen_actor_.get())); 450 device_disabled_screen_actor_.get()));
440 EXPECT_CALL(*device_disabled_screen_actor_, Show()).Times(0); 451 EXPECT_CALL(*device_disabled_screen_actor_, Show()).Times(0);
441 452
442 // Switch to the initial screen. 453 // Switch to the initial screen.
443 EXPECT_EQ(NULL, wizard_controller->current_screen()); 454 EXPECT_EQ(NULL, wizard_controller->current_screen());
444 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); 455 EXPECT_CALL(*mock_network_screen_, Show()).Times(1);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>* 521 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>*
511 mock_network_screen_; 522 mock_network_screen_;
512 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_; 523 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_;
513 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_; 524 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_;
514 MockOutShowHide<MockEnrollmentScreen, 525 MockOutShowHide<MockEnrollmentScreen,
515 MockEnrollmentScreenActor>* mock_enrollment_screen_; 526 MockEnrollmentScreenActor>* mock_enrollment_screen_;
516 MockOutShowHide<MockAutoEnrollmentCheckScreen, 527 MockOutShowHide<MockAutoEnrollmentCheckScreen,
517 MockAutoEnrollmentCheckScreenActor>* mock_auto_enrollment_check_screen_; 528 MockAutoEnrollmentCheckScreenActor>* mock_auto_enrollment_check_screen_;
518 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenActor>* 529 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenActor>*
519 mock_wrong_hwid_screen_; 530 mock_wrong_hwid_screen_;
531 MockOutShowHide<MockEnableDebuggingScreen,
532 MockEnableDebuggingScreenActor>* mock_enable_debugging_screen_;
520 scoped_ptr<MockDeviceDisabledScreenActor> device_disabled_screen_actor_; 533 scoped_ptr<MockDeviceDisabledScreenActor> device_disabled_screen_actor_;
521 534
522 private: 535 private:
523 NetworkPortalDetectorTestImpl* network_portal_detector_; 536 NetworkPortalDetectorTestImpl* network_portal_detector_;
524 537
525 // Use a test factory as a fallback so we don't have to deal with other 538 // Use a test factory as a fallback so we don't have to deal with other
526 // requests. 539 // requests.
527 scoped_ptr<WizardControllerTestURLFetcherFactory> fallback_fetcher_factory_; 540 scoped_ptr<WizardControllerTestURLFetcherFactory> fallback_fetcher_factory_;
528 scoped_ptr<net::FakeURLFetcherFactory> fetcher_factory_; 541 scoped_ptr<net::FakeURLFetcherFactory> fetcher_factory_;
529 542
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 1100 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
1088 1101
1089 // Make sure enterprise enrollment page shows up right after update screen. 1102 // Make sure enterprise enrollment page shows up right after update screen.
1090 CheckCurrentScreen(WizardController::kEnrollmentScreenName); 1103 CheckCurrentScreen(WizardController::kEnrollmentScreenName);
1091 OnExit(*mock_enrollment_screen_, 1104 OnExit(*mock_enrollment_screen_,
1092 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); 1105 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED);
1093 1106
1094 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); 1107 EXPECT_TRUE(StartupUtils::IsOobeCompleted());
1095 } 1108 }
1096 1109
1097
1098 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest, 1110 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest,
1099 ControlFlowEnrollmentBack) { 1111 ControlFlowEnrollmentBack) {
1100 EXPECT_CALL(*mock_enrollment_screen_->actor(), 1112 EXPECT_CALL(*mock_enrollment_screen_->actor(),
1101 SetParameters(mock_enrollment_screen_, 1113 SetParameters(mock_enrollment_screen_,
1102 EnrollmentScreenActor::ENROLLMENT_MODE_FORCED, 1114 EnrollmentScreenActor::ENROLLMENT_MODE_FORCED,
1103 "")) 1115 ""))
1104 .Times(1); 1116 .Times(1);
1105 1117
1106 EXPECT_TRUE(ExistingUserController::current_controller() == NULL); 1118 EXPECT_TRUE(ExistingUserController::current_controller() == NULL);
1107 CheckCurrentScreen(WizardController::kNetworkScreenName); 1119 CheckCurrentScreen(WizardController::kNetworkScreenName);
(...skipping 27 matching lines...) Expand all
1135 // Make sure enterprise enrollment page shows up right after update screen. 1147 // Make sure enterprise enrollment page shows up right after update screen.
1136 CheckCurrentScreen(WizardController::kEnrollmentScreenName); 1148 CheckCurrentScreen(WizardController::kEnrollmentScreenName);
1137 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 1149 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
1138 OnExit(*mock_enrollment_screen_, 1150 OnExit(*mock_enrollment_screen_,
1139 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_BACK); 1151 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_BACK);
1140 1152
1141 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); 1153 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName);
1142 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 1154 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
1143 } 1155 }
1144 1156
1157
1158 class WizardControllerEnableDebuggingTest : public WizardControllerFlowTest {
1159 protected:
1160 WizardControllerEnableDebuggingTest() {}
1161
1162 // Overridden from InProcessBrowserTest:
1163 virtual void SetUpCommandLine(CommandLine* command_line) override {
1164 WizardControllerFlowTest::SetUpCommandLine(command_line);
1165 command_line->AppendSwitch(chromeos::switches::kSystemDevMode);
1166 }
1167
1168 private:
1169 DISALLOW_COPY_AND_ASSIGN(WizardControllerEnableDebuggingTest);
1170 };
1171
1172 IN_PROC_BROWSER_TEST_F(WizardControllerEnableDebuggingTest,
1173 ShowAndCancelEnableDebugging) {
1174 EXPECT_TRUE(ExistingUserController::current_controller() == NULL);
1175 CheckCurrentScreen(WizardController::kNetworkScreenName);
1176 WaitUntilJSIsReady();
1177
1178 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
1179 EXPECT_CALL(*mock_enable_debugging_screen_, Show()).Times(1);
1180
1181 ASSERT_TRUE(JSExecute("$('connect-debugging-features-link').click()"));
1182
1183 // Let update screen smooth time process (time = 0ms).
1184 content::RunAllPendingInMessageLoop();
1185
1186 CheckCurrentScreen(WizardController::kEnableDebuggingScreenName);
1187 EXPECT_CALL(*mock_enable_debugging_screen_, Hide()).Times(1);
1188 EXPECT_CALL(*mock_network_screen_, Show()).Times(1);
1189
1190 OnExit(*mock_enable_debugging_screen_,
1191 BaseScreenDelegate::ENABLE_DEBUGGING_CANCELED);
1192
1193 // Let update screen smooth time process (time = 0ms).
1194 content::RunAllPendingInMessageLoop();
1195
1196 CheckCurrentScreen(WizardController::kNetworkScreenName);
1197 }
1198
1145 class WizardControllerOobeResumeTest : public WizardControllerTest { 1199 class WizardControllerOobeResumeTest : public WizardControllerTest {
1146 protected: 1200 protected:
1147 WizardControllerOobeResumeTest() {} 1201 WizardControllerOobeResumeTest() {}
1148 // Overriden from InProcessBrowserTest: 1202 // Overriden from InProcessBrowserTest:
1149 virtual void SetUpOnMainThread() override { 1203 virtual void SetUpOnMainThread() override {
1150 WizardControllerTest::SetUpOnMainThread(); 1204 WizardControllerTest::SetUpOnMainThread();
1151 1205
1152 // Make sure that OOBE is run as an "official" build. 1206 // Make sure that OOBE is run as an "official" build.
1153 WizardController::default_controller()->is_official_build_ = true; 1207 WizardController::default_controller()->is_official_build_ = true;
1154 1208
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1211 // TODO(dzhioev): Add test emaulating device with wrong HWID. 1265 // TODO(dzhioev): Add test emaulating device with wrong HWID.
1212 1266
1213 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 1267 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571
1214 1268
1215 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when 1269 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when
1216 // UI and logic is ready. http://crbug.com/127016 1270 // UI and logic is ready. http://crbug.com/127016
1217 1271
1218 // TODO(dzhioev): Add tests for controller/host pairing flow. 1272 // TODO(dzhioev): Add tests for controller/host pairing flow.
1219 // http://crbug.com/375191 1273 // http://crbug.com/375191
1220 1274
1221 COMPILE_ASSERT(BaseScreenDelegate::EXIT_CODES_COUNT == 23, 1275 COMPILE_ASSERT(BaseScreenDelegate::EXIT_CODES_COUNT == 25,
1222 add_tests_for_new_control_flow_you_just_introduced); 1276 add_tests_for_new_control_flow_you_just_introduced);
1223 1277
1224 } // namespace chromeos 1278 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.cc ('k') | chrome/browser/prefs/browser_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698