OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/prefs/pref_service.h" | 6 #include "base/prefs/pref_service.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" | 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h" | 10 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 OnBubbleShown(); | 107 OnBubbleShown(); |
108 } | 108 } |
109 | 109 |
110 void TestManagePasswordsUIController:: | 110 void TestManagePasswordsUIController:: |
111 UpdateAndroidAccountChooserInfoBarVisibility() { | 111 UpdateAndroidAccountChooserInfoBarVisibility() { |
112 OnBubbleShown(); | 112 OnBubbleShown(); |
113 } | 113 } |
114 | 114 |
115 void TestManagePasswordsUIController::NeverSavePasswordInternal() { | 115 void TestManagePasswordsUIController::NeverSavePasswordInternal() { |
116 autofill::PasswordForm blacklisted; | 116 autofill::PasswordForm blacklisted; |
117 blacklisted.origin = this->origin(); | 117 blacklisted.origin = this->GetOrigin(); |
118 blacklisted.signon_realm = blacklisted.origin.spec(); | 118 blacklisted.signon_realm = blacklisted.origin.spec(); |
119 blacklisted.blacklisted_by_user = true; | 119 blacklisted.blacklisted_by_user = true; |
120 password_manager::PasswordStoreChange change( | 120 password_manager::PasswordStoreChange change( |
121 password_manager::PasswordStoreChange::ADD, blacklisted); | 121 password_manager::PasswordStoreChange::ADD, blacklisted); |
122 password_manager::PasswordStoreChangeList list(1, change); | 122 password_manager::PasswordStoreChangeList list(1, change); |
123 OnLoginsChanged(list); | 123 OnLoginsChanged(list); |
124 } | 124 } |
125 | 125 |
126 } // namespace | 126 } // namespace |
127 | 127 |
(...skipping 26 matching lines...) Expand all Loading... |
154 // No op on Android, where there is no icon. | 154 // No op on Android, where there is no icon. |
155 #if !defined(OS_ANDROID) | 155 #if !defined(OS_ANDROID) |
156 TestManagePasswordsIconView view; | 156 TestManagePasswordsIconView view; |
157 controller()->UpdateIconAndBubbleState(&view); | 157 controller()->UpdateIconAndBubbleState(&view); |
158 EXPECT_EQ(state, view.state()); | 158 EXPECT_EQ(state, view.state()); |
159 #endif | 159 #endif |
160 } | 160 } |
161 | 161 |
162 void ExpectIconAndControllerStateIs(password_manager::ui::State state) { | 162 void ExpectIconAndControllerStateIs(password_manager::ui::State state) { |
163 ExpectIconStateIs(state); | 163 ExpectIconStateIs(state); |
164 EXPECT_EQ(state, controller()->state()); | 164 EXPECT_EQ(state, controller()->GetState()); |
165 } | 165 } |
166 | 166 |
167 autofill::PasswordForm& test_local_form() { return test_local_form_; } | 167 autofill::PasswordForm& test_local_form() { return test_local_form_; } |
168 autofill::PasswordForm& test_federated_form() { return test_federated_form_; } | 168 autofill::PasswordForm& test_federated_form() { return test_federated_form_; } |
169 password_manager::CredentialInfo* credential_info() const { | 169 password_manager::CredentialInfo* credential_info() const { |
170 return credential_info_.get(); | 170 return credential_info_.get(); |
171 } | 171 } |
172 | 172 |
173 TestManagePasswordsUIController* controller() { | 173 TestManagePasswordsUIController* controller() { |
174 return static_cast<TestManagePasswordsUIController*>( | 174 return static_cast<TestManagePasswordsUIController*>( |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 | 211 |
212 scoped_ptr<password_manager::PasswordFormManager> | 212 scoped_ptr<password_manager::PasswordFormManager> |
213 ManagePasswordsUIControllerTest::CreateFormManager() { | 213 ManagePasswordsUIControllerTest::CreateFormManager() { |
214 ScopedVector<autofill::PasswordForm> stored_forms; | 214 ScopedVector<autofill::PasswordForm> stored_forms; |
215 stored_forms.push_back(new autofill::PasswordForm(test_local_form())); | 215 stored_forms.push_back(new autofill::PasswordForm(test_local_form())); |
216 return CreateFormManagerWithBestMatches(test_local_form(), | 216 return CreateFormManagerWithBestMatches(test_local_form(), |
217 stored_forms.Pass()); | 217 stored_forms.Pass()); |
218 } | 218 } |
219 | 219 |
220 TEST_F(ManagePasswordsUIControllerTest, DefaultState) { | 220 TEST_F(ManagePasswordsUIControllerTest, DefaultState) { |
221 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); | 221 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
222 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 222 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); |
223 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); | |
224 | 223 |
225 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 224 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
226 } | 225 } |
227 | 226 |
228 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { | 227 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { |
229 scoped_ptr<autofill::PasswordForm> test_form( | 228 scoped_ptr<autofill::PasswordForm> test_form( |
230 new autofill::PasswordForm(test_local_form())); | 229 new autofill::PasswordForm(test_local_form())); |
231 autofill::PasswordForm* test_form_ptr = test_form.get(); | 230 autofill::PasswordForm* test_form_ptr = test_form.get(); |
232 base::string16 kTestUsername = test_form->username_value; | 231 base::string16 kTestUsername = test_form->username_value; |
233 autofill::PasswordFormMap map; | 232 autofill::PasswordFormMap map; |
234 map.insert(kTestUsername, test_form.Pass()); | 233 map.insert(kTestUsername, test_form.Pass()); |
235 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); | 234 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); |
236 | 235 |
237 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 236 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
238 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 237 EXPECT_EQ(test_form_ptr->origin, controller()->GetOrigin()); |
239 EXPECT_EQ(test_form_ptr->origin, controller()->origin()); | |
240 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); | 238 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); |
241 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); | 239 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); |
242 | 240 |
243 // Controller should store a separate copy of the form as it doesn't own it. | 241 // Controller should store a separate copy of the form as it doesn't own it. |
244 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); | 242 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); |
245 | 243 |
246 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 244 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
247 } | 245 } |
248 | 246 |
249 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { | 247 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { |
250 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 248 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
251 CreateFormManager()); | 249 CreateFormManager()); |
252 controller()->OnPasswordSubmitted(test_form_manager.Pass()); | 250 controller()->OnPasswordSubmitted(test_form_manager.Pass()); |
253 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 251 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
254 controller()->state()); | 252 controller()->GetState()); |
255 EXPECT_TRUE(controller()->PasswordPendingUserDecision()); | |
256 EXPECT_TRUE(controller()->opened_bubble()); | 253 EXPECT_TRUE(controller()->opened_bubble()); |
257 | 254 |
258 // TODO(mkwst): This should be the value of test_local_form().origin, but | 255 // TODO(mkwst): This should be the value of test_local_form().origin, but |
259 // it's being masked by the stub implementation of | 256 // it's being masked by the stub implementation of |
260 // ManagePasswordsUIControllerMock::PendingCredentials. | 257 // ManagePasswordsUIControllerMock::PendingCredentials. |
261 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); | 258 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); |
262 | 259 |
263 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 260 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
264 } | 261 } |
265 | 262 |
266 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) { | 263 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) { |
267 autofill::PasswordForm blacklisted; | 264 autofill::PasswordForm blacklisted; |
268 blacklisted.origin = test_local_form().origin; | 265 blacklisted.origin = test_local_form().origin; |
269 blacklisted.signon_realm = blacklisted.origin.spec(); | 266 blacklisted.signon_realm = blacklisted.origin.spec(); |
270 blacklisted.blacklisted_by_user = true; | 267 blacklisted.blacklisted_by_user = true; |
271 ScopedVector<autofill::PasswordForm> stored_forms; | 268 ScopedVector<autofill::PasswordForm> stored_forms; |
272 stored_forms.push_back(new autofill::PasswordForm(blacklisted)); | 269 stored_forms.push_back(new autofill::PasswordForm(blacklisted)); |
273 scoped_ptr<password_manager::PasswordFormManager> test_form_manager = | 270 scoped_ptr<password_manager::PasswordFormManager> test_form_manager = |
274 CreateFormManagerWithBestMatches(test_local_form(), stored_forms.Pass()); | 271 CreateFormManagerWithBestMatches(test_local_form(), stored_forms.Pass()); |
275 | 272 |
276 controller()->OnPasswordSubmitted(test_form_manager.Pass()); | 273 controller()->OnPasswordSubmitted(test_form_manager.Pass()); |
277 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 274 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
278 controller()->state()); | 275 controller()->GetState()); |
279 EXPECT_TRUE(controller()->PasswordPendingUserDecision()); | |
280 EXPECT_FALSE(controller()->opened_bubble()); | 276 EXPECT_FALSE(controller()->opened_bubble()); |
281 | 277 |
282 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 278 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
283 } | 279 } |
284 | 280 |
285 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) { | 281 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) { |
286 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 282 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
287 CreateFormManager()); | 283 CreateFormManager()); |
288 password_manager::InteractionsStats stats; | 284 password_manager::InteractionsStats stats; |
289 stats.origin_domain = test_local_form().origin.GetOrigin(); | 285 stats.origin_domain = test_local_form().origin.GetOrigin(); |
290 stats.username_value = test_local_form().username_value; | 286 stats.username_value = test_local_form().username_value; |
291 stats.dismissal_count = kGreatDissmisalCount; | 287 stats.dismissal_count = kGreatDissmisalCount; |
292 ScopedVector<password_manager::InteractionsStats> interactions; | 288 ScopedVector<password_manager::InteractionsStats> interactions; |
293 interactions.push_back(new password_manager::InteractionsStats(stats)); | 289 interactions.push_back(new password_manager::InteractionsStats(stats)); |
294 test_form_manager->OnGetSiteStatistics(interactions.Pass()); | 290 test_form_manager->OnGetSiteStatistics(interactions.Pass()); |
295 test_form_manager->ProvisionallySave( | 291 test_form_manager->ProvisionallySave( |
296 test_local_form(), | 292 test_local_form(), |
297 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 293 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
298 controller()->OnPasswordSubmitted(test_form_manager.Pass()); | 294 controller()->OnPasswordSubmitted(test_form_manager.Pass()); |
299 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 295 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
300 controller()->state()); | 296 controller()->GetState()); |
301 EXPECT_FALSE(controller()->opened_bubble()); | 297 EXPECT_FALSE(controller()->opened_bubble()); |
302 ASSERT_TRUE(controller()->GetCurrentInteractionStats()); | 298 ASSERT_TRUE(controller()->GetCurrentInteractionStats()); |
303 EXPECT_EQ(stats, *controller()->GetCurrentInteractionStats()); | 299 EXPECT_EQ(stats, *controller()->GetCurrentInteractionStats()); |
304 | 300 |
305 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 301 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
306 } | 302 } |
307 | 303 |
308 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) { | 304 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) { |
309 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 305 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
310 CreateFormManager()); | 306 CreateFormManager()); |
311 password_manager::InteractionsStats stats; | 307 password_manager::InteractionsStats stats; |
312 stats.origin_domain = test_local_form().origin.GetOrigin(); | 308 stats.origin_domain = test_local_form().origin.GetOrigin(); |
313 stats.username_value = base::ASCIIToUTF16("not my username"); | 309 stats.username_value = base::ASCIIToUTF16("not my username"); |
314 stats.dismissal_count = kGreatDissmisalCount; | 310 stats.dismissal_count = kGreatDissmisalCount; |
315 ScopedVector<password_manager::InteractionsStats> interactions; | 311 ScopedVector<password_manager::InteractionsStats> interactions; |
316 interactions.push_back(new password_manager::InteractionsStats(stats)); | 312 interactions.push_back(new password_manager::InteractionsStats(stats)); |
317 test_form_manager->OnGetSiteStatistics(interactions.Pass()); | 313 test_form_manager->OnGetSiteStatistics(interactions.Pass()); |
318 test_form_manager->ProvisionallySave( | 314 test_form_manager->ProvisionallySave( |
319 test_local_form(), | 315 test_local_form(), |
320 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 316 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
321 controller()->OnPasswordSubmitted(test_form_manager.Pass()); | 317 controller()->OnPasswordSubmitted(test_form_manager.Pass()); |
322 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 318 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
323 controller()->state()); | 319 controller()->GetState()); |
324 EXPECT_TRUE(controller()->opened_bubble()); | 320 EXPECT_TRUE(controller()->opened_bubble()); |
325 EXPECT_FALSE(controller()->GetCurrentInteractionStats()); | 321 EXPECT_FALSE(controller()->GetCurrentInteractionStats()); |
326 | 322 |
327 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 323 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
328 } | 324 } |
329 | 325 |
330 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) { | 326 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) { |
331 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 327 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
332 CreateFormManager()); | 328 CreateFormManager()); |
333 test_form_manager->ProvisionallySave( | 329 test_form_manager->ProvisionallySave( |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 } | 382 } |
387 | 383 |
388 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { | 384 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { |
389 // Navigate to a non-webby URL, then see what happens! | 385 // Navigate to a non-webby URL, then see what happens! |
390 content::WebContentsTester::For(web_contents()) | 386 content::WebContentsTester::For(web_contents()) |
391 ->NavigateAndCommit(GURL("chrome://sign-in")); | 387 ->NavigateAndCommit(GURL("chrome://sign-in")); |
392 | 388 |
393 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 389 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
394 CreateFormManager()); | 390 CreateFormManager()); |
395 controller()->OnPasswordSubmitted(test_form_manager.Pass()); | 391 controller()->OnPasswordSubmitted(test_form_manager.Pass()); |
396 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); | 392 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
397 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | |
398 | 393 |
399 // TODO(mkwst): This should be the value of test_local_form().origin, but | 394 // TODO(mkwst): This should be the value of test_local_form().origin, but |
400 // it's being masked by the stub implementation of | 395 // it's being masked by the stub implementation of |
401 // ManagePasswordsUIControllerMock::PendingCredentials. | 396 // ManagePasswordsUIControllerMock::PendingCredentials. |
402 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); | 397 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); |
403 | 398 |
404 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 399 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
405 } | 400 } |
406 | 401 |
407 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { | 402 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { |
408 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 403 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
409 autofill::PasswordFormMap map; | 404 autofill::PasswordFormMap map; |
410 map.insert(kTestUsername, | 405 map.insert(kTestUsername, |
411 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); | 406 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
412 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); | 407 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); |
413 | 408 |
414 test_local_form().blacklisted_by_user = true; | 409 test_local_form().blacklisted_by_user = true; |
415 password_manager::PasswordStoreChange change( | 410 password_manager::PasswordStoreChange change( |
416 password_manager::PasswordStoreChange::ADD, test_local_form()); | 411 password_manager::PasswordStoreChange::ADD, test_local_form()); |
417 password_manager::PasswordStoreChangeList list(1, change); | 412 password_manager::PasswordStoreChangeList list(1, change); |
418 controller()->OnLoginsChanged(list); | 413 controller()->OnLoginsChanged(list); |
419 | 414 |
420 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 415 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
421 EXPECT_EQ(test_local_form().origin, controller()->origin()); | 416 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); |
422 | 417 |
423 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 418 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
424 } | 419 } |
425 | 420 |
426 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) { | 421 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) { |
427 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 422 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
428 CreateFormManager()); | 423 CreateFormManager()); |
429 | 424 |
430 controller()->OnAutomaticPasswordSave(test_form_manager.Pass()); | 425 controller()->OnAutomaticPasswordSave(test_form_manager.Pass()); |
431 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->state()); | 426 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState()); |
432 | 427 |
433 controller()->OnBubbleHidden(); | 428 controller()->OnBubbleHidden(); |
434 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 429 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
435 } | 430 } |
436 | 431 |
437 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { | 432 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { |
438 ScopedVector<autofill::PasswordForm> local_credentials; | 433 ScopedVector<autofill::PasswordForm> local_credentials; |
439 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 434 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
440 ScopedVector<autofill::PasswordForm> federated_credentials; | 435 ScopedVector<autofill::PasswordForm> federated_credentials; |
441 GURL origin("http://example.com"); | 436 GURL origin("http://example.com"); |
442 EXPECT_TRUE(controller()->OnChooseCredentials( | 437 EXPECT_TRUE(controller()->OnChooseCredentials( |
443 local_credentials.Pass(), federated_credentials.Pass(), origin, | 438 local_credentials.Pass(), federated_credentials.Pass(), origin, |
444 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, | 439 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, |
445 base::Unretained(this)))); | 440 base::Unretained(this)))); |
446 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, | 441 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, |
447 controller()->state()); | 442 controller()->GetState()); |
448 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 443 EXPECT_EQ(origin, controller()->GetOrigin()); |
449 EXPECT_EQ(origin, controller()->origin()); | |
450 EXPECT_THAT(controller()->GetCurrentForms(), | 444 EXPECT_THAT(controller()->GetCurrentForms(), |
451 ElementsAre(Pointee(test_local_form()))); | 445 ElementsAre(Pointee(test_local_form()))); |
452 | 446 |
453 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); | 447 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
454 | 448 |
455 controller()->ManagePasswordsUIController::ChooseCredential( | 449 controller()->ManagePasswordsUIController::ChooseCredential( |
456 test_local_form(), | 450 test_local_form(), |
457 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); | 451 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); |
458 controller()->OnBubbleHidden(); | 452 controller()->OnBubbleHidden(); |
459 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 453 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
460 ASSERT_TRUE(credential_info()); | 454 ASSERT_TRUE(credential_info()); |
461 EXPECT_EQ(test_local_form().username_value, credential_info()->id); | 455 EXPECT_EQ(test_local_form().username_value, credential_info()->id); |
462 EXPECT_EQ(test_local_form().password_value, credential_info()->password); | 456 EXPECT_EQ(test_local_form().password_value, credential_info()->password); |
463 EXPECT_TRUE(credential_info()->federation.is_empty()); | 457 EXPECT_TRUE(credential_info()->federation.is_empty()); |
464 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD, | 458 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD, |
465 credential_info()->type); | 459 credential_info()->type); |
466 } | 460 } |
467 | 461 |
468 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) { | 462 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) { |
469 ScopedVector<autofill::PasswordForm> local_credentials; | 463 ScopedVector<autofill::PasswordForm> local_credentials; |
470 local_credentials.push_back( | 464 local_credentials.push_back( |
471 new autofill::PasswordForm(test_federated_form())); | 465 new autofill::PasswordForm(test_federated_form())); |
472 ScopedVector<autofill::PasswordForm> federated_credentials; | 466 ScopedVector<autofill::PasswordForm> federated_credentials; |
473 GURL origin("http://example.com"); | 467 GURL origin("http://example.com"); |
474 EXPECT_TRUE(controller()->OnChooseCredentials( | 468 EXPECT_TRUE(controller()->OnChooseCredentials( |
475 local_credentials.Pass(), federated_credentials.Pass(), origin, | 469 local_credentials.Pass(), federated_credentials.Pass(), origin, |
476 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, | 470 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, |
477 base::Unretained(this)))); | 471 base::Unretained(this)))); |
478 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, | 472 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, |
479 controller()->state()); | 473 controller()->GetState()); |
480 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 474 EXPECT_EQ(origin, controller()->GetOrigin()); |
481 EXPECT_EQ(origin, controller()->origin()); | |
482 EXPECT_THAT(controller()->GetCurrentForms(), | 475 EXPECT_THAT(controller()->GetCurrentForms(), |
483 ElementsAre(Pointee(test_federated_form()))); | 476 ElementsAre(Pointee(test_federated_form()))); |
484 | 477 |
485 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); | 478 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
486 | 479 |
487 controller()->ManagePasswordsUIController::ChooseCredential( | 480 controller()->ManagePasswordsUIController::ChooseCredential( |
488 test_federated_form(), | 481 test_federated_form(), |
489 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); | 482 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD); |
490 controller()->OnBubbleHidden(); | 483 controller()->OnBubbleHidden(); |
491 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 484 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
492 ASSERT_TRUE(credential_info()); | 485 ASSERT_TRUE(credential_info()); |
493 EXPECT_EQ(test_federated_form().username_value, credential_info()->id); | 486 EXPECT_EQ(test_federated_form().username_value, credential_info()->id); |
494 EXPECT_EQ(test_federated_form().federation_url, | 487 EXPECT_EQ(test_federated_form().federation_url, |
495 credential_info()->federation); | 488 credential_info()->federation); |
496 EXPECT_TRUE(credential_info()->password.empty()); | 489 EXPECT_TRUE(credential_info()->password.empty()); |
497 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, | 490 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, |
498 credential_info()->type); | 491 credential_info()->type); |
499 } | 492 } |
500 | 493 |
501 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) { | 494 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) { |
502 ScopedVector<autofill::PasswordForm> local_credentials; | 495 ScopedVector<autofill::PasswordForm> local_credentials; |
503 ScopedVector<autofill::PasswordForm> federated_credentials; | 496 ScopedVector<autofill::PasswordForm> federated_credentials; |
504 federated_credentials.push_back( | 497 federated_credentials.push_back( |
505 new autofill::PasswordForm(test_local_form())); | 498 new autofill::PasswordForm(test_local_form())); |
506 GURL origin("http://example.com"); | 499 GURL origin("http://example.com"); |
507 EXPECT_TRUE(controller()->OnChooseCredentials( | 500 EXPECT_TRUE(controller()->OnChooseCredentials( |
508 local_credentials.Pass(), federated_credentials.Pass(), origin, | 501 local_credentials.Pass(), federated_credentials.Pass(), origin, |
509 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, | 502 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, |
510 base::Unretained(this)))); | 503 base::Unretained(this)))); |
511 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, | 504 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, |
512 controller()->state()); | 505 controller()->GetState()); |
513 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | |
514 EXPECT_EQ(0u, controller()->GetCurrentForms().size()); | 506 EXPECT_EQ(0u, controller()->GetCurrentForms().size()); |
515 EXPECT_EQ(origin, controller()->origin()); | 507 EXPECT_EQ(origin, controller()->GetOrigin()); |
516 | 508 |
517 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); | 509 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE); |
518 | 510 |
519 controller()->ManagePasswordsUIController::ChooseCredential( | 511 controller()->ManagePasswordsUIController::ChooseCredential( |
520 test_local_form(), | 512 test_local_form(), |
521 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); | 513 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); |
522 controller()->OnBubbleHidden(); | 514 controller()->OnBubbleHidden(); |
523 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 515 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
524 ASSERT_TRUE(credential_info()); | 516 ASSERT_TRUE(credential_info()); |
525 EXPECT_EQ(test_local_form().username_value, credential_info()->id); | 517 EXPECT_EQ(test_local_form().username_value, credential_info()->id); |
526 EXPECT_TRUE(credential_info()->password.empty()); | 518 EXPECT_TRUE(credential_info()->password.empty()); |
527 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, | 519 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED, |
528 credential_info()->type); | 520 credential_info()->type); |
529 } | 521 } |
530 | 522 |
531 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { | 523 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) { |
532 ScopedVector<autofill::PasswordForm> local_credentials; | 524 ScopedVector<autofill::PasswordForm> local_credentials; |
533 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 525 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
534 ScopedVector<autofill::PasswordForm> federated_credentials; | 526 ScopedVector<autofill::PasswordForm> federated_credentials; |
535 GURL origin("http://example.com"); | 527 GURL origin("http://example.com"); |
536 EXPECT_TRUE(controller()->OnChooseCredentials( | 528 EXPECT_TRUE(controller()->OnChooseCredentials( |
537 local_credentials.Pass(), federated_credentials.Pass(), origin, | 529 local_credentials.Pass(), federated_credentials.Pass(), origin, |
538 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, | 530 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, |
539 base::Unretained(this)))); | 531 base::Unretained(this)))); |
540 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, | 532 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, |
541 controller()->state()); | 533 controller()->GetState()); |
542 EXPECT_EQ(origin, controller()->origin()); | 534 EXPECT_EQ(origin, controller()->GetOrigin()); |
543 controller()->ManagePasswordsUIController::ChooseCredential( | 535 controller()->ManagePasswordsUIController::ChooseCredential( |
544 test_local_form(), | 536 test_local_form(), |
545 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY); | 537 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY); |
546 controller()->OnBubbleHidden(); | 538 controller()->OnBubbleHidden(); |
547 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 539 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
548 ASSERT_TRUE(credential_info()); | 540 ASSERT_TRUE(credential_info()); |
549 EXPECT_TRUE(credential_info()->federation.is_empty()); | 541 EXPECT_TRUE(credential_info()->federation.is_empty()); |
550 EXPECT_TRUE(credential_info()->password.empty()); | 542 EXPECT_TRUE(credential_info()->password.empty()); |
551 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, | 543 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, |
552 credential_info()->type); | 544 credential_info()->type); |
553 } | 545 } |
554 | 546 |
555 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) { | 547 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) { |
556 ScopedVector<autofill::PasswordForm> local_credentials; | 548 ScopedVector<autofill::PasswordForm> local_credentials; |
557 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 549 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
558 controller()->OnAutoSignin(local_credentials.Pass()); | 550 controller()->OnAutoSignin(local_credentials.Pass()); |
559 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->state()); | 551 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); |
560 EXPECT_EQ(test_local_form().origin, controller()->origin()); | 552 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); |
561 ASSERT_FALSE(controller()->GetCurrentForms().empty()); | 553 ASSERT_FALSE(controller()->GetCurrentForms().empty()); |
562 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]); | 554 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]); |
563 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE); | 555 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE); |
564 controller()->OnBubbleHidden(); | 556 controller()->OnBubbleHidden(); |
565 ExpectIconAndControllerStateIs(password_manager::ui::MANAGE_STATE); | 557 ExpectIconAndControllerStateIs(password_manager::ui::MANAGE_STATE); |
566 } | 558 } |
567 | 559 |
568 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { | 560 TEST_F(ManagePasswordsUIControllerTest, AutofillDuringAutoSignin) { |
569 ScopedVector<autofill::PasswordForm> local_credentials; | 561 ScopedVector<autofill::PasswordForm> local_credentials; |
570 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); | 562 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); |
(...skipping 11 matching lines...) Expand all Loading... |
582 | 574 |
583 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { | 575 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { |
584 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 576 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
585 autofill::PasswordFormMap map; | 577 autofill::PasswordFormMap map; |
586 scoped_ptr<autofill::PasswordForm> psl_matched_test_form( | 578 scoped_ptr<autofill::PasswordForm> psl_matched_test_form( |
587 new autofill::PasswordForm(test_local_form())); | 579 new autofill::PasswordForm(test_local_form())); |
588 psl_matched_test_form->is_public_suffix_match = true; | 580 psl_matched_test_form->is_public_suffix_match = true; |
589 map.insert(kTestUsername, psl_matched_test_form.Pass()); | 581 map.insert(kTestUsername, psl_matched_test_form.Pass()); |
590 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); | 582 controller()->OnPasswordAutofilled(map, map.begin()->second->origin); |
591 | 583 |
592 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); | 584 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
593 } | 585 } |
594 | 586 |
595 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { | 587 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { |
596 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 588 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
597 CreateFormManager()); | 589 CreateFormManager()); |
598 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); | 590 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); |
599 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, | 591 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, |
600 controller()->state()); | 592 controller()->GetState()); |
601 | 593 |
602 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 594 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
603 } | 595 } |
604 | 596 |
605 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { | 597 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { |
606 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 598 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
607 CreateFormManager()); | 599 CreateFormManager()); |
608 test_form_manager->ProvisionallySave( | 600 test_form_manager->ProvisionallySave( |
609 test_local_form(), | 601 test_local_form(), |
610 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 602 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
611 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); | 603 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); |
612 | 604 |
613 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 605 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
614 controller()->UpdatePassword(autofill::PasswordForm()); | 606 controller()->UpdatePassword(autofill::PasswordForm()); |
615 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 607 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
616 } | 608 } |
617 | 609 |
618 TEST_F(ManagePasswordsUIControllerTest, NavigationWhenUpdateBubbleActive) { | 610 TEST_F(ManagePasswordsUIControllerTest, NavigationWhenUpdateBubbleActive) { |
619 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 611 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
620 CreateFormManager()); | 612 CreateFormManager()); |
621 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); | 613 controller()->OnUpdatePasswordSubmitted(test_form_manager.Pass()); |
622 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, | 614 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, |
623 controller()->state()); | 615 controller()->GetState()); |
624 // Fake-navigate after 5 seconds. We expect the bubble's state to be reset | 616 // Fake-navigate after 5 seconds. We expect the bubble's state to be reset |
625 // if a navigation occurs after this limit. | 617 // if a navigation occurs after this limit. |
626 controller()->SetElapsed( | 618 controller()->SetElapsed( |
627 base::TimeDelta::FromMilliseconds(kSlowNavigationDelayInMS)); | 619 base::TimeDelta::FromMilliseconds(kSlowNavigationDelayInMS)); |
628 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), | 620 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), |
629 content::FrameNavigateParams()); | 621 content::FrameNavigateParams()); |
630 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); | 622 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
631 // The following line shouldn't crash browser. | 623 // The following line shouldn't crash browser. |
632 controller()->OnNoInteractionOnUpdate(); | 624 controller()->OnNoInteractionOnUpdate(); |
633 } | 625 } |
OLD | NEW |