| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "app/l10n_util.h" | 5 #include "app/l10n_util.h" |
| 6 #include "chrome/browser/browser_process.h" | 6 #include "chrome/browser/browser_process.h" |
| 7 #include "chrome/browser/chromeos/login/account_screen.h" | 7 #include "chrome/browser/chromeos/login/account_screen.h" |
| 8 #include "chrome/browser/chromeos/login/eula_view.h" |
| 8 #include "chrome/browser/chromeos/login/language_switch_menu.h" | 9 #include "chrome/browser/chromeos/login/language_switch_menu.h" |
| 9 #include "chrome/browser/chromeos/login/login_screen.h" | 10 #include "chrome/browser/chromeos/login/login_screen.h" |
| 10 #include "chrome/browser/chromeos/login/mock_update_screen.h" | 11 #include "chrome/browser/chromeos/login/mock_update_screen.h" |
| 11 #include "chrome/browser/chromeos/login/network_screen.h" | 12 #include "chrome/browser/chromeos/login/network_screen.h" |
| 12 #include "chrome/browser/chromeos/login/network_selection_view.h" | 13 #include "chrome/browser/chromeos/login/network_selection_view.h" |
| 13 #include "chrome/browser/chromeos/login/user_image_screen.h" | 14 #include "chrome/browser/chromeos/login/user_image_screen.h" |
| 14 #include "chrome/browser/chromeos/login/wizard_controller.h" | 15 #include "chrome/browser/chromeos/login/wizard_controller.h" |
| 15 #include "chrome/browser/chromeos/login/wizard_in_process_browser_test.h" | 16 #include "chrome/browser/chromeos/login/wizard_in_process_browser_test.h" |
| 16 #include "chrome/common/chrome_switches.h" | 17 #include "chrome/common/chrome_switches.h" |
| 17 #include "chrome/common/notification_service.h" | 18 #include "chrome/common/notification_service.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 WizardControllerFlowTest() {} | 103 WizardControllerFlowTest() {} |
| 103 // Overriden from InProcessBrowserTest: | 104 // Overriden from InProcessBrowserTest: |
| 104 virtual Browser* CreateBrowser(Profile* profile) { | 105 virtual Browser* CreateBrowser(Profile* profile) { |
| 105 Browser* ret = WizardControllerTest::CreateBrowser(profile); | 106 Browser* ret = WizardControllerTest::CreateBrowser(profile); |
| 106 | 107 |
| 107 // Set up the mocks for all screens. | 108 // Set up the mocks for all screens. |
| 108 MOCK(mock_account_screen_, account_screen_, chromeos::AccountScreen); | 109 MOCK(mock_account_screen_, account_screen_, chromeos::AccountScreen); |
| 109 MOCK(mock_login_screen_, login_screen_, chromeos::LoginScreen); | 110 MOCK(mock_login_screen_, login_screen_, chromeos::LoginScreen); |
| 110 MOCK(mock_network_screen_, network_screen_, chromeos::NetworkScreen); | 111 MOCK(mock_network_screen_, network_screen_, chromeos::NetworkScreen); |
| 111 MOCK(mock_update_screen_, update_screen_, MockUpdateScreen); | 112 MOCK(mock_update_screen_, update_screen_, MockUpdateScreen); |
| 113 MOCK(mock_eula_screen_, eula_screen_, chromeos::EulaScreen); |
| 112 | 114 |
| 113 // Switch to the initial screen. | 115 // Switch to the initial screen. |
| 114 EXPECT_EQ(NULL, controller()->current_screen()); | 116 EXPECT_EQ(NULL, controller()->current_screen()); |
| 115 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 117 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
| 116 controller()->ShowFirstScreen(WizardController::kOutOfBoxScreenName); | 118 controller()->ShowFirstScreen(WizardController::kOutOfBoxScreenName); |
| 117 | 119 |
| 118 return ret; | 120 return ret; |
| 119 } | 121 } |
| 120 | 122 |
| 121 MockOutShowHide<chromeos::AccountScreen>* mock_account_screen_; | 123 MockOutShowHide<chromeos::AccountScreen>* mock_account_screen_; |
| 122 MockOutShowHide<chromeos::LoginScreen>* mock_login_screen_; | 124 MockOutShowHide<chromeos::LoginScreen>* mock_login_screen_; |
| 123 MockOutShowHide<chromeos::NetworkScreen>* mock_network_screen_; | 125 MockOutShowHide<chromeos::NetworkScreen>* mock_network_screen_; |
| 124 MockOutShowHide<MockUpdateScreen>* mock_update_screen_; | 126 MockOutShowHide<MockUpdateScreen>* mock_update_screen_; |
| 127 MockOutShowHide<chromeos::EulaScreen>* mock_eula_screen_; |
| 125 | 128 |
| 126 private: | 129 private: |
| 127 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); | 130 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); |
| 128 }; | 131 }; |
| 129 | 132 |
| 130 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) { | 133 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) { |
| 131 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); | 134 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); |
| 132 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 135 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 133 EXPECT_CALL(*mock_update_screen_, StartUpdate()).Times(1); | 136 EXPECT_CALL(*mock_update_screen_, StartUpdate()).Times(1); |
| 134 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 137 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 135 controller()->OnExit(chromeos::ScreenObserver::NETWORK_CONNECTED); | 138 controller()->OnExit(chromeos::ScreenObserver::NETWORK_CONNECTED); |
| 136 | 139 |
| 137 EXPECT_EQ(controller()->GetUpdateScreen(), controller()->current_screen()); | 140 EXPECT_EQ(controller()->GetUpdateScreen(), controller()->current_screen()); |
| 138 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 141 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 142 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 143 controller()->OnExit(chromeos::ScreenObserver::UPDATE_INSTALLED); |
| 144 |
| 145 EXPECT_EQ(controller()->GetEulaScreen(), controller()->current_screen()); |
| 146 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 139 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); | 147 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); |
| 140 controller()->OnExit(chromeos::ScreenObserver::UPDATE_INSTALLED); | 148 controller()->OnExit(chromeos::ScreenObserver::EULA_ACCEPTED); |
| 141 | 149 |
| 142 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); | 150 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); |
| 143 EXPECT_CALL(*mock_login_screen_, Hide()).Times(1); | 151 EXPECT_CALL(*mock_login_screen_, Hide()).Times(1); |
| 144 EXPECT_CALL(*mock_account_screen_, Show()).Times(1); | 152 EXPECT_CALL(*mock_account_screen_, Show()).Times(1); |
| 145 controller()->OnExit(chromeos::ScreenObserver::LOGIN_CREATE_ACCOUNT); | 153 controller()->OnExit(chromeos::ScreenObserver::LOGIN_CREATE_ACCOUNT); |
| 146 | 154 |
| 147 EXPECT_EQ(controller()->GetAccountScreen(), controller()->current_screen()); | 155 EXPECT_EQ(controller()->GetAccountScreen(), controller()->current_screen()); |
| 148 EXPECT_CALL(*mock_account_screen_, Hide()).Times(1); | 156 EXPECT_CALL(*mock_account_screen_, Hide()).Times(1); |
| 149 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); | 157 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); |
| 150 EXPECT_CALL(*mock_login_screen_, Hide()).Times(0); // last transition | 158 EXPECT_CALL(*mock_login_screen_, Hide()).Times(0); // last transition |
| 151 controller()->OnExit(chromeos::ScreenObserver::ACCOUNT_CREATED); | 159 controller()->OnExit(chromeos::ScreenObserver::ACCOUNT_CREATED); |
| 152 | 160 |
| 153 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); | 161 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); |
| 154 } | 162 } |
| 155 | 163 |
| 156 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { | 164 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { |
| 157 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); | 165 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); |
| 158 EXPECT_CALL(*mock_update_screen_, StartUpdate()).Times(1); | 166 EXPECT_CALL(*mock_update_screen_, StartUpdate()).Times(1); |
| 159 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 167 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 160 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 168 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 161 controller()->OnExit(chromeos::ScreenObserver::NETWORK_CONNECTED); | 169 controller()->OnExit(chromeos::ScreenObserver::NETWORK_CONNECTED); |
| 162 | 170 |
| 163 EXPECT_EQ(controller()->GetUpdateScreen(), controller()->current_screen()); | 171 EXPECT_EQ(controller()->GetUpdateScreen(), controller()->current_screen()); |
| 164 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 172 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 165 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); | 173 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 166 EXPECT_CALL(*mock_login_screen_, Hide()).Times(0); // last transition | 174 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(0); // last transition |
| 167 controller()->OnExit( | 175 controller()->OnExit( |
| 168 chromeos::ScreenObserver::UPDATE_ERROR_UPDATING); | 176 chromeos::ScreenObserver::UPDATE_ERROR_UPDATING); |
| 169 | 177 |
| 170 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); | 178 EXPECT_EQ(controller()->GetEulaScreen(), controller()->current_screen()); |
| 171 } | 179 } |
| 172 | 180 |
| 173 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorNetwork) { | 181 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorNetwork) { |
| 174 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); | 182 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); |
| 175 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); | 183 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); |
| 176 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 184 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 177 controller()->OnExit(chromeos::ScreenObserver::NETWORK_OFFLINE); | 185 controller()->OnExit(chromeos::ScreenObserver::NETWORK_OFFLINE); |
| 178 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); | 186 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); |
| 179 } | 187 } |
| 180 | 188 |
| 181 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, Accelerators) { | 189 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, Accelerators) { |
| 182 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); | 190 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); |
| 183 | 191 |
| 184 views::FocusManager* focus_manager = | 192 views::FocusManager* focus_manager = |
| 185 controller()->contents()->GetFocusManager(); | 193 controller()->contents()->GetFocusManager(); |
| 186 views::Accelerator accel_account_screen(base::VKEY_A, false, true, true); | 194 views::Accelerator accel_account_screen(base::VKEY_A, false, true, true); |
| 187 views::Accelerator accel_login_screen(base::VKEY_L, false, true, true); | 195 views::Accelerator accel_login_screen(base::VKEY_L, false, true, true); |
| 188 views::Accelerator accel_network_screen(base::VKEY_N, false, true, true); | 196 views::Accelerator accel_network_screen(base::VKEY_N, false, true, true); |
| 189 views::Accelerator accel_update_screen(base::VKEY_U, false, true, true); | 197 views::Accelerator accel_update_screen(base::VKEY_U, false, true, true); |
| 190 views::Accelerator accel_image_screen(base::VKEY_I, false, true, true); | 198 views::Accelerator accel_image_screen(base::VKEY_I, false, true, true); |
| 199 views::Accelerator accel_eula_screen(base::VKEY_E, false, true, true); |
| 191 | 200 |
| 192 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 201 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 193 EXPECT_CALL(*mock_account_screen_, Show()).Times(1); | 202 EXPECT_CALL(*mock_account_screen_, Show()).Times(1); |
| 194 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_account_screen)); | 203 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_account_screen)); |
| 195 EXPECT_EQ(controller()->GetAccountScreen(), controller()->current_screen()); | 204 EXPECT_EQ(controller()->GetAccountScreen(), controller()->current_screen()); |
| 196 | 205 |
| 197 EXPECT_CALL(*mock_account_screen_, Hide()).Times(1); | 206 EXPECT_CALL(*mock_account_screen_, Hide()).Times(1); |
| 198 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); | 207 EXPECT_CALL(*mock_login_screen_, Show()).Times(1); |
| 199 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_login_screen)); | 208 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_login_screen)); |
| 200 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); | 209 EXPECT_EQ(controller()->GetLoginScreen(), controller()->current_screen()); |
| 201 | 210 |
| 202 EXPECT_CALL(*mock_login_screen_, Hide()).Times(1); | 211 EXPECT_CALL(*mock_login_screen_, Hide()).Times(1); |
| 203 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 212 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
| 204 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_network_screen)); | 213 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_network_screen)); |
| 205 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); | 214 EXPECT_EQ(controller()->GetNetworkScreen(), controller()->current_screen()); |
| 206 | 215 |
| 207 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 216 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 208 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 217 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 209 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_update_screen)); | 218 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_update_screen)); |
| 210 EXPECT_EQ(controller()->GetUpdateScreen(), controller()->current_screen()); | 219 EXPECT_EQ(controller()->GetUpdateScreen(), controller()->current_screen()); |
| 211 | 220 |
| 212 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 221 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 213 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_image_screen)); | 222 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_image_screen)); |
| 214 EXPECT_EQ(controller()->GetUserImageScreen(), controller()->current_screen()); | 223 EXPECT_EQ(controller()->GetUserImageScreen(), controller()->current_screen()); |
| 224 |
| 225 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 226 EXPECT_TRUE(focus_manager->ProcessAccelerator(accel_eula_screen)); |
| 227 EXPECT_EQ(controller()->GetEulaScreen(), controller()->current_screen()); |
| 215 } | 228 } |
| 216 | 229 |
| 217 COMPILE_ASSERT(chromeos::ScreenObserver::EXIT_CODES_COUNT == 14, | 230 COMPILE_ASSERT(chromeos::ScreenObserver::EXIT_CODES_COUNT == 15, |
| 218 add_tests_for_new_control_flow_you_just_introduced); | 231 add_tests_for_new_control_flow_you_just_introduced); |
| OLD | NEW |