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 |