Index: chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
index 71bbfb853ed24859669f39c9724f863639105033..8a1279a60740801c4ff1c7b8d5446add1ecbca31 100644 |
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
@@ -1432,6 +1432,9 @@ IN_PROC_BROWSER_TEST_F(AutofillDialogControllerI18nTest, |
EXPECT_TRUE(SectionHasField(SECTION_SHIPPING, ADDRESS_HOME_SORTING_CODE)); |
} |
+// Changing the data source to or from Wallet preserves the shipping country, |
+// but not the billing country because Wallet only supports US billing |
+// addresses. |
IN_PROC_BROWSER_TEST_F(AutofillDialogControllerI18nTest, |
ChangingDataSourcePreservesCountry) { |
AutofillProfile verified_profile(test::GetVerifiedProfile()); |
@@ -1450,20 +1453,15 @@ IN_PROC_BROWSER_TEST_F(AutofillDialogControllerI18nTest, |
EXPECT_TRUE(controller()->IsPayingWithWallet()); |
- // Select "Add new billing/shipping address...". |
- controller()->MenuModelForSection(SECTION_CC_BILLING)->ActivatedAt(1); |
+ // Select "Add new shipping address...". |
controller()->MenuModelForSection(SECTION_SHIPPING)->ActivatedAt(2); |
scoped_ptr<AutofillDialogViewTester> view = GetViewTester(); |
ASSERT_EQ(ASCIIToUTF16("United States"), |
- view->GetTextContentsOfInput(ADDRESS_BILLING_COUNTRY)); |
- ASSERT_EQ(ASCIIToUTF16("United States"), |
view->GetTextContentsOfInput(ADDRESS_HOME_COUNTRY)); |
- // Switch both billing and shipping countries. |
- view->SetTextContentsOfInput(ADDRESS_BILLING_COUNTRY, ASCIIToUTF16("China")); |
- view->ActivateInput(ADDRESS_BILLING_COUNTRY); |
- view->SetTextContentsOfInput(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("France")); |
+ // Switch the shipping country. |
+ view->SetTextContentsOfInput(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("China")); |
view->ActivateInput(ADDRESS_HOME_COUNTRY); |
// Switch to using Autofill instead of Wallet. |
@@ -1472,26 +1470,32 @@ IN_PROC_BROWSER_TEST_F(AutofillDialogControllerI18nTest, |
EXPECT_FALSE(controller()->IsPayingWithWallet()); |
- // Countries should have stayed the same. |
+ // Shipping country should have stayed the same. |
EXPECT_EQ(ASCIIToUTF16("China"), |
- view->GetTextContentsOfInput(ADDRESS_BILLING_COUNTRY)); |
- EXPECT_EQ(ASCIIToUTF16("France"), |
view->GetTextContentsOfInput(ADDRESS_HOME_COUNTRY)); |
- |
ASSERT_TRUE( |
- SectionHasField(SECTION_BILLING, ADDRESS_BILLING_DEPENDENT_LOCALITY)); |
+ SectionHasField(SECTION_SHIPPING, ADDRESS_HOME_DEPENDENT_LOCALITY)); |
- view->SetTextContentsOfInput(ADDRESS_BILLING_COUNTRY, |
- ASCIIToUTF16("Antarctica")); |
+ controller()->MenuModelForSection(SECTION_BILLING)->ActivatedAt(1); |
+ view->SetTextContentsOfInput(ADDRESS_BILLING_COUNTRY, ASCIIToUTF16("China")); |
view->ActivateInput(ADDRESS_BILLING_COUNTRY); |
+ EXPECT_EQ(ASCIIToUTF16("China"), |
+ view->GetTextContentsOfInput(ADDRESS_BILLING_COUNTRY)); |
+ ASSERT_TRUE( |
+ SectionHasField(SECTION_BILLING, ADDRESS_BILLING_DEPENDENT_LOCALITY)); |
- // Select the first Wallet account. |
+ // Switch back to Wallet. Country should go back to US. |
account_chooser->ActivatedAt(0); |
- ASSERT_TRUE(controller()->IsManuallyEditingSection(SECTION_CC_BILLING)); |
- |
- // Verify that inputs are rebuilt for billing sections across changes. |
- EXPECT_FALSE( |
+ EXPECT_EQ(ASCIIToUTF16("United States"), |
+ view->GetTextContentsOfInput(ADDRESS_BILLING_COUNTRY)); |
+ ASSERT_FALSE( |
SectionHasField(SECTION_CC_BILLING, ADDRESS_BILLING_DEPENDENT_LOCALITY)); |
+ |
+ // Make sure shipping is still on China. |
+ EXPECT_EQ(ASCIIToUTF16("China"), |
+ view->GetTextContentsOfInput(ADDRESS_HOME_COUNTRY)); |
+ ASSERT_TRUE( |
+ SectionHasField(SECTION_SHIPPING, ADDRESS_HOME_DEPENDENT_LOCALITY)); |
} |
IN_PROC_BROWSER_TEST_F(AutofillDialogControllerI18nTest, AddNewResetsCountry) { |