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 09433dcaa3f95ef7a2da44f7feb8f0e3387f78f5..c9fc9cbf1198c5fc5fe8370b784cde505fe380d4 100644 |
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc |
@@ -672,11 +672,15 @@ IN_PROC_BROWSER_TEST_F(AutofillDialogControllerTest, FillInputFromAutofill) { |
full_profile.SetRawInfo(PHONE_HOME_WHOLE_NUMBER, formatted_phone); |
controller()->GetTestingManager()->AddTestingProfile(&full_profile); |
+ // Dialog is already asking for a new billing address. |
+ EXPECT_TRUE(controller()->IsManuallyEditingSection(SECTION_BILLING)); |
+ |
// Select "Add new shipping address...". |
ui::MenuModel* model = controller()->MenuModelForSection(SECTION_SHIPPING); |
model->ActivatedAt(model->GetItemCount() - 2); |
ASSERT_TRUE(controller()->IsManuallyEditingSection(SECTION_SHIPPING)); |
+ // Enter something in a shipping input. |
const DetailInputs& inputs = |
controller()->RequestedFieldsForSection(SECTION_SHIPPING); |
const ServerFieldType triggering_type = inputs[0].type; |
@@ -700,6 +704,21 @@ IN_PROC_BROWSER_TEST_F(AutofillDialogControllerTest, FillInputFromAutofill) { |
EXPECT_EQ(formatted_phone, view->GetTextContentsOfInput(inputs[i].type)); |
} |
+ // Inputs from the other section (billing) should be left alone. |
+ const DetailInputs& other_section_inputs = |
+ controller()->RequestedFieldsForSection(SECTION_BILLING); |
+ for (size_t i = 0; i < inputs.size(); ++i) { |
+ base::string16 input_value = |
+ view->GetTextContentsOfInput(other_section_inputs[i].type); |
+ // If there's a combobox, the string should be non-empty. |
+ if (controller()->ComboboxModelForAutofillType( |
+ other_section_inputs[i].type)) { |
+ EXPECT_NE(base::string16(), input_value); |
+ } else { |
+ EXPECT_EQ(base::string16(), input_value); |
+ } |
+ } |
+ |
// Now simulate some user edits and try again. |
std::vector<base::string16> expectations; |
for (size_t i = 0; i < inputs.size(); ++i) { |
@@ -1671,15 +1690,16 @@ IN_PROC_BROWSER_TEST_F(AutofillDialogControllerTest, |
ASSERT_EQ(ASCIIToUTF16("United States"), |
view->GetTextContentsOfInput(ADDRESS_HOME_COUNTRY)); |
- base::string16 name = full_profile.GetRawInfo(NAME_FULL); |
- view->SetTextContentsOfInput(NAME_FULL, name.substr(0, name.size() / 2)); |
- view->ActivateInput(NAME_FULL); |
- ASSERT_EQ(NAME_FULL, controller()->popup_input_type()); |
+ const ServerFieldType input_type = EMAIL_ADDRESS; |
+ base::string16 name = full_profile.GetRawInfo(input_type); |
+ view->SetTextContentsOfInput(input_type, name.substr(0, name.size() / 2)); |
+ view->ActivateInput(input_type); |
+ ASSERT_EQ(input_type, controller()->popup_input_type()); |
controller()->DidAcceptSuggestion(base::string16(), 0); |
EXPECT_EQ(ASCIIToUTF16("Germany"), |
view->GetTextContentsOfInput(ADDRESS_BILLING_COUNTRY)); |
- EXPECT_EQ(ASCIIToUTF16("Germany"), |
+ EXPECT_EQ(ASCIIToUTF16("United States"), |
view->GetTextContentsOfInput(ADDRESS_HOME_COUNTRY)); |
} |