| OLD | NEW |
| 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 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 ui::MenuModel* shipping_model = | 807 ui::MenuModel* shipping_model = |
| 808 controller()->MenuModelForSection(SECTION_SHIPPING); | 808 controller()->MenuModelForSection(SECTION_SHIPPING); |
| 809 // Since the PersonalDataManager is empty, this should only have the | 809 // Since the PersonalDataManager is empty, this should only have the |
| 810 // "use billing", "add new" and "manage" menu items. | 810 // "use billing", "add new" and "manage" menu items. |
| 811 ASSERT_TRUE(shipping_model); | 811 ASSERT_TRUE(shipping_model); |
| 812 EXPECT_EQ(3, shipping_model->GetItemCount()); | 812 EXPECT_EQ(3, shipping_model->GetItemCount()); |
| 813 // On the other hand, the other models should be NULL when there's no | 813 // On the other hand, the other models should be NULL when there's no |
| 814 // suggestion. | 814 // suggestion. |
| 815 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC)); | 815 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC)); |
| 816 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_BILLING)); | 816 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_BILLING)); |
| 817 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_EMAIL)); | |
| 818 | 817 |
| 819 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(3); | 818 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(3); |
| 820 | 819 |
| 821 // Empty profiles are ignored. | 820 // Empty profiles are ignored. |
| 822 AutofillProfile empty_profile(base::GenerateGUID(), kSettingsOrigin); | 821 AutofillProfile empty_profile(base::GenerateGUID(), kSettingsOrigin); |
| 823 empty_profile.SetRawInfo(NAME_FULL, ASCIIToUTF16("John Doe")); | 822 empty_profile.SetRawInfo(NAME_FULL, ASCIIToUTF16("John Doe")); |
| 824 controller()->GetTestingManager()->AddTestingProfile(&empty_profile); | 823 controller()->GetTestingManager()->AddTestingProfile(&empty_profile); |
| 825 shipping_model = controller()->MenuModelForSection(SECTION_SHIPPING); | 824 shipping_model = controller()->MenuModelForSection(SECTION_SHIPPING); |
| 826 ASSERT_TRUE(shipping_model); | 825 ASSERT_TRUE(shipping_model); |
| 827 EXPECT_EQ(3, shipping_model->GetItemCount()); | 826 EXPECT_EQ(3, shipping_model->GetItemCount()); |
| 828 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_EMAIL)); | |
| 829 | 827 |
| 830 // An otherwise full but unverified profile should be ignored. | 828 // An otherwise full but unverified profile should be ignored. |
| 831 AutofillProfile full_profile(test::GetFullProfile()); | 829 AutofillProfile full_profile(test::GetFullProfile()); |
| 832 full_profile.set_origin("https://www.example.com"); | 830 full_profile.set_origin("https://www.example.com"); |
| 833 full_profile.SetRawInfo(ADDRESS_HOME_LINE2, string16()); | 831 full_profile.SetRawInfo(ADDRESS_HOME_LINE2, string16()); |
| 834 controller()->GetTestingManager()->AddTestingProfile(&full_profile); | 832 controller()->GetTestingManager()->AddTestingProfile(&full_profile); |
| 835 shipping_model = controller()->MenuModelForSection(SECTION_SHIPPING); | 833 shipping_model = controller()->MenuModelForSection(SECTION_SHIPPING); |
| 836 ASSERT_TRUE(shipping_model); | 834 ASSERT_TRUE(shipping_model); |
| 837 EXPECT_EQ(3, shipping_model->GetItemCount()); | 835 EXPECT_EQ(3, shipping_model->GetItemCount()); |
| 838 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_EMAIL)); | |
| 839 | 836 |
| 840 // A full, verified profile should be picked up. | 837 // A full, verified profile should be picked up. |
| 841 AutofillProfile verified_profile(test::GetVerifiedProfile()); | 838 AutofillProfile verified_profile(test::GetVerifiedProfile()); |
| 842 verified_profile.SetRawInfo(ADDRESS_HOME_LINE2, string16()); | 839 verified_profile.SetRawInfo(ADDRESS_HOME_LINE2, string16()); |
| 843 controller()->GetTestingManager()->AddTestingProfile(&verified_profile); | 840 controller()->GetTestingManager()->AddTestingProfile(&verified_profile); |
| 844 shipping_model = controller()->MenuModelForSection(SECTION_SHIPPING); | 841 shipping_model = controller()->MenuModelForSection(SECTION_SHIPPING); |
| 845 ASSERT_TRUE(shipping_model); | 842 ASSERT_TRUE(shipping_model); |
| 846 EXPECT_EQ(4, shipping_model->GetItemCount()); | 843 EXPECT_EQ(4, shipping_model->GetItemCount()); |
| 847 EXPECT_TRUE(!!controller()->MenuModelForSection(SECTION_EMAIL)); | |
| 848 } | 844 } |
| 849 | 845 |
| 850 // Makes sure that the choice of which Autofill profile to use for each section | 846 // Makes sure that the choice of which Autofill profile to use for each section |
| 851 // is sticky. | 847 // is sticky. |
| 852 TEST_F(AutofillDialogControllerTest, AutofillProfileDefaults) { | 848 TEST_F(AutofillDialogControllerTest, AutofillProfileDefaults) { |
| 853 AutofillProfile full_profile(test::GetFullProfile()); | 849 AutofillProfile full_profile(test::GetFullProfile()); |
| 854 full_profile.set_origin(kSettingsOrigin); | 850 full_profile.set_origin(kSettingsOrigin); |
| 855 controller()->GetTestingManager()->AddTestingProfile(&full_profile); | 851 controller()->GetTestingManager()->AddTestingProfile(&full_profile); |
| 856 AutofillProfile full_profile2(test::GetFullProfile2()); | 852 AutofillProfile full_profile2(test::GetFullProfile2()); |
| 857 full_profile2.set_origin(kSettingsOrigin); | 853 full_profile2.set_origin(kSettingsOrigin); |
| (...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1589 | 1585 |
| 1590 // Also, the currently selected email address should get added to the new | 1586 // Also, the currently selected email address should get added to the new |
| 1591 // profile. | 1587 // profile. |
| 1592 string16 original_email = | 1588 string16 original_email = |
| 1593 full_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US"); | 1589 full_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US"); |
| 1594 EXPECT_FALSE(original_email.empty()); | 1590 EXPECT_FALSE(original_email.empty()); |
| 1595 EXPECT_EQ(original_email, | 1591 EXPECT_EQ(original_email, |
| 1596 added_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US")); | 1592 added_profile.GetInfo(AutofillType(EMAIL_ADDRESS), "en-US")); |
| 1597 } | 1593 } |
| 1598 | 1594 |
| 1599 // Makes sure that a newly added email address gets added to an existing profile | |
| 1600 // (as opposed to creating its own profile). http://crbug.com/240926 | |
| 1601 TEST_F(AutofillDialogControllerTest, AddEmail) { | |
| 1602 SwitchToAutofill(); | |
| 1603 EXPECT_CALL(*controller()->GetView(), ModelChanged()).Times(2); | |
| 1604 | |
| 1605 AutofillProfile full_profile(test::GetVerifiedProfile()); | |
| 1606 CreditCard credit_card(test::GetVerifiedCreditCard()); | |
| 1607 controller()->GetTestingManager()->AddTestingProfile(&full_profile); | |
| 1608 controller()->GetTestingManager()->AddTestingCreditCard(&credit_card); | |
| 1609 | |
| 1610 ui::MenuModel* model = controller()->MenuModelForSection(SECTION_EMAIL); | |
| 1611 ASSERT_TRUE(model); | |
| 1612 // Activate the "Add email address" menu item. | |
| 1613 model->ActivatedAt(model->GetItemCount() - 2); | |
| 1614 | |
| 1615 // Fill in the inputs from the profile. | |
| 1616 DetailOutputMap outputs; | |
| 1617 const DetailInputs& inputs = | |
| 1618 controller()->RequestedFieldsForSection(SECTION_EMAIL); | |
| 1619 const DetailInput& input = inputs[0]; | |
| 1620 string16 new_email = ASCIIToUTF16("addemailtest@example.com"); | |
| 1621 outputs[&input] = new_email; | |
| 1622 controller()->GetView()->SetUserInput(SECTION_EMAIL, outputs); | |
| 1623 | |
| 1624 FillCreditCardInputs(); | |
| 1625 controller()->OnAccept(); | |
| 1626 std::vector<base::string16> email_values; | |
| 1627 full_profile.GetMultiInfo( | |
| 1628 AutofillType(EMAIL_ADDRESS), "en-US", &email_values); | |
| 1629 ASSERT_EQ(2U, email_values.size()); | |
| 1630 EXPECT_EQ(new_email, email_values[1]); | |
| 1631 } | |
| 1632 | |
| 1633 TEST_F(AutofillDialogControllerTest, VerifyCvv) { | 1595 TEST_F(AutofillDialogControllerTest, VerifyCvv) { |
| 1634 EXPECT_CALL(*controller()->GetTestingWalletClient(), | 1596 EXPECT_CALL(*controller()->GetTestingWalletClient(), |
| 1635 GetFullWallet(_)).Times(1); | 1597 GetFullWallet(_)).Times(1); |
| 1636 EXPECT_CALL(*controller()->GetTestingWalletClient(), | 1598 EXPECT_CALL(*controller()->GetTestingWalletClient(), |
| 1637 AuthenticateInstrument(_, _)).Times(1); | 1599 AuthenticateInstrument(_, _)).Times(1); |
| 1638 | 1600 |
| 1639 SubmitWithWalletItems(CompleteAndValidWalletItems()); | 1601 SubmitWithWalletItems(CompleteAndValidWalletItems()); |
| 1640 | 1602 |
| 1641 EXPECT_TRUE(NotificationsOfType(DialogNotification::REQUIRED_ACTION).empty()); | 1603 EXPECT_TRUE(NotificationsOfType(DialogNotification::REQUIRED_ACTION).empty()); |
| 1642 EXPECT_TRUE(controller()->SectionIsActive(SECTION_SHIPPING)); | 1604 EXPECT_TRUE(controller()->SectionIsActive(SECTION_SHIPPING)); |
| (...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2351 controller()->TabActivated(); | 2313 controller()->TabActivated(); |
| 2352 | 2314 |
| 2353 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems()); | 2315 controller()->OnDidGetWalletItems(wallet::GetTestWalletItems()); |
| 2354 | 2316 |
| 2355 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING)); | 2317 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING)); |
| 2356 EXPECT_EQ( | 2318 EXPECT_EQ( |
| 2357 3, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount()); | 2319 3, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount()); |
| 2358 } | 2320 } |
| 2359 | 2321 |
| 2360 } // namespace autofill | 2322 } // namespace autofill |
| OLD | NEW |