| Index: chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| diff --git a/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| index 09e70791e5500db1960e9a05fc353cf7da68f011..de291bece590e64a56d80b9212a9ad8cf4634474 100644
|
| --- a/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| +++ b/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| @@ -25,6 +25,7 @@ namespace payments {
|
|
|
| namespace {
|
|
|
| +const char kLocale[] = "en_US";
|
| const char kNameFull[] = "Bob Jones";
|
| const char kHomeAddress[] = "42 Answers-All Avenue";
|
| const char kHomeCity[] = "Question-City";
|
| @@ -32,6 +33,8 @@ const char kHomeZip[] = "ziiiiiip";
|
| const char kHomePhone[] = "5755555555"; // 5555555555 is invalid :-(.
|
| const char kFormattedHomePhone[] = "(575) 555-5555";
|
| const char kAnyState[] = "any state";
|
| +const char kCountryWithoutStates[] = "Albania";
|
| +const char kCountryWithoutStatesPhoneNumber[] = "42223446";
|
|
|
| } // namespace
|
|
|
| @@ -83,15 +86,16 @@ class PaymentRequestShippingAddressEditorTest
|
| SetFieldTestValue(autofill::PHONE_HOME_WHOLE_NUMBER);
|
| }
|
|
|
| - // First check if the requested field of |type| exists, if so set it's value
|
| - // in |textfield_text| and return true.
|
| + // First check if the requested field of |type| exists, if so, set its value
|
| + // in |textfield_text| if it's not null, and return true.
|
| bool GetEditorTextfieldValueIfExists(autofill::ServerFieldType type,
|
| base::string16* textfield_text) {
|
| ValidatingTextfield* textfield = static_cast<ValidatingTextfield*>(
|
| dialog_view()->GetViewByID(static_cast<int>(type)));
|
| if (!textfield)
|
| return false;
|
| - *textfield_text = textfield->text();
|
| + if (textfield_text)
|
| + *textfield_text = textfield->text();
|
| return true;
|
| }
|
|
|
| @@ -336,7 +340,7 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| static_cast<views::Combobox*>(dialog_view()->GetViewByID(
|
| static_cast<int>(autofill::ADDRESS_HOME_STATE)));
|
| autofill::RegionComboboxModel* region_model = nullptr;
|
| - // Some countries don't have a state combo box.
|
| + // Some countries don't have a state combobox.
|
| if (region_combobox) {
|
| autofill::RegionComboboxModel* region_model =
|
| static_cast<autofill::RegionComboboxModel*>(region_combobox->model());
|
| @@ -377,7 +381,7 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| unset_types.erase(type);
|
| }
|
|
|
| - // Make sure the country combo box was properly reset to the chosen country.
|
| + // Make sure the country combobox was properly reset to the chosen country.
|
| country_combobox = static_cast<views::Combobox*>(dialog_view()->GetViewByID(
|
| static_cast<int>(autofill::ADDRESS_HOME_COUNTRY)));
|
| DCHECK(country_combobox);
|
| @@ -481,7 +485,10 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| // Add incomplete address.
|
| autofill::AutofillProfile profile;
|
| profile.SetInfo(autofill::AutofillType(autofill::NAME_FULL),
|
| - base::ASCIIToUTF16(kNameFull), "fr_CA");
|
| + base::ASCIIToUTF16(kNameFull), kLocale);
|
| + // Also set non-default country, to make sure proper fields will be used.
|
| + profile.SetInfo(autofill::AutofillType(autofill::ADDRESS_HOME_COUNTRY),
|
| + base::ASCIIToUTF16(kCountryWithoutStates), kLocale);
|
| AddAutofillProfile(profile);
|
|
|
| InvokePaymentRequestUI();
|
| @@ -499,11 +506,16 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
|
|
| EXPECT_EQ(base::ASCIIToUTF16(kNameFull),
|
| GetEditorTextfieldValue(autofill::NAME_FULL));
|
| - EXPECT_EQ(base::ASCIIToUTF16(""),
|
| - GetEditorTextfieldValue(autofill::ADDRESS_HOME_ZIP));
|
| + // There are no state field in |kCountryWithoutStates|.
|
| + EXPECT_FALSE(
|
| + GetEditorTextfieldValueIfExists(autofill::ADDRESS_HOME_STATE, nullptr));
|
|
|
| // Set all required fields.
|
| SetCommonFields();
|
| + // The phone number must be replaced by one that is valid for
|
| + // |kCountryWithoutStates|.
|
| + SetEditorTextfieldValue(base::ASCIIToUTF16(kCountryWithoutStatesPhoneNumber),
|
| + autofill::PHONE_HOME_WHOLE_NUMBER);
|
|
|
| // Verifying the data is in the DB.
|
| autofill::PersonalDataManager* personal_data_manager = GetDataManager();
|
| @@ -518,6 +530,14 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| ClickOnDialogViewAndWait(DialogViewID::SAVE_ADDRESS_BUTTON);
|
| data_loop.Run();
|
|
|
| + ASSERT_EQ(1UL, personal_data_manager->GetProfiles().size());
|
| + autofill::AutofillProfile* saved_profile =
|
| + personal_data_manager->GetProfiles()[0];
|
| + DCHECK(saved_profile);
|
| + EXPECT_EQ(
|
| + base::ASCIIToUTF16(kCountryWithoutStates),
|
| + saved_profile->GetInfo(
|
| + autofill::AutofillType(autofill::ADDRESS_HOME_COUNTRY), kLocale));
|
| ExpectExistingRequiredFields(/*unset_types=*/nullptr,
|
| /*accept_empty_phone_number=*/false);
|
|
|
|
|