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

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: dcheck 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 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 EXPECT_EQ(4, 1421 EXPECT_EQ(4,
1422 controller()->MenuModelForSection(SECTION_CC_BILLING)->GetItemCount()); 1422 controller()->MenuModelForSection(SECTION_CC_BILLING)->GetItemCount());
1423 // "add" 1423 // "add"
1424 EXPECT_TRUE(controller()->MenuModelForSection(SECTION_CC_BILLING)-> 1424 EXPECT_TRUE(controller()->MenuModelForSection(SECTION_CC_BILLING)->
1425 IsItemCheckedAt(2)); 1425 IsItemCheckedAt(2));
1426 } 1426 }
1427 1427
1428 TEST_F(AutofillDialogControllerTest, SaveAddress) { 1428 TEST_F(AutofillDialogControllerTest, SaveAddress) {
1429 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1429 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1430 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1430 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1431 SaveToWalletMock(testing::IsNull(), testing::NotNull())); 1431 SaveToWalletMock(testing::IsNull(),
1432 testing::NotNull(),
1433 testing::IsNull(),
1434 testing::IsNull()));
1432 1435
1433 scoped_ptr<wallet::WalletItems> wallet_items = 1436 scoped_ptr<wallet::WalletItems> wallet_items =
1434 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1437 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1435 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument()); 1438 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1436 controller()->OnDidGetWalletItems(wallet_items.Pass()); 1439 controller()->OnDidGetWalletItems(wallet_items.Pass());
1437 // If there is no shipping address in wallet, it will default to 1440 // If there is no shipping address in wallet, it will default to
1438 // "same-as-billing" instead of "add-new-item". "same-as-billing" is covered 1441 // "same-as-billing" instead of "add-new-item". "same-as-billing" is covered
1439 // by the following tests. The penultimate item in the menu is "add-new-item". 1442 // by the following tests. The penultimate item in the menu is "add-new-item".
1440 ui::MenuModel* shipping_model = 1443 ui::MenuModel* shipping_model =
1441 controller()->MenuModelForSection(SECTION_SHIPPING); 1444 controller()->MenuModelForSection(SECTION_SHIPPING);
1442 shipping_model->ActivatedAt(shipping_model->GetItemCount() - 2); 1445 shipping_model->ActivatedAt(shipping_model->GetItemCount() - 2);
1443 1446
1444 AutofillProfile test_profile(test::GetVerifiedProfile()); 1447 AutofillProfile test_profile(test::GetVerifiedProfile());
1445 FillInputs(SECTION_SHIPPING, test_profile); 1448 FillInputs(SECTION_SHIPPING, test_profile);
1446 1449
1447 AcceptAndLoadFakeFingerprint(); 1450 AcceptAndLoadFakeFingerprint();
1448 } 1451 }
1449 1452
1450 TEST_F(AutofillDialogControllerTest, SaveInstrument) { 1453 TEST_F(AutofillDialogControllerTest, SaveInstrument) {
1451 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1454 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1452 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1455 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1453 SaveToWalletMock(testing::NotNull(), testing::IsNull())); 1456 SaveToWalletMock(testing::NotNull(),
1457 testing::IsNull(),
1458 testing::IsNull(),
1459 testing::IsNull()));
1454 1460
1455 FillCCBillingInputs(); 1461 FillCCBillingInputs();
1456 scoped_ptr<wallet::WalletItems> wallet_items = 1462 scoped_ptr<wallet::WalletItems> wallet_items =
1457 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1463 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1458 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1464 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1459 SubmitWithWalletItems(wallet_items.Pass()); 1465 SubmitWithWalletItems(wallet_items.Pass());
1460 } 1466 }
1461 1467
1462 TEST_F(AutofillDialogControllerTest, SaveInstrumentWithInvalidInstruments) { 1468 TEST_F(AutofillDialogControllerTest, SaveInstrumentWithInvalidInstruments) {
1463 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1469 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1464 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1470 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1465 SaveToWalletMock(testing::NotNull(), testing::IsNull())); 1471 SaveToWalletMock(testing::NotNull(),
1472 testing::IsNull(),
1473 testing::IsNull(),
1474 testing::IsNull()));
1466 1475
1467 FillCCBillingInputs(); 1476 FillCCBillingInputs();
1468 scoped_ptr<wallet::WalletItems> wallet_items = 1477 scoped_ptr<wallet::WalletItems> wallet_items =
1469 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1478 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1470 wallet_items->AddAddress(wallet::GetTestShippingAddress()); 1479 wallet_items->AddAddress(wallet::GetTestShippingAddress());
1471 wallet_items->AddInstrument(wallet::GetTestMaskedInstrumentInvalid()); 1480 wallet_items->AddInstrument(wallet::GetTestMaskedInstrumentInvalid());
1472 SubmitWithWalletItems(wallet_items.Pass()); 1481 SubmitWithWalletItems(wallet_items.Pass());
1473 } 1482 }
1474 1483
1475 TEST_F(AutofillDialogControllerTest, SaveInstrumentAndAddress) { 1484 TEST_F(AutofillDialogControllerTest, SaveInstrumentAndAddress) {
1476 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1485 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1477 SaveToWalletMock(testing::NotNull(), testing::NotNull())); 1486 SaveToWalletMock(testing::NotNull(),
1487 testing::NotNull(),
1488 testing::IsNull(),
1489 testing::IsNull()));
1478 1490
1479 FillCCBillingInputs(); 1491 FillCCBillingInputs();
1480 scoped_ptr<wallet::WalletItems> wallet_items = 1492 scoped_ptr<wallet::WalletItems> wallet_items =
1481 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1493 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1482 SubmitWithWalletItems(wallet_items.Pass()); 1494 SubmitWithWalletItems(wallet_items.Pass());
1483 } 1495 }
1484 1496
1485 MATCHER(IsUpdatingExistingData, "updating existing Wallet data") { 1497 MATCHER(IsUpdatingExistingData, "updating existing Wallet data") {
1486 return !arg->object_id().empty(); 1498 return !arg->object_id().empty();
1487 } 1499 }
1488 1500
1489 MATCHER(UsesLocalBillingAddress, "uses the local billing address") { 1501 MATCHER(UsesLocalBillingAddress, "uses the local billing address") {
1490 return arg->address_line_1() == ASCIIToUTF16(kEditedBillingAddress); 1502 return arg->address_line_1() == ASCIIToUTF16(kEditedBillingAddress);
1491 } 1503 }
1492 1504
1493 // Tests that when using billing address for shipping, and there is no exact 1505 // Tests that when using billing address for shipping, and there is no exact
1494 // matched shipping address, then a shipping address should be added. 1506 // matched shipping address, then a shipping address should be added.
1495 TEST_F(AutofillDialogControllerTest, BillingForShipping) { 1507 TEST_F(AutofillDialogControllerTest, BillingForShipping) {
1496 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1508 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1497 SaveToWalletMock(testing::IsNull(), testing::NotNull())); 1509 SaveToWalletMock(testing::IsNull(),
1510 testing::NotNull(),
1511 testing::IsNull(),
1512 testing::IsNull()));
1498 1513
1499 controller()->OnDidGetWalletItems(CompleteAndValidWalletItems()); 1514 controller()->OnDidGetWalletItems(CompleteAndValidWalletItems());
1500 // Select "Same as billing" in the address menu. 1515 // Select "Same as billing" in the address menu.
1501 UseBillingForShipping(); 1516 UseBillingForShipping();
1502 1517
1503 AcceptAndLoadFakeFingerprint(); 1518 AcceptAndLoadFakeFingerprint();
1504 } 1519 }
1505 1520
1506 // Tests that when using billing address for shipping, and there is an exact 1521 // Tests that when using billing address for shipping, and there is an exact
1507 // matched shipping address, then a shipping address should not be added. 1522 // matched shipping address, then a shipping address should not be added.
1508 TEST_F(AutofillDialogControllerTest, BillingForShippingHasMatch) { 1523 TEST_F(AutofillDialogControllerTest, BillingForShippingHasMatch) {
1509 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1524 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1510 SaveToWalletMock(_, _)).Times(0); 1525 SaveToWalletMock(_, _, _, _)).Times(0);
1511 1526
1512 scoped_ptr<wallet::WalletItems> wallet_items = 1527 scoped_ptr<wallet::WalletItems> wallet_items =
1513 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED); 1528 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
1514 scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument = 1529 scoped_ptr<wallet::WalletItems::MaskedInstrument> instrument =
1515 wallet::GetTestMaskedInstrument(); 1530 wallet::GetTestMaskedInstrument();
1516 // Copy billing address as shipping address, and assign an id to it. 1531 // Copy billing address as shipping address, and assign an id to it.
1517 scoped_ptr<wallet::Address> shipping_address( 1532 scoped_ptr<wallet::Address> shipping_address(
1518 new wallet::Address(instrument->address())); 1533 new wallet::Address(instrument->address()));
1519 shipping_address->set_object_id("shipping_address_id"); 1534 shipping_address->set_object_id("shipping_address_id");
1520 wallet_items->AddAddress(shipping_address.Pass()); 1535 wallet_items->AddAddress(shipping_address.Pass());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1552 outputs[type] = full_profile.GetInfo(AutofillType(type), "en-US"); 1567 outputs[type] = full_profile.GetInfo(AutofillType(type), "en-US");
1553 1568
1554 if (outputs[type].empty()) 1569 if (outputs[type].empty())
1555 outputs[type] = full_card.GetInfo(AutofillType(type), "en-US"); 1570 outputs[type] = full_card.GetInfo(AutofillType(type), "en-US");
1556 } 1571 }
1557 controller()->GetView()->SetUserInput(SECTION_CC_BILLING, outputs); 1572 controller()->GetView()->SetUserInput(SECTION_CC_BILLING, outputs);
1558 1573
1559 controller()->OnAccept(); 1574 controller()->OnAccept();
1560 1575
1561 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1576 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1562 SaveToWalletMock(testing::NotNull(), UsesLocalBillingAddress())); 1577 SaveToWalletMock(testing::NotNull(),
1578 UsesLocalBillingAddress(),
1579 testing::IsNull(),
1580 testing::IsNull()));
1563 AcceptAndLoadFakeFingerprint(); 1581 AcceptAndLoadFakeFingerprint();
1564 } 1582 }
1565 1583
1566 TEST_F(AutofillDialogControllerTest, CancelNoSave) { 1584 TEST_F(AutofillDialogControllerTest, CancelNoSave) {
1567 EXPECT_CALL(*controller()->GetTestingWalletClient(), 1585 EXPECT_CALL(*controller()->GetTestingWalletClient(),
1568 SaveToWalletMock(_, _)).Times(0); 1586 SaveToWalletMock(_, _, _, _)).Times(0);
1569 1587
1570 EXPECT_CALL(*controller()->GetView(), ModelChanged()); 1588 EXPECT_CALL(*controller()->GetView(), ModelChanged());
1571 1589
1572 controller()->OnDidGetWalletItems( 1590 controller()->OnDidGetWalletItems(
1573 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED)); 1591 wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED));
1574 controller()->OnCancel(); 1592 controller()->OnCancel();
1575 } 1593 }
1576 1594
1577 // Checks that clicking the Manage menu item opens a new tab with a different 1595 // Checks that clicking the Manage menu item opens a new tab with a different
1578 // URL for Wallet and Autofill. 1596 // URL for Wallet and Autofill.
(...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after
2646 controller()->OnDidGetWalletItems( 2664 controller()->OnDidGetWalletItems(
2647 wallet::GetTestWalletItemsWithRequiredAction( 2665 wallet::GetTestWalletItemsWithRequiredAction(
2648 wallet::PASSIVE_GAIA_AUTH)); 2666 wallet::PASSIVE_GAIA_AUTH));
2649 EXPECT_TRUE(controller()->ShouldShowSpinner()); 2667 EXPECT_TRUE(controller()->ShouldShowSpinner());
2650 controller()->OnPassiveSigninFailure(GoogleServiceAuthError( 2668 controller()->OnPassiveSigninFailure(GoogleServiceAuthError(
2651 GoogleServiceAuthError::NONE)); 2669 GoogleServiceAuthError::NONE));
2652 EXPECT_FALSE(controller()->ShouldShowSpinner()); 2670 EXPECT_FALSE(controller()->ShouldShowSpinner());
2653 } 2671 }
2654 2672
2655 } // namespace autofill 2673 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698