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 <map> | 5 #include <map> |
6 #include <memory> | 6 #include <memory> |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 DialogPromptMock& dialog_prompt() { return dialog_prompt_; } | 173 DialogPromptMock& dialog_prompt() { return dialog_prompt_; } |
174 | 174 |
175 TestManagePasswordsUIController* controller() { | 175 TestManagePasswordsUIController* controller() { |
176 return static_cast<TestManagePasswordsUIController*>( | 176 return static_cast<TestManagePasswordsUIController*>( |
177 ManagePasswordsUIController::FromWebContents(web_contents())); | 177 ManagePasswordsUIController::FromWebContents(web_contents())); |
178 } | 178 } |
179 | 179 |
180 void ExpectIconStateIs(password_manager::ui::State state); | 180 void ExpectIconStateIs(password_manager::ui::State state); |
181 void ExpectIconAndControllerStateIs(password_manager::ui::State state); | 181 void ExpectIconAndControllerStateIs(password_manager::ui::State state); |
182 | 182 |
183 std::unique_ptr<password_manager::PasswordFormManager> | 183 scoped_refptr<password_manager::PasswordFormManager> |
184 CreateFormManagerWithBestMatches( | 184 CreateFormManagerWithBestMatches( |
185 const autofill::PasswordForm& observed_form, | 185 const autofill::PasswordForm& observed_form, |
186 const std::vector<const autofill::PasswordForm*>& best_matches); | 186 const std::vector<const autofill::PasswordForm*>& best_matches); |
187 | 187 |
188 std::unique_ptr<password_manager::PasswordFormManager> CreateFormManager(); | 188 scoped_refptr<password_manager::PasswordFormManager> CreateFormManager(); |
189 | 189 |
190 // Tests that the state is not changed when the password is autofilled. | 190 // Tests that the state is not changed when the password is autofilled. |
191 void TestNotChangingStateOnAutofill( | 191 void TestNotChangingStateOnAutofill( |
192 password_manager::ui::State state); | 192 password_manager::ui::State state); |
193 | 193 |
194 MOCK_METHOD1(CredentialCallback, void(const autofill::PasswordForm*)); | 194 MOCK_METHOD1(CredentialCallback, void(const autofill::PasswordForm*)); |
195 | 195 |
196 private: | 196 private: |
197 password_manager::StubPasswordManagerClient client_; | 197 password_manager::StubPasswordManagerClient client_; |
198 password_manager::StubPasswordManagerDriver driver_; | 198 password_manager::StubPasswordManagerDriver driver_; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 controller()->UpdateIconAndBubbleState(&view); | 234 controller()->UpdateIconAndBubbleState(&view); |
235 EXPECT_EQ(state, view.state()); | 235 EXPECT_EQ(state, view.state()); |
236 } | 236 } |
237 | 237 |
238 void ManagePasswordsUIControllerTest::ExpectIconAndControllerStateIs( | 238 void ManagePasswordsUIControllerTest::ExpectIconAndControllerStateIs( |
239 password_manager::ui::State state) { | 239 password_manager::ui::State state) { |
240 ExpectIconStateIs(state); | 240 ExpectIconStateIs(state); |
241 EXPECT_EQ(state, controller()->GetState()); | 241 EXPECT_EQ(state, controller()->GetState()); |
242 } | 242 } |
243 | 243 |
244 std::unique_ptr<password_manager::PasswordFormManager> | 244 scoped_refptr<password_manager::PasswordFormManager> |
245 ManagePasswordsUIControllerTest::CreateFormManagerWithBestMatches( | 245 ManagePasswordsUIControllerTest::CreateFormManagerWithBestMatches( |
246 const autofill::PasswordForm& observed_form, | 246 const autofill::PasswordForm& observed_form, |
247 const std::vector<const autofill::PasswordForm*>& best_matches) { | 247 const std::vector<const autofill::PasswordForm*>& best_matches) { |
248 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 248 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
249 new password_manager::PasswordFormManager( | 249 new password_manager::PasswordFormManager( |
250 &password_manager_, &client_, driver_.AsWeakPtr(), observed_form, | 250 &password_manager_, &client_, driver_.AsWeakPtr(), observed_form, |
251 base::WrapUnique(new password_manager::StubFormSaver), &fetcher_)); | 251 base::WrapUnique(new password_manager::StubFormSaver), &fetcher_)); |
252 fetcher_.SetNonFederated(best_matches, 0u); | 252 fetcher_.SetNonFederated(best_matches, 0u); |
253 return test_form_manager; | 253 return test_form_manager; |
254 } | 254 } |
255 | 255 |
256 std::unique_ptr<password_manager::PasswordFormManager> | 256 scoped_refptr<password_manager::PasswordFormManager> |
257 ManagePasswordsUIControllerTest::CreateFormManager() { | 257 ManagePasswordsUIControllerTest::CreateFormManager() { |
258 return CreateFormManagerWithBestMatches(test_local_form(), | 258 return CreateFormManagerWithBestMatches(test_local_form(), |
259 {&test_local_form()}); | 259 {&test_local_form()}); |
260 } | 260 } |
261 | 261 |
262 void ManagePasswordsUIControllerTest::TestNotChangingStateOnAutofill( | 262 void ManagePasswordsUIControllerTest::TestNotChangingStateOnAutofill( |
263 password_manager::ui::State state) { | 263 password_manager::ui::State state) { |
264 DCHECK(state == password_manager::ui::PENDING_PASSWORD_STATE || | 264 DCHECK(state == password_manager::ui::PENDING_PASSWORD_STATE || |
265 state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE || | 265 state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE || |
266 state == password_manager::ui::CONFIRMATION_STATE); | 266 state == password_manager::ui::CONFIRMATION_STATE); |
267 | 267 |
268 // Set the bubble state to |state|. | 268 // Set the bubble state to |state|. |
269 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 269 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
270 CreateFormManager()); | 270 CreateFormManager()); |
271 test_form_manager->ProvisionallySave( | 271 test_form_manager->ProvisionallySave( |
272 test_local_form(), | 272 test_local_form(), |
273 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 273 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
274 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 274 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
275 if (state == password_manager::ui::PENDING_PASSWORD_STATE) | 275 if (state == password_manager::ui::PENDING_PASSWORD_STATE) |
276 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 276 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
277 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) | 277 else if (state == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) |
278 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); | 278 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); |
279 else // password_manager::ui::CONFIRMATION_STATE | 279 else // password_manager::ui::CONFIRMATION_STATE |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); | 311 ASSERT_EQ(1u, controller()->GetCurrentForms().size()); |
312 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); | 312 EXPECT_EQ(kTestUsername, controller()->GetCurrentForms()[0]->username_value); |
313 | 313 |
314 // Controller should store a separate copy of the form as it doesn't own it. | 314 // Controller should store a separate copy of the form as it doesn't own it. |
315 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0].get()); | 315 EXPECT_NE(test_form_ptr, controller()->GetCurrentForms()[0].get()); |
316 | 316 |
317 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 317 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
318 } | 318 } |
319 | 319 |
320 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { | 320 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmitted) { |
321 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 321 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
322 CreateFormManager()); | 322 CreateFormManager()); |
323 test_form_manager->ProvisionallySave( | 323 test_form_manager->ProvisionallySave( |
324 test_local_form(), | 324 test_local_form(), |
325 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 325 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
326 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 326 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
327 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 327 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
328 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 328 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
329 controller()->GetState()); | 329 controller()->GetState()); |
330 EXPECT_TRUE(controller()->opened_bubble()); | 330 EXPECT_TRUE(controller()->opened_bubble()); |
331 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); | 331 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); |
332 | 332 |
333 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 333 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
334 } | 334 } |
335 | 335 |
336 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) { | 336 TEST_F(ManagePasswordsUIControllerTest, BlacklistedFormPasswordSubmitted) { |
337 autofill::PasswordForm blacklisted; | 337 autofill::PasswordForm blacklisted; |
338 blacklisted.origin = test_local_form().origin; | 338 blacklisted.origin = test_local_form().origin; |
339 blacklisted.signon_realm = blacklisted.origin.spec(); | 339 blacklisted.signon_realm = blacklisted.origin.spec(); |
340 blacklisted.blacklisted_by_user = true; | 340 blacklisted.blacklisted_by_user = true; |
341 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager = | 341 scoped_refptr<password_manager::PasswordFormManager> test_form_manager = |
342 CreateFormManagerWithBestMatches(test_local_form(), {&blacklisted}); | 342 CreateFormManagerWithBestMatches(test_local_form(), {&blacklisted}); |
343 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 343 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
344 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 344 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
345 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 345 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
346 controller()->GetState()); | 346 controller()->GetState()); |
347 EXPECT_FALSE(controller()->opened_bubble()); | 347 EXPECT_FALSE(controller()->opened_bubble()); |
348 | 348 |
349 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 349 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
350 } | 350 } |
351 | 351 |
352 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) { | 352 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleSuppressed) { |
353 CreateSmartBubbleFieldTrial(); | 353 CreateSmartBubbleFieldTrial(); |
354 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 354 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
355 CreateFormManager()); | 355 CreateFormManager()); |
356 std::vector<password_manager::InteractionsStats> stats(1); | 356 std::vector<password_manager::InteractionsStats> stats(1); |
357 stats[0].origin_domain = test_local_form().origin.GetOrigin(); | 357 stats[0].origin_domain = test_local_form().origin.GetOrigin(); |
358 stats[0].username_value = test_local_form().username_value; | 358 stats[0].username_value = test_local_form().username_value; |
359 stats[0].dismissal_count = kGreatDissmisalCount; | 359 stats[0].dismissal_count = kGreatDissmisalCount; |
360 fetcher().set_stats(stats); | 360 fetcher().set_stats(stats); |
361 test_form_manager->ProvisionallySave( | 361 test_form_manager->ProvisionallySave( |
362 test_local_form(), | 362 test_local_form(), |
363 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 363 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
364 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 364 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
365 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 365 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
366 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 366 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
367 controller()->GetState()); | 367 controller()->GetState()); |
368 EXPECT_FALSE(controller()->opened_bubble()); | 368 EXPECT_FALSE(controller()->opened_bubble()); |
369 ASSERT_TRUE(controller()->GetCurrentInteractionStats()); | 369 ASSERT_TRUE(controller()->GetCurrentInteractionStats()); |
370 EXPECT_EQ(stats[0], *controller()->GetCurrentInteractionStats()); | 370 EXPECT_EQ(stats[0], *controller()->GetCurrentInteractionStats()); |
371 | 371 |
372 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 372 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
373 variations::testing::ClearAllVariationParams(); | 373 variations::testing::ClearAllVariationParams(); |
374 } | 374 } |
375 | 375 |
376 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) { | 376 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedBubbleNotSuppressed) { |
377 CreateSmartBubbleFieldTrial(); | 377 CreateSmartBubbleFieldTrial(); |
378 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 378 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
379 CreateFormManager()); | 379 CreateFormManager()); |
380 std::vector<password_manager::InteractionsStats> stats(1); | 380 std::vector<password_manager::InteractionsStats> stats(1); |
381 stats[0].origin_domain = test_local_form().origin.GetOrigin(); | 381 stats[0].origin_domain = test_local_form().origin.GetOrigin(); |
382 stats[0].username_value = base::ASCIIToUTF16("not my username"); | 382 stats[0].username_value = base::ASCIIToUTF16("not my username"); |
383 stats[0].dismissal_count = kGreatDissmisalCount; | 383 stats[0].dismissal_count = kGreatDissmisalCount; |
384 fetcher().set_stats(stats); | 384 fetcher().set_stats(stats); |
385 test_form_manager->ProvisionallySave( | 385 test_form_manager->ProvisionallySave( |
386 test_local_form(), | 386 test_local_form(), |
387 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 387 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
388 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 388 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
389 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 389 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
390 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 390 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
391 controller()->GetState()); | 391 controller()->GetState()); |
392 EXPECT_TRUE(controller()->opened_bubble()); | 392 EXPECT_TRUE(controller()->opened_bubble()); |
393 EXPECT_FALSE(controller()->GetCurrentInteractionStats()); | 393 EXPECT_FALSE(controller()->GetCurrentInteractionStats()); |
394 | 394 |
395 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 395 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
396 variations::testing::ClearAllVariationParams(); | 396 variations::testing::ClearAllVariationParams(); |
397 } | 397 } |
398 | 398 |
399 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) { | 399 TEST_F(ManagePasswordsUIControllerTest, PasswordSaved) { |
400 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 400 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
401 CreateFormManager()); | 401 CreateFormManager()); |
402 test_form_manager->ProvisionallySave( | 402 test_form_manager->ProvisionallySave( |
403 test_local_form(), | 403 test_local_form(), |
404 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 404 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
405 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 405 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
406 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 406 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
407 | 407 |
408 controller()->SavePassword(); | 408 controller()->SavePassword(); |
409 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 409 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
410 } | 410 } |
411 | 411 |
412 TEST_F(ManagePasswordsUIControllerTest, PasswordBlacklisted) { | 412 TEST_F(ManagePasswordsUIControllerTest, PasswordBlacklisted) { |
413 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 413 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
414 CreateFormManager()); | 414 CreateFormManager()); |
415 test_form_manager->ProvisionallySave( | 415 test_form_manager->ProvisionallySave( |
416 test_local_form(), | 416 test_local_form(), |
417 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 417 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
418 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 418 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
419 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 419 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
420 | 420 |
421 controller()->NeverSavePassword(); | 421 controller()->NeverSavePassword(); |
422 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 422 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
423 } | 423 } |
424 | 424 |
425 TEST_F(ManagePasswordsUIControllerTest, NormalNavigations) { | 425 TEST_F(ManagePasswordsUIControllerTest, NormalNavigations) { |
426 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 426 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
427 CreateFormManager()); | 427 CreateFormManager()); |
428 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 428 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
429 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 429 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
430 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 430 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
431 | 431 |
432 // Fake-navigate. We expect the bubble's state to persist so a user reasonably | 432 // Fake-navigate. We expect the bubble's state to persist so a user reasonably |
433 // has been able to interact with the bubble. This happens on | 433 // has been able to interact with the bubble. This happens on |
434 // `accounts.google.com`, for instance. | 434 // `accounts.google.com`, for instance. |
435 std::unique_ptr<content::NavigationHandle> navigation_handle = | 435 std::unique_ptr<content::NavigationHandle> navigation_handle = |
436 content::NavigationHandle::CreateNavigationHandleForTesting( | 436 content::NavigationHandle::CreateNavigationHandleForTesting( |
437 GURL(), main_rfh(), true); | 437 GURL(), main_rfh(), true); |
438 navigation_handle.reset(); // Calls DidFinishNavigation. | 438 navigation_handle.reset(); // Calls DidFinishNavigation. |
439 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, | 439 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_STATE, |
440 controller()->GetState()); | 440 controller()->GetState()); |
441 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); | 441 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_STATE); |
442 } | 442 } |
443 | 443 |
444 TEST_F(ManagePasswordsUIControllerTest, NormalNavigationsClosedBubble) { | 444 TEST_F(ManagePasswordsUIControllerTest, NormalNavigationsClosedBubble) { |
445 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 445 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
446 CreateFormManager()); | 446 CreateFormManager()); |
447 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 447 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
448 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 448 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
449 controller()->SavePassword(); | 449 controller()->SavePassword(); |
450 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 450 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
451 controller()->OnBubbleHidden(); | 451 controller()->OnBubbleHidden(); |
452 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 452 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
453 | 453 |
454 // Fake-navigate. There is no bubble, reset the state. | 454 // Fake-navigate. There is no bubble, reset the state. |
455 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 455 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
456 std::unique_ptr<content::NavigationHandle> navigation_handle = | 456 std::unique_ptr<content::NavigationHandle> navigation_handle = |
457 content::NavigationHandle::CreateNavigationHandleForTesting( | 457 content::NavigationHandle::CreateNavigationHandleForTesting( |
458 GURL(), main_rfh(), true); | 458 GURL(), main_rfh(), true); |
459 navigation_handle.reset(); // Calls DidFinishNavigation. | 459 navigation_handle.reset(); // Calls DidFinishNavigation. |
460 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); | 460 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
461 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 461 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
462 } | 462 } |
463 | 463 |
464 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { | 464 TEST_F(ManagePasswordsUIControllerTest, PasswordSubmittedToNonWebbyURL) { |
465 // Navigate to a non-webby URL, then see what happens! | 465 // Navigate to a non-webby URL, then see what happens! |
466 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 466 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
467 content::WebContentsTester::For(web_contents()) | 467 content::WebContentsTester::For(web_contents()) |
468 ->NavigateAndCommit(GURL("chrome://sign-in")); | 468 ->NavigateAndCommit(GURL("chrome://sign-in")); |
469 | 469 |
470 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 470 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
471 CreateFormManager()); | 471 CreateFormManager()); |
472 test_form_manager->ProvisionallySave( | 472 test_form_manager->ProvisionallySave( |
473 test_local_form(), | 473 test_local_form(), |
474 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 474 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
475 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 475 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
476 controller()->OnPasswordSubmitted(std::move(test_form_manager)); | 476 controller()->OnPasswordSubmitted(std::move(test_form_manager)); |
477 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); | 477 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
478 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); | 478 EXPECT_EQ(GURL::EmptyGURL(), controller()->GetOrigin()); |
479 | 479 |
480 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); | 480 ExpectIconStateIs(password_manager::ui::INACTIVE_STATE); |
(...skipping 12 matching lines...) Expand all Loading... |
493 password_manager::PasswordStoreChangeList list(1, change); | 493 password_manager::PasswordStoreChangeList list(1, change); |
494 controller()->OnLoginsChanged(list); | 494 controller()->OnLoginsChanged(list); |
495 | 495 |
496 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); | 496 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); |
497 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); | 497 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); |
498 | 498 |
499 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 499 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
500 } | 500 } |
501 | 501 |
502 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) { | 502 TEST_F(ManagePasswordsUIControllerTest, AutomaticPasswordSave) { |
503 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 503 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
504 CreateFormManager()); | 504 CreateFormManager()); |
505 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 505 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
506 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); | 506 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); |
507 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState()); | 507 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState()); |
508 | 508 |
509 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 509 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
510 controller()->OnBubbleHidden(); | 510 controller()->OnBubbleHidden(); |
511 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); | 511 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); |
512 } | 512 } |
513 | 513 |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
737 autofill::PasswordForm psl_matched_test_form(test_local_form()); | 737 autofill::PasswordForm psl_matched_test_form(test_local_form()); |
738 psl_matched_test_form.is_public_suffix_match = true; | 738 psl_matched_test_form.is_public_suffix_match = true; |
739 map.insert(std::make_pair(kTestUsername, &psl_matched_test_form)); | 739 map.insert(std::make_pair(kTestUsername, &psl_matched_test_form)); |
740 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 740 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
741 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); | 741 controller()->OnPasswordAutofilled(map, map.begin()->second->origin, nullptr); |
742 | 742 |
743 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); | 743 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); |
744 } | 744 } |
745 | 745 |
746 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { | 746 TEST_F(ManagePasswordsUIControllerTest, UpdatePasswordSubmitted) { |
747 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 747 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
748 CreateFormManager()); | 748 CreateFormManager()); |
749 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 749 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
750 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); | 750 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); |
751 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, | 751 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, |
752 controller()->GetState()); | 752 controller()->GetState()); |
753 | 753 |
754 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 754 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
755 } | 755 } |
756 | 756 |
757 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { | 757 TEST_F(ManagePasswordsUIControllerTest, PasswordUpdated) { |
758 std::unique_ptr<password_manager::PasswordFormManager> test_form_manager( | 758 scoped_refptr<password_manager::PasswordFormManager> test_form_manager( |
759 CreateFormManager()); | 759 CreateFormManager()); |
760 test_form_manager->ProvisionallySave( | 760 test_form_manager->ProvisionallySave( |
761 test_local_form(), | 761 test_local_form(), |
762 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 762 password_manager::PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
763 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 763 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
764 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); | 764 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); |
765 | 765 |
766 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 766 ExpectIconStateIs(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
767 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 767 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
768 controller()->UpdatePassword(autofill::PasswordForm()); | 768 controller()->UpdatePassword(autofill::PasswordForm()); |
(...skipping 28 matching lines...) Expand all Loading... |
797 // Open the bubble again. | 797 // Open the bubble again. |
798 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); | 798 local_credentials.emplace_back(new autofill::PasswordForm(test_local_form())); |
799 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); | 799 EXPECT_CALL(*controller(), OnUpdateBubbleAndIconVisibility()); |
800 controller()->OnAutoSignin(std::move(local_credentials), | 800 controller()->OnAutoSignin(std::move(local_credentials), |
801 test_local_form().origin); | 801 test_local_form().origin); |
802 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); | 802 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); |
803 // Check the delegate is destroyed. Thus, the first bubble has no way to mess | 803 // Check the delegate is destroyed. Thus, the first bubble has no way to mess |
804 // up with the controller's state. | 804 // up with the controller's state. |
805 EXPECT_FALSE(proxy_delegate); | 805 EXPECT_FALSE(proxy_delegate); |
806 } | 806 } |
OLD | NEW |