| 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.h" | 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble.h" |
| 10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" | 10 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); | 148 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); |
| 149 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 149 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| 150 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); | 150 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); |
| 151 | 151 |
| 152 ManagePasswordsIconMock mock; | 152 ManagePasswordsIconMock mock; |
| 153 controller()->UpdateIconAndBubbleState(&mock); | 153 controller()->UpdateIconAndBubbleState(&mock); |
| 154 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, mock.state()); | 154 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, mock.state()); |
| 155 } | 155 } |
| 156 | 156 |
| 157 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { | 157 TEST_F(ManagePasswordsUIControllerTest, PasswordAutofilled) { |
| 158 base::string16 kTestUsername = test_local_form().username_value; | 158 scoped_ptr<autofill::PasswordForm> test_form( |
| 159 new autofill::PasswordForm(test_local_form())); |
| 160 autofill::PasswordForm* test_form_ptr = test_form.get(); |
| 161 base::string16 kTestUsername = test_form->username_value; |
| 159 autofill::PasswordFormMap map; | 162 autofill::PasswordFormMap map; |
| 160 map[kTestUsername] = &test_local_form(); | 163 map.insert(kTestUsername, test_form.Pass()); |
| 161 controller()->OnPasswordAutofilled(map); | 164 controller()->OnPasswordAutofilled(map); |
| 162 | 165 |
| 163 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 166 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); |
| 164 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 167 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| 165 EXPECT_EQ(test_local_form().origin, controller()->origin()); | 168 EXPECT_EQ(test_form_ptr->origin, controller()->origin()); |
| 166 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); | 169 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); |
| 167 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); | 170 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); |
| 168 | 171 |
| 169 // Controller should store a separate copy of the form as it doesn't own it. | 172 // Controller should store a separate copy of the form as it doesn't own it. |
| 170 EXPECT_NE(&test_local_form(), controller()->GetCurrentForms()[0]); | 173 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); |
| 171 | 174 |
| 172 ManagePasswordsIconMock mock; | 175 ManagePasswordsIconMock mock; |
| 173 controller()->UpdateIconAndBubbleState(&mock); | 176 controller()->UpdateIconAndBubbleState(&mock); |
| 174 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); | 177 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); |
| 175 } | 178 } |
| 176 | 179 |
| 177 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { | 180 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { |
| 178 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( | 181 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( |
| 179 CreateFormManager()); | 182 CreateFormManager()); |
| 180 controller()->OnPasswordSubmitted(test_form_manager.Pass()); | 183 controller()->OnPasswordSubmitted(test_form_manager.Pass()); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 // it's being masked by the stub implementation of | 284 // it's being masked by the stub implementation of |
| 282 // ManagePasswordsUIControllerMock::PendingCredentials. | 285 // ManagePasswordsUIControllerMock::PendingCredentials. |
| 283 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); | 286 EXPECT_EQ(GURL::EmptyGURL(), controller()->origin()); |
| 284 | 287 |
| 285 ManagePasswordsIconMock mock; | 288 ManagePasswordsIconMock mock; |
| 286 controller()->UpdateIconAndBubbleState(&mock); | 289 controller()->UpdateIconAndBubbleState(&mock); |
| 287 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, mock.state()); | 290 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, mock.state()); |
| 288 } | 291 } |
| 289 | 292 |
| 290 TEST_F(ManagePasswordsUIControllerTest, BlacklistBlockedAutofill) { | 293 TEST_F(ManagePasswordsUIControllerTest, BlacklistBlockedAutofill) { |
| 291 test_local_form().blacklisted_by_user = true; | 294 scoped_ptr<autofill::PasswordForm> test_form( |
| 292 base::string16 kTestUsername = test_local_form().username_value; | 295 new autofill::PasswordForm(test_local_form())); |
| 296 autofill::PasswordForm* test_form_ptr = test_form.get(); |
| 297 test_form->blacklisted_by_user = true; |
| 298 base::string16 kTestUsername = test_form->username_value; |
| 293 autofill::PasswordFormMap map; | 299 autofill::PasswordFormMap map; |
| 294 map[kTestUsername] = &test_local_form(); | 300 map.insert(kTestUsername, test_form.Pass()); |
| 295 controller()->OnBlacklistBlockedAutofill(map); | 301 controller()->OnBlacklistBlockedAutofill(map); |
| 296 | 302 |
| 297 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state()); | 303 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state()); |
| 298 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 304 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| 299 EXPECT_EQ(test_local_form().origin, controller()->origin()); | 305 EXPECT_EQ(test_form_ptr->origin, controller()->origin()); |
| 300 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); | 306 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); |
| 301 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); | 307 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); |
| 302 | 308 |
| 303 // Controller should store a separate copy of the form as it doesn't own it. | 309 // Controller should store a separate copy of the form as it doesn't own it. |
| 304 EXPECT_NE(&test_local_form(), controller()->GetCurrentForms()[0]); | 310 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0]); |
| 305 | 311 |
| 306 ManagePasswordsIconMock mock; | 312 ManagePasswordsIconMock mock; |
| 307 controller()->UpdateIconAndBubbleState(&mock); | 313 controller()->UpdateIconAndBubbleState(&mock); |
| 308 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state()); | 314 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, mock.state()); |
| 309 } | 315 } |
| 310 | 316 |
| 311 TEST_F(ManagePasswordsUIControllerTest, ClickedUnblacklist) { | 317 TEST_F(ManagePasswordsUIControllerTest, ClickedUnblacklist) { |
| 312 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 318 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
| 313 autofill::PasswordFormMap map; | 319 autofill::PasswordFormMap map; |
| 314 map[kTestUsername] = &test_local_form(); | 320 scoped_ptr<autofill::PasswordForm> test_form( |
| 315 test_local_form().blacklisted_by_user = true; | 321 new autofill::PasswordForm(test_local_form())); |
| 322 autofill::PasswordForm& test_form_ref = *test_form; |
| 323 map.insert(kTestUsername, test_form.Pass()); |
| 324 test_form_ref.blacklisted_by_user = true; |
| 316 controller()->OnBlacklistBlockedAutofill(map); | 325 controller()->OnBlacklistBlockedAutofill(map); |
| 317 controller()->UnblacklistSite(); | 326 controller()->UnblacklistSite(); |
| 318 | 327 |
| 319 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 328 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); |
| 320 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 329 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| 321 EXPECT_EQ(test_local_form().origin, controller()->origin()); | 330 EXPECT_EQ(test_local_form().origin, controller()->origin()); |
| 322 | 331 |
| 323 ManagePasswordsIconMock mock; | 332 ManagePasswordsIconMock mock; |
| 324 controller()->UpdateIconAndBubbleState(&mock); | 333 controller()->UpdateIconAndBubbleState(&mock); |
| 325 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); | 334 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); |
| 326 } | 335 } |
| 327 | 336 |
| 328 TEST_F(ManagePasswordsUIControllerTest, UnblacklistedElsewhere) { | 337 TEST_F(ManagePasswordsUIControllerTest, UnblacklistedElsewhere) { |
| 329 test_local_form().blacklisted_by_user = true; | 338 test_local_form().blacklisted_by_user = true; |
| 330 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 339 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
| 331 autofill::PasswordFormMap map; | 340 autofill::PasswordFormMap map; |
| 332 map[kTestUsername] = &test_local_form(); | 341 map.insert(kTestUsername, |
| 342 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
| 333 controller()->OnBlacklistBlockedAutofill(map); | 343 controller()->OnBlacklistBlockedAutofill(map); |
| 334 | 344 |
| 335 password_manager::PasswordStoreChange change( | 345 password_manager::PasswordStoreChange change( |
| 336 password_manager::PasswordStoreChange::REMOVE, test_local_form()); | 346 password_manager::PasswordStoreChange::REMOVE, test_local_form()); |
| 337 password_manager::PasswordStoreChangeList list(1, change); | 347 password_manager::PasswordStoreChangeList list(1, change); |
| 338 controller()->OnLoginsChanged(list); | 348 controller()->OnLoginsChanged(list); |
| 339 | 349 |
| 340 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 350 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); |
| 341 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 351 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| 342 EXPECT_EQ(test_local_form().origin, controller()->origin()); | 352 EXPECT_EQ(test_local_form().origin, controller()->origin()); |
| 343 | 353 |
| 344 ManagePasswordsIconMock mock; | 354 ManagePasswordsIconMock mock; |
| 345 controller()->UpdateIconAndBubbleState(&mock); | 355 controller()->UpdateIconAndBubbleState(&mock); |
| 346 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); | 356 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); |
| 347 } | 357 } |
| 348 | 358 |
| 349 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { | 359 TEST_F(ManagePasswordsUIControllerTest, BlacklistedElsewhere) { |
| 350 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 360 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
| 351 autofill::PasswordFormMap map; | 361 autofill::PasswordFormMap map; |
| 352 map[kTestUsername] = &test_local_form(); | 362 map.insert(kTestUsername, |
| 363 make_scoped_ptr(new autofill::PasswordForm(test_local_form()))); |
| 353 controller()->OnPasswordAutofilled(map); | 364 controller()->OnPasswordAutofilled(map); |
| 354 | 365 |
| 355 test_local_form().blacklisted_by_user = true; | 366 test_local_form().blacklisted_by_user = true; |
| 356 password_manager::PasswordStoreChange change( | 367 password_manager::PasswordStoreChange change( |
| 357 password_manager::PasswordStoreChange::ADD, test_local_form()); | 368 password_manager::PasswordStoreChange::ADD, test_local_form()); |
| 358 password_manager::PasswordStoreChangeList list(1, change); | 369 password_manager::PasswordStoreChangeList list(1, change); |
| 359 controller()->OnLoginsChanged(list); | 370 controller()->OnLoginsChanged(list); |
| 360 | 371 |
| 361 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state()); | 372 EXPECT_EQ(password_manager::ui::BLACKLIST_STATE, controller()->state()); |
| 362 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); | 373 EXPECT_FALSE(controller()->PasswordPendingUserDecision()); |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 | 547 |
| 537 controller()->ManageAccounts(); | 548 controller()->ManageAccounts(); |
| 538 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); | 549 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->state()); |
| 539 controller()->UpdateIconAndBubbleState(&mock); | 550 controller()->UpdateIconAndBubbleState(&mock); |
| 540 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); | 551 EXPECT_EQ(password_manager::ui::MANAGE_STATE, mock.state()); |
| 541 } | 552 } |
| 542 | 553 |
| 543 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { | 554 TEST_F(ManagePasswordsUIControllerTest, InactiveOnPSLMatched) { |
| 544 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); | 555 base::string16 kTestUsername = base::ASCIIToUTF16("test_username"); |
| 545 autofill::PasswordFormMap map; | 556 autofill::PasswordFormMap map; |
| 546 autofill::PasswordForm psl_matched_test_form = test_local_form(); | 557 scoped_ptr<autofill::PasswordForm> psl_matched_test_form( |
| 547 psl_matched_test_form.original_signon_realm = "http://pslmatched.example.com"; | 558 new autofill::PasswordForm(test_local_form())); |
| 548 map[kTestUsername] = &psl_matched_test_form; | 559 psl_matched_test_form->original_signon_realm = |
| 560 "http://pslmatched.example.com"; |
| 561 map.insert(kTestUsername, psl_matched_test_form.Pass()); |
| 549 controller()->OnPasswordAutofilled(map); | 562 controller()->OnPasswordAutofilled(map); |
| 550 | 563 |
| 551 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); | 564 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->state()); |
| 552 } | 565 } |
| OLD | NEW |