| 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 "components/password_manager/content/browser/credential_manager_dispatc
her.h" | 5 #include "components/password_manager/content/browser/credential_manager_dispatc
her.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/prefs/pref_registry_simple.h" | 9 #include "base/prefs/pref_registry_simple.h" |
| 10 #include "base/prefs/testing_pref_service.h" | 10 #include "base/prefs/testing_pref_service.h" |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 dispatcher()->OnRequestCredential(kRequestId, false, federations); | 326 dispatcher()->OnRequestCredential(kRequestId, false, federations); |
| 327 | 327 |
| 328 RunAllPendingTasks(); | 328 RunAllPendingTasks(); |
| 329 | 329 |
| 330 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 330 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 331 const IPC::Message* message = | 331 const IPC::Message* message = |
| 332 process()->sink().GetFirstMessageMatching(kMsgID); | 332 process()->sink().GetFirstMessageMatching(kMsgID); |
| 333 EXPECT_TRUE(message); | 333 EXPECT_TRUE(message); |
| 334 CredentialManagerMsg_SendCredential::Param param; | 334 CredentialManagerMsg_SendCredential::Param param; |
| 335 CredentialManagerMsg_SendCredential::Read(message, ¶m); | 335 CredentialManagerMsg_SendCredential::Read(message, ¶m); |
| 336 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(param).type); | 336 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, base::get<1>(param).type); |
| 337 process()->sink().ClearMessages(); | 337 process()->sink().ClearMessages(); |
| 338 } | 338 } |
| 339 | 339 |
| 340 TEST_F(CredentialManagerDispatcherTest, | 340 TEST_F(CredentialManagerDispatcherTest, |
| 341 CredentialManagerOnRequestCredentialWithCrossOriginPasswordStore) { | 341 CredentialManagerOnRequestCredentialWithCrossOriginPasswordStore) { |
| 342 store_->AddLogin(cross_origin_form_); | 342 store_->AddLogin(cross_origin_form_); |
| 343 | 343 |
| 344 std::vector<GURL> federations; | 344 std::vector<GURL> federations; |
| 345 EXPECT_CALL( | 345 EXPECT_CALL( |
| 346 *client_, | 346 *client_, |
| 347 PromptUserToSavePasswordPtr( | 347 PromptUserToSavePasswordPtr( |
| 348 _, password_manager::CredentialSourceType::CREDENTIAL_SOURCE_API)) | 348 _, password_manager::CredentialSourceType::CREDENTIAL_SOURCE_API)) |
| 349 .Times(testing::Exactly(0)); | 349 .Times(testing::Exactly(0)); |
| 350 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 350 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| 351 .Times(testing::Exactly(0)); | 351 .Times(testing::Exactly(0)); |
| 352 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); | 352 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); |
| 353 | 353 |
| 354 dispatcher()->OnRequestCredential(kRequestId, false, federations); | 354 dispatcher()->OnRequestCredential(kRequestId, false, federations); |
| 355 | 355 |
| 356 RunAllPendingTasks(); | 356 RunAllPendingTasks(); |
| 357 | 357 |
| 358 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 358 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 359 const IPC::Message* message = | 359 const IPC::Message* message = |
| 360 process()->sink().GetFirstMessageMatching(kMsgID); | 360 process()->sink().GetFirstMessageMatching(kMsgID); |
| 361 EXPECT_TRUE(message); | 361 EXPECT_TRUE(message); |
| 362 CredentialManagerMsg_SendCredential::Param param; | 362 CredentialManagerMsg_SendCredential::Param param; |
| 363 CredentialManagerMsg_SendCredential::Read(message, ¶m); | 363 CredentialManagerMsg_SendCredential::Read(message, ¶m); |
| 364 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(param).type); | 364 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, base::get<1>(param).type); |
| 365 process()->sink().ClearMessages(); | 365 process()->sink().ClearMessages(); |
| 366 } | 366 } |
| 367 | 367 |
| 368 TEST_F(CredentialManagerDispatcherTest, | 368 TEST_F(CredentialManagerDispatcherTest, |
| 369 CredentialManagerOnRequestCredentialWithFullPasswordStore) { | 369 CredentialManagerOnRequestCredentialWithFullPasswordStore) { |
| 370 client_->set_zero_click_enabled(false); | 370 client_->set_zero_click_enabled(false); |
| 371 store_->AddLogin(form_); | 371 store_->AddLogin(form_); |
| 372 | 372 |
| 373 std::vector<GURL> federations; | 373 std::vector<GURL> federations; |
| 374 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 374 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| (...skipping 21 matching lines...) Expand all Loading... |
| 396 dispatcher()->OnRequestCredential(kRequestId, true, federations); | 396 dispatcher()->OnRequestCredential(kRequestId, true, federations); |
| 397 | 397 |
| 398 RunAllPendingTasks(); | 398 RunAllPendingTasks(); |
| 399 | 399 |
| 400 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 400 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 401 const IPC::Message* message = | 401 const IPC::Message* message = |
| 402 process()->sink().GetFirstMessageMatching(kMsgID); | 402 process()->sink().GetFirstMessageMatching(kMsgID); |
| 403 EXPECT_TRUE(message); | 403 EXPECT_TRUE(message); |
| 404 CredentialManagerMsg_SendCredential::Param send_param; | 404 CredentialManagerMsg_SendCredential::Param send_param; |
| 405 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 405 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
| 406 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type); | 406 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, |
| 407 base::get<1>(send_param).type); |
| 407 } | 408 } |
| 408 | 409 |
| 409 TEST_F(CredentialManagerDispatcherTest, | 410 TEST_F(CredentialManagerDispatcherTest, |
| 410 CredentialManagerOnRequestCredentialWithZeroClickOnlyFullPasswordStore) { | 411 CredentialManagerOnRequestCredentialWithZeroClickOnlyFullPasswordStore) { |
| 411 store_->AddLogin(form_); | 412 store_->AddLogin(form_); |
| 412 | 413 |
| 413 std::vector<GURL> federations; | 414 std::vector<GURL> federations; |
| 414 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 415 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| 415 .Times(testing::Exactly(0)); | 416 .Times(testing::Exactly(0)); |
| 416 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(1)); | 417 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(1)); |
| 417 | 418 |
| 418 dispatcher()->OnRequestCredential(kRequestId, true, federations); | 419 dispatcher()->OnRequestCredential(kRequestId, true, federations); |
| 419 | 420 |
| 420 RunAllPendingTasks(); | 421 RunAllPendingTasks(); |
| 421 | 422 |
| 422 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 423 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 423 const IPC::Message* message = | 424 const IPC::Message* message = |
| 424 process()->sink().GetFirstMessageMatching(kMsgID); | 425 process()->sink().GetFirstMessageMatching(kMsgID); |
| 425 EXPECT_TRUE(message); | 426 EXPECT_TRUE(message); |
| 426 CredentialManagerMsg_SendCredential::Param send_param; | 427 CredentialManagerMsg_SendCredential::Param send_param; |
| 427 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 428 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
| 428 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_LOCAL, get<1>(send_param).type); | 429 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_LOCAL, |
| 430 base::get<1>(send_param).type); |
| 429 } | 431 } |
| 430 | 432 |
| 431 TEST_F(CredentialManagerDispatcherTest, | 433 TEST_F(CredentialManagerDispatcherTest, |
| 432 CredentialManagerOnRequestCredentialWithZeroClickOnlyTwoPasswordStore) { | 434 CredentialManagerOnRequestCredentialWithZeroClickOnlyTwoPasswordStore) { |
| 433 store_->AddLogin(form_); | 435 store_->AddLogin(form_); |
| 434 store_->AddLogin(origin_path_form_); | 436 store_->AddLogin(origin_path_form_); |
| 435 | 437 |
| 436 std::vector<GURL> federations; | 438 std::vector<GURL> federations; |
| 437 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 439 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| 438 .Times(testing::Exactly(0)); | 440 .Times(testing::Exactly(0)); |
| 439 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); | 441 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); |
| 440 | 442 |
| 441 dispatcher()->OnRequestCredential(kRequestId, true, federations); | 443 dispatcher()->OnRequestCredential(kRequestId, true, federations); |
| 442 | 444 |
| 443 RunAllPendingTasks(); | 445 RunAllPendingTasks(); |
| 444 | 446 |
| 445 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 447 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 446 const IPC::Message* message = | 448 const IPC::Message* message = |
| 447 process()->sink().GetFirstMessageMatching(kMsgID); | 449 process()->sink().GetFirstMessageMatching(kMsgID); |
| 448 EXPECT_TRUE(message); | 450 EXPECT_TRUE(message); |
| 449 CredentialManagerMsg_SendCredential::Param send_param; | 451 CredentialManagerMsg_SendCredential::Param send_param; |
| 450 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 452 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
| 451 | 453 |
| 452 // With two items in the password store, we shouldn't get credentials back. | 454 // With two items in the password store, we shouldn't get credentials back. |
| 453 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type); | 455 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, |
| 456 base::get<1>(send_param).type); |
| 454 } | 457 } |
| 455 | 458 |
| 456 TEST_F(CredentialManagerDispatcherTest, | 459 TEST_F(CredentialManagerDispatcherTest, |
| 457 OnRequestCredentialWithZeroClickOnlyOnePasswordStore) { | 460 OnRequestCredentialWithZeroClickOnlyOnePasswordStore) { |
| 458 form_.skip_zero_click = true; | 461 form_.skip_zero_click = true; |
| 459 store_->AddLogin(form_); | 462 store_->AddLogin(form_); |
| 460 store_->AddLogin(origin_path_form_); | 463 store_->AddLogin(origin_path_form_); |
| 461 | 464 |
| 462 std::vector<GURL> federations; | 465 std::vector<GURL> federations; |
| 463 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 466 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| 464 .Times(testing::Exactly(0)); | 467 .Times(testing::Exactly(0)); |
| 465 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(1)); | 468 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(1)); |
| 466 | 469 |
| 467 dispatcher()->OnRequestCredential(kRequestId, true, federations); | 470 dispatcher()->OnRequestCredential(kRequestId, true, federations); |
| 468 | 471 |
| 469 RunAllPendingTasks(); | 472 RunAllPendingTasks(); |
| 470 | 473 |
| 471 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 474 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 472 const IPC::Message* message = | 475 const IPC::Message* message = |
| 473 process()->sink().GetFirstMessageMatching(kMsgID); | 476 process()->sink().GetFirstMessageMatching(kMsgID); |
| 474 EXPECT_TRUE(message); | 477 EXPECT_TRUE(message); |
| 475 CredentialManagerMsg_SendCredential::Param send_param; | 478 CredentialManagerMsg_SendCredential::Param send_param; |
| 476 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 479 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
| 477 | 480 |
| 478 // We should get |origin_path_form_| back, as |form_| is marked as skipping | 481 // We should get |origin_path_form_| back, as |form_| is marked as skipping |
| 479 // zero-click. | 482 // zero-click. |
| 480 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_LOCAL, get<1>(send_param).type); | 483 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_LOCAL, |
| 481 EXPECT_EQ(origin_path_form_.username_value, get<1>(send_param).id); | 484 base::get<1>(send_param).type); |
| 482 EXPECT_EQ(origin_path_form_.display_name, get<1>(send_param).name); | 485 EXPECT_EQ(origin_path_form_.username_value, base::get<1>(send_param).id); |
| 483 EXPECT_EQ(origin_path_form_.password_value, get<1>(send_param).password); | 486 EXPECT_EQ(origin_path_form_.display_name, base::get<1>(send_param).name); |
| 487 EXPECT_EQ(origin_path_form_.password_value, |
| 488 base::get<1>(send_param).password); |
| 484 } | 489 } |
| 485 | 490 |
| 486 TEST_F(CredentialManagerDispatcherTest, | 491 TEST_F(CredentialManagerDispatcherTest, |
| 487 OnRequestCredentialWithZeroClickOnlyCrossOriginPasswordStore) { | 492 OnRequestCredentialWithZeroClickOnlyCrossOriginPasswordStore) { |
| 488 store_->AddLogin(cross_origin_form_); | 493 store_->AddLogin(cross_origin_form_); |
| 489 | 494 |
| 490 form_.skip_zero_click = true; | 495 form_.skip_zero_click = true; |
| 491 store_->AddLogin(form_); | 496 store_->AddLogin(form_); |
| 492 | 497 |
| 493 std::vector<GURL> federations; | 498 std::vector<GURL> federations; |
| 494 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 499 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| 495 .Times(testing::Exactly(0)); | 500 .Times(testing::Exactly(0)); |
| 496 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); | 501 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); |
| 497 | 502 |
| 498 dispatcher()->OnRequestCredential(kRequestId, true, federations); | 503 dispatcher()->OnRequestCredential(kRequestId, true, federations); |
| 499 | 504 |
| 500 RunAllPendingTasks(); | 505 RunAllPendingTasks(); |
| 501 | 506 |
| 502 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 507 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 503 const IPC::Message* message = | 508 const IPC::Message* message = |
| 504 process()->sink().GetFirstMessageMatching(kMsgID); | 509 process()->sink().GetFirstMessageMatching(kMsgID); |
| 505 EXPECT_TRUE(message); | 510 EXPECT_TRUE(message); |
| 506 CredentialManagerMsg_SendCredential::Param send_param; | 511 CredentialManagerMsg_SendCredential::Param send_param; |
| 507 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 512 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
| 508 | 513 |
| 509 // We only have cross-origin zero-click credentials; they should not be | 514 // We only have cross-origin zero-click credentials; they should not be |
| 510 // returned. | 515 // returned. |
| 511 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type); | 516 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, |
| 517 base::get<1>(send_param).type); |
| 512 } | 518 } |
| 513 | 519 |
| 514 TEST_F(CredentialManagerDispatcherTest, | 520 TEST_F(CredentialManagerDispatcherTest, |
| 515 CredentialManagerOnRequestCredentialWhileRequestPending) { | 521 CredentialManagerOnRequestCredentialWhileRequestPending) { |
| 516 client_->set_zero_click_enabled(false); | 522 client_->set_zero_click_enabled(false); |
| 517 store_->AddLogin(form_); | 523 store_->AddLogin(form_); |
| 518 | 524 |
| 519 std::vector<GURL> federations; | 525 std::vector<GURL> federations; |
| 520 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 526 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| 521 .Times(testing::Exactly(0)); | 527 .Times(testing::Exactly(0)); |
| 522 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); | 528 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); |
| 523 | 529 |
| 524 dispatcher()->OnRequestCredential(kRequestId, false, federations); | 530 dispatcher()->OnRequestCredential(kRequestId, false, federations); |
| 525 dispatcher()->OnRequestCredential(kRequestId, false, federations); | 531 dispatcher()->OnRequestCredential(kRequestId, false, federations); |
| 526 | 532 |
| 527 // Check that the second request triggered a rejection. | 533 // Check that the second request triggered a rejection. |
| 528 uint32 kMsgID = CredentialManagerMsg_RejectCredentialRequest::ID; | 534 uint32 kMsgID = CredentialManagerMsg_RejectCredentialRequest::ID; |
| 529 const IPC::Message* message = | 535 const IPC::Message* message = |
| 530 process()->sink().GetFirstMessageMatching(kMsgID); | 536 process()->sink().GetFirstMessageMatching(kMsgID); |
| 531 EXPECT_TRUE(message); | 537 EXPECT_TRUE(message); |
| 532 | 538 |
| 533 CredentialManagerMsg_RejectCredentialRequest::Param reject_param; | 539 CredentialManagerMsg_RejectCredentialRequest::Param reject_param; |
| 534 CredentialManagerMsg_RejectCredentialRequest::Read(message, &reject_param); | 540 CredentialManagerMsg_RejectCredentialRequest::Read(message, &reject_param); |
| 535 EXPECT_EQ(blink::WebCredentialManagerError::ErrorTypePendingRequest, | 541 EXPECT_EQ(blink::WebCredentialManagerError::ErrorTypePendingRequest, |
| 536 get<1>(reject_param)); | 542 base::get<1>(reject_param)); |
| 537 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) | 543 EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| 538 .Times(testing::Exactly(1)); | 544 .Times(testing::Exactly(1)); |
| 539 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); | 545 EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); |
| 540 | 546 |
| 541 process()->sink().ClearMessages(); | 547 process()->sink().ClearMessages(); |
| 542 | 548 |
| 543 // Execute the PasswordStore asynchronousness. | 549 // Execute the PasswordStore asynchronousness. |
| 544 RunAllPendingTasks(); | 550 RunAllPendingTasks(); |
| 545 | 551 |
| 546 // Check that the first request resolves. | 552 // Check that the first request resolves. |
| 547 kMsgID = CredentialManagerMsg_SendCredential::ID; | 553 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 548 message = process()->sink().GetFirstMessageMatching(kMsgID); | 554 message = process()->sink().GetFirstMessageMatching(kMsgID); |
| 549 EXPECT_TRUE(message); | 555 EXPECT_TRUE(message); |
| 550 CredentialManagerMsg_SendCredential::Param send_param; | 556 CredentialManagerMsg_SendCredential::Param send_param; |
| 551 CredentialManagerMsg_SendCredential::Read(message, &send_param); | 557 CredentialManagerMsg_SendCredential::Read(message, &send_param); |
| 552 EXPECT_NE(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type); | 558 EXPECT_NE(CredentialType::CREDENTIAL_TYPE_EMPTY, |
| 559 base::get<1>(send_param).type); |
| 553 process()->sink().ClearMessages(); | 560 process()->sink().ClearMessages(); |
| 554 } | 561 } |
| 555 | 562 |
| 556 TEST_F(CredentialManagerDispatcherTest, ResetSkipZeroClickAfterPrompt) { | 563 TEST_F(CredentialManagerDispatcherTest, ResetSkipZeroClickAfterPrompt) { |
| 557 // Turn on the global zero-click flag, and add two credentials in separate | 564 // Turn on the global zero-click flag, and add two credentials in separate |
| 558 // origins, both set to skip zero-click. | 565 // origins, both set to skip zero-click. |
| 559 client_->set_zero_click_enabled(true); | 566 client_->set_zero_click_enabled(true); |
| 560 form_.skip_zero_click = true; | 567 form_.skip_zero_click = true; |
| 561 store_->AddLogin(form_); | 568 store_->AddLogin(form_); |
| 562 cross_origin_form_.skip_zero_click = true; | 569 cross_origin_form_.skip_zero_click = true; |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 dispatcher()->OnRequestCredential(kRequestId, true, federations); | 616 dispatcher()->OnRequestCredential(kRequestId, true, federations); |
| 610 | 617 |
| 611 RunAllPendingTasks(); | 618 RunAllPendingTasks(); |
| 612 | 619 |
| 613 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; | 620 const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID; |
| 614 const IPC::Message* message = | 621 const IPC::Message* message = |
| 615 process()->sink().GetFirstMessageMatching(kMsgID); | 622 process()->sink().GetFirstMessageMatching(kMsgID); |
| 616 ASSERT_TRUE(message); | 623 ASSERT_TRUE(message); |
| 617 CredentialManagerMsg_SendCredential::Param param; | 624 CredentialManagerMsg_SendCredential::Param param; |
| 618 CredentialManagerMsg_SendCredential::Read(message, ¶m); | 625 CredentialManagerMsg_SendCredential::Read(message, ¶m); |
| 619 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(param).type); | 626 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, base::get<1>(param).type); |
| 620 } | 627 } |
| 621 | 628 |
| 622 } // namespace password_manager | 629 } // namespace password_manager |
| OLD | NEW |