Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc

Issue 100743006: Fix DCHECK() when updating instruments with no phone number. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: estade@ review Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 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/guid.h" 9 #include "base/guid.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 1412 matching lines...) Expand 10 before | Expand all | Expand 10 after
1423 EXPECT_EQ(4, 1423 EXPECT_EQ(4,
1424 controller()->MenuModelForSection(SECTION_CC_BILLING)->GetItemCount()); 1424 controller()->MenuModelForSection(SECTION_CC_BILLING)->GetItemCount());
1425 // "add" 1425 // "add"
1426 EXPECT_TRUE(controller()->MenuModelForSection(SECTION_CC_BILLING)-> 1426 EXPECT_TRUE(controller()->MenuModelForSection(SECTION_CC_BILLING)->
1427 IsItemCheckedAt(2)); 1427 IsItemCheckedAt(2));
1428 } 1428 }
1429 1429
1430 TEST_F(AutofillDialogControllerTest, SaveAddress) { 1430 TEST_F(AutofillDialogControllerTest, SaveAddress) {
1431 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1431 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1432 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1432 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1433 SaveToWalletMock(testing::IsNull(), testing::NotNull())); 1433 SaveToWalletMock(testing::IsNull(),
1434 testing::NotNull(),
1435 testing::IsNull(),
1436 testing::IsNull()));
1434 1437
1435 scoped_ptr<wallet::WalletItems> wallet_items = 1438 scoped_ptr<wallet::WalletItems> wallet_items =
1436 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1439 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1437 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 1440 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1438 controller()->OnDidGetWalletItems(wallet_items.Pass()); 1441 controller()->OnDidGetWalletItems(wallet_items.Pass());
1439 // If there is no shipping address in wallet, it will default to 1442 // If there is no shipping address in wallet, it will default to
1440 // "same-as-billing" instead of "add-new-item". "same-as-billing" is covered 1443 // "same-as-billing" instead of "add-new-item". "same-as-billing" is covered
1441 // by the following tests. The penultimate item in the menu is "add-new-item". 1444 // by the following tests. The penultimate item in the menu is "add-new-item".
1442 ui::MenuModel* shipping_model = 1445 ui::MenuModel* shipping_model =
1443 controller()->MenuModelForSection(SECTION_SHIPPING); 1446 controller()->MenuModelForSection(SECTION_SHIPPING);
1444 shipping_model->ActivatedAt(shipping_model->GetItemCount() - 2); 1447 shipping_model->ActivatedAt(shipping_model->GetItemCount() - 2);
1445 1448
1446 AutofillProfile test_profile(test::GetVerifiedProfile()); 1449 AutofillProfile test_profile(test::GetVerifiedProfile());
1447 FillInputs(SECTION_SHIPPING, test_profile); 1450 FillInputs(SECTION_SHIPPING, test_profile);
1448 1451
1449 AcceptAndLoadFakeFingerprint(); 1452 AcceptAndLoadFakeFingerprint();
1450 } 1453 }
1451 1454
1452 TEST_F(AutofillDialogControllerTest, SaveInstrument) { 1455 TEST_F(AutofillDialogControllerTest, SaveInstrument) {
1453 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1456 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1454 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1457 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1455 SaveToWalletMock(testing::NotNull(), testing::IsNull())); 1458 SaveToWalletMock(testing::NotNull(),
1459 testing::IsNull(),
1460 testing::IsNull(),
1461 testing::IsNull()));
1456 1462
1457 FillCCBillingInputs(); 1463 FillCCBillingInputs();
1458 scoped_ptr<wallet::WalletItems> wallet_items = 1464 scoped_ptr<wallet::WalletItems> wallet_items =
1459 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1465 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1460 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1466 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1461 SubmitWithWalletItems(wallet_items.Pass()); 1467 SubmitWithWalletItems(wallet_items.Pass());
1462 } 1468 }
1463 1469
1464 TEST_F(AutofillDialogControllerTest, SaveInstrumentWithInvalidInstruments) { 1470 TEST_F(AutofillDialogControllerTest, SaveInstrumentWithInvalidInstruments) {
1465 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1471 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1466 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1472 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1467 SaveToWalletMock(testing::NotNull(), testing::IsNull())); 1473 SaveToWalletMock(testing::NotNull(),
1474 testing::IsNull(),
1475 testing::IsNull(),
1476 testing::IsNull()));
1468 1477
1469 FillCCBillingInputs(); 1478 FillCCBillingInputs();
1470 scoped_ptr<wallet::WalletItems> wallet_items = 1479 scoped_ptr<wallet::WalletItems> wallet_items =
1471 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1480 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1472 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1481 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1473 wallet_items->AddInstrument(wallet::GetTestMaskedInstrumentInvalid()); 1482 wallet_items->AddInstrument(wallet::GetTestMaskedInstrumentInvalid());
1474 SubmitWithWalletItems(wallet_items.Pass()); 1483 SubmitWithWalletItems(wallet_items.Pass());
1475 } 1484 }
1476 1485
1477 TEST_F(AutofillDialogControllerTest, SaveInstrumentAndAddress) { 1486 TEST_F(AutofillDialogControllerTest, SaveInstrumentAndAddress) {
1478 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1487 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1479 SaveToWalletMock(testing::NotNull(), testing::NotNull())); 1488 SaveToWalletMock(testing::NotNull(),
1489 testing::NotNull(),
1490 testing::IsNull(),
1491 testing::IsNull()));
1480 1492
1481 FillCCBillingInputs(); 1493 FillCCBillingInputs();
1482 scoped_ptr<wallet::WalletItems> wallet_items = 1494 scoped_ptr<wallet::WalletItems> wallet_items =
1483 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1495 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1484 SubmitWithWalletItems(wallet_items.Pass()); 1496 SubmitWithWalletItems(wallet_items.Pass());
1485 } 1497 }
1486 1498
1487 MATCHER(IsUpdatingExistingData, "updating existing Wallet data") { 1499 MATCHER(IsUpdatingExistingData, "updating existing Wallet data") {
1488 return !arg->object_id().empty(); 1500 return !arg->object_id().empty();
1489 } 1501 }
1490 1502
1491 MATCHER(UsesLocalBillingAddress, "uses the local billing address") { 1503 MATCHER(UsesLocalBillingAddress, "uses the local billing address") {
1492 return arg->address_line_1() == ASCIIToUTF16(kEditedBillingAddress); 1504 return arg->address_line_1() == ASCIIToUTF16(kEditedBillingAddress);
1493 } 1505 }
1494 1506
1495 // Tests that when using billing address for shipping, and there is no exact 1507 // Tests that when using billing address for shipping, and there is no exact
1496 // matched shipping address, then a shipping address should be added. 1508 // matched shipping address, then a shipping address should be added.
1497 TEST_F(AutofillDialogControllerTest, BillingForShipping) { 1509 TEST_F(AutofillDialogControllerTest, BillingForShipping) {
1498 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1510 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1499 SaveToWalletMock(testing::IsNull(), testing::NotNull())); 1511 SaveToWalletMock(testing::IsNull(),
1512 testing::NotNull(),
1513 testing::IsNull(),
1514 testing::IsNull()));
1500 1515
1501 controller()->OnDidGetWalletItems(CompleteAndValidWalletItems()); 1516 controller()->OnDidGetWalletItems(CompleteAndValidWalletItems());
1502 // Select "Same as billing" in the address menu. 1517 // Select "Same as billing" in the address menu.
1503 UseBillingForShipping(); 1518 UseBillingForShipping();
1504 1519
1505 AcceptAndLoadFakeFingerprint(); 1520 AcceptAndLoadFakeFingerprint();
1506 } 1521 }
1507 1522
1508 // Tests that when using billing address for shipping, and there is an exact 1523 // Tests that when using billing address for shipping, and there is an exact
1509 // matched shipping address, then a shipping address should not be added. 1524 // matched shipping address, then a shipping address should not be added.
1510 TEST_F(AutofillDialogControllerTest, BillingForShippingHasMatch) { 1525 TEST_F(AutofillDialogControllerTest, BillingForShippingHasMatch) {
1511 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1526 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1512 SaveToWalletMock(_, _)).Times(0); 1527 SaveToWalletMock(_, _, _, _)).Times(0);
1513 1528
1514 scoped_ptr<wallet::WalletItems> wallet_items = 1529 scoped_ptr<wallet::WalletItems> wallet_items =
1515 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1530 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1516 scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument = 1531 scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument =
1517 wallet::GetTestMaskedInstrument(); 1532 wallet::GetTestMaskedInstrument();
1518 // Copy billing address as shipping address, and assign an id to it. 1533 // Copy billing address as shipping address, and assign an id to it.
1519 scoped_ptr<wallet::Address> shipping_address( 1534 scoped_ptr<wallet::Address> shipping_address(
1520 new wallet::Address(instrument->address())); 1535 new wallet::Address(instrument->address()));
1521 shipping_address->set_object_id("shipping_address_id"); 1536 shipping_address->set_object_id("shipping_address_id");
1522 wallet_items->AddAddress(shipping_address.Pass()); 1537 wallet_items->AddAddress(shipping_address.Pass());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1554 outputs[type] = full_profile.GetInfo(AutofillType(type), "en-US"); 1569 outputs[type] = full_profile.GetInfo(AutofillType(type), "en-US");
1555 1570
1556 if (outputs[type].empty()) 1571 if (outputs[type].empty())
1557 outputs[type] = full_card.GetInfo(AutofillType(type), "en-US"); 1572 outputs[type] = full_card.GetInfo(AutofillType(type), "en-US");
1558 } 1573 }
1559 controller()->GetView()->SetUserInput(SECTION_CC_BILLING, outputs); 1574 controller()->GetView()->SetUserInput(SECTION_CC_BILLING, outputs);
1560 1575
1561 controller()->OnAccept(); 1576 controller()->OnAccept();
1562 1577
1563 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1578 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1564 SaveToWalletMock(testing::NotNull(), UsesLocalBillingAddress())); 1579 SaveToWalletMock(testing::NotNull(),
1580 UsesLocalBillingAddress(),
1581 testing::IsNull(),
1582 testing::IsNull()));
1565 AcceptAndLoadFakeFingerprint(); 1583 AcceptAndLoadFakeFingerprint();
1566 } 1584 }
1567 1585
1568 TEST_F(AutofillDialogControllerTest, CancelNoSave) { 1586 TEST_F(AutofillDialogControllerTest, CancelNoSave) {
1569 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1587 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1570 SaveToWalletMock(_, _)).Times(0); 1588 SaveToWalletMock(_, _, _, _)).Times(0);
1571 1589
1572 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1590 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1573 1591
1574 controller()->OnDidGetWalletItems( 1592 controller()->OnDidGetWalletItems(
1575 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED)); 1593 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED));
1576 controller()->OnCancel(); 1594 controller()->OnCancel();
1577 } 1595 }
1578 1596
1579 // Checks that clicking the Manage menu item opens a new tab with a different 1597 // Checks that clicking the Manage menu item opens a new tab with a different
1580 // URL for Wallet and Autofill. 1598 // URL for Wallet and Autofill.
(...skipping 1090 matching lines...) Expand 10 before | Expand all | Expand 10 after
2671 controller()->OnDidGetWalletItems( 2689 controller()->OnDidGetWalletItems(
2672 wallet::GetTestWalletItemsWithRequiredAction( 2690 wallet::GetTestWalletItemsWithRequiredAction(
2673 wallet::PASSIVE_GAIA_AUTH)); 2691 wallet::PASSIVE_GAIA_AUTH));
2674 EXPECT_TRUE(controller()->ShouldShowSpinner()); 2692 EXPECT_TRUE(controller()->ShouldShowSpinner());
2675 controller()->OnPassiveSigninFailure(GoogleServiceAuthError( 2693 controller()->OnPassiveSigninFailure(GoogleServiceAuthError(
2676 GoogleServiceAuthError::NONE)); 2694 GoogleServiceAuthError::NONE));
2677 EXPECT_FALSE(controller()->ShouldShowSpinner()); 2695 EXPECT_FALSE(controller()->ShouldShowSpinner());
2678 } 2696 }
2679 2697
2680 } // namespace autofill 2698 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc ('k') | components/autofill/content/browser/wallet/instrument.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698