| Index: chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| index 98a6e04a68e40a9b364cc04836ff7e53b3231c48..5339a3f204f14099d9e02740b9797be9f785bfc2 100644
|
| --- a/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| +++ b/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| @@ -20,6 +20,7 @@
|
| #include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h"
|
| #include "chrome/browser/ui/autofill/mock_new_credit_card_bubble_controller.h"
|
| #include "chrome/browser/ui/autofill/test_generated_credit_card_bubble_controller.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/common/render_messages.h"
|
| #include "chrome/test/base/chrome_render_view_host_test_harness.h"
|
| @@ -90,17 +91,6 @@ const char kTestCCNumberIncomplete[] = "4111111111";
|
| // Credit card number fails Luhn check.
|
| const char kTestCCNumberInvalid[] = "4111111111111112";
|
|
|
| -// Sets the value of |type| in |outputs| to |value|.
|
| -void SetOutputValue(const DetailInputs& inputs,
|
| - ServerFieldType type,
|
| - const base::string16& value,
|
| - FieldValueMap* outputs) {
|
| - for (size_t i = 0; i < inputs.size(); ++i) {
|
| - if (inputs[i].type == type)
|
| - (*outputs)[type] = value;
|
| - }
|
| -}
|
| -
|
| // Copies the initial values from |inputs| into |outputs|.
|
| void CopyInitialValues(const DetailInputs& inputs, FieldValueMap* outputs) {
|
| for (size_t i = 0; i < inputs.size(); ++i) {
|
| @@ -173,6 +163,7 @@ class TestAutofillDialogView : public AutofillDialogView {
|
| }
|
|
|
| virtual void UpdateSection(DialogSection section) OVERRIDE {
|
| + section_updates_[section]++;
|
| EXPECT_GE(updates_started_, 1);
|
| }
|
|
|
| @@ -218,8 +209,17 @@ class TestAutofillDialogView : public AutofillDialogView {
|
| save_details_locally_checked_ = checked;
|
| }
|
|
|
| + void ClearSectionUpdates() {
|
| + section_updates_.clear();
|
| + }
|
| +
|
| + std::map<DialogSection, size_t> section_updates() const {
|
| + return section_updates_;
|
| + }
|
| +
|
| private:
|
| std::map<DialogSection, FieldValueMap> outputs_;
|
| + std::map<DialogSection, size_t> section_updates_;
|
|
|
| int updates_started_;
|
| bool save_details_locally_checked_;
|
| @@ -304,6 +304,7 @@ class TestAutofillDialogController
|
| MOCK_METHOD0(LoadRiskFingerprintData, void());
|
| using AutofillDialogControllerImpl::OnDidLoadRiskFingerprintData;
|
| using AutofillDialogControllerImpl::IsEditingExistingData;
|
| + using AutofillDialogControllerImpl::IsManuallyEditingSection;
|
| using AutofillDialogControllerImpl::IsSubmitPausedOn;
|
| using AutofillDialogControllerImpl::NOT_CHECKED;
|
| using AutofillDialogControllerImpl::SignedInState;
|
| @@ -525,11 +526,7 @@ class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness {
|
| const std::string& cc_number,
|
| bool should_pass) {
|
| FieldValueMap outputs;
|
| - const DetailInputs& inputs =
|
| - controller()->RequestedFieldsForSection(section);
|
| -
|
| - SetOutputValue(inputs, CREDIT_CARD_NUMBER,
|
| - ASCIIToUTF16(cc_number), &outputs);
|
| + outputs[CREDIT_CARD_NUMBER] = UTF8ToUTF16(cc_number);
|
| ValidityMessages messages =
|
| controller()->InputsAreValid(section, outputs);
|
| EXPECT_EQ(should_pass, !messages.HasSureError(CREDIT_CARD_NUMBER));
|
| @@ -574,6 +571,44 @@ class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness {
|
| return static_cast<SuggestionsMenuModel*>(model);
|
| }
|
|
|
| + void SubmitAndVerifyShippingAndBillingResults() {
|
| + // Test after setting use billing for shipping.
|
| + UseBillingForShipping();
|
| +
|
| + controller()->OnAccept();
|
| +
|
| + ASSERT_EQ(20U, form_structure()->field_count());
|
| + EXPECT_EQ(ADDRESS_HOME_COUNTRY,
|
| + form_structure()->field(11)->Type().GetStorableType());
|
| + EXPECT_EQ(ADDRESS_BILLING, form_structure()->field(11)->Type().group());
|
| + EXPECT_EQ(ADDRESS_HOME_COUNTRY,
|
| + form_structure()->field(18)->Type().GetStorableType());
|
| + EXPECT_EQ(ADDRESS_HOME, form_structure()->field(18)->Type().group());
|
| + string16 billing_country = form_structure()->field(11)->value;
|
| + EXPECT_EQ(2U, billing_country.size());
|
| + string16 shipping_country = form_structure()->field(18)->value;
|
| + EXPECT_EQ(2U, shipping_country.size());
|
| + EXPECT_FALSE(billing_country.empty());
|
| + EXPECT_FALSE(shipping_country.empty());
|
| + EXPECT_EQ(billing_country, shipping_country);
|
| +
|
| + EXPECT_EQ(CREDIT_CARD_NAME,
|
| + form_structure()->field(1)->Type().GetStorableType());
|
| + string16 cc_name = form_structure()->field(1)->value;
|
| + EXPECT_EQ(NAME_FULL, form_structure()->field(6)->Type().GetStorableType());
|
| + EXPECT_EQ(NAME_BILLING, form_structure()->field(6)->Type().group());
|
| + string16 billing_name = form_structure()->field(6)->value;
|
| + EXPECT_EQ(NAME_FULL, form_structure()->field(13)->Type().GetStorableType());
|
| + EXPECT_EQ(NAME, form_structure()->field(13)->Type().group());
|
| + string16 shipping_name = form_structure()->field(13)->value;
|
| +
|
| + EXPECT_FALSE(cc_name.empty());
|
| + EXPECT_FALSE(billing_name.empty());
|
| + EXPECT_FALSE(shipping_name.empty());
|
| + EXPECT_EQ(cc_name, billing_name);
|
| + EXPECT_EQ(cc_name, shipping_name);
|
| + }
|
| +
|
| TestAutofillDialogController* controller() { return controller_.get(); }
|
|
|
| const FormStructure* form_structure() { return form_structure_; }
|
| @@ -662,50 +697,45 @@ TEST_F(AutofillDialogControllerTest, PhoneNumberValidation) {
|
| }
|
|
|
| // Make sure country is United States.
|
| - SetOutputValue(inputs, address, ASCIIToUTF16("United States"), &outputs);
|
| + outputs[address] = ASCIIToUTF16("United States");
|
|
|
| // Existing data should have no errors.
|
| ValidityMessages messages = controller()->InputsAreValid(section, outputs);
|
| EXPECT_FALSE(HasAnyError(messages, phone));
|
|
|
| // Input an empty phone number.
|
| - SetOutputValue(inputs, phone, base::string16(), &outputs);
|
| + outputs[phone] = base::string16();
|
| messages = controller()->InputsAreValid(section, outputs);
|
| EXPECT_TRUE(HasUnsureError(messages, phone));
|
|
|
| // Input an invalid phone number.
|
| - SetOutputValue(inputs, phone, ASCIIToUTF16("ABC"), &outputs);
|
| + outputs[phone] = ASCIIToUTF16("ABC");
|
| messages = controller()->InputsAreValid(section, outputs);
|
| EXPECT_TRUE(messages.HasSureError(phone));
|
|
|
| // Input a local phone number.
|
| - SetOutputValue(inputs, phone, ASCIIToUTF16("2155546699"), &outputs);
|
| + outputs[phone] = ASCIIToUTF16("2155546699");
|
| messages = controller()->InputsAreValid(section, outputs);
|
| EXPECT_FALSE(HasAnyError(messages, phone));
|
|
|
| // Input an invalid local phone number.
|
| - SetOutputValue(inputs, phone, ASCIIToUTF16("215554669"), &outputs);
|
| + outputs[phone] = ASCIIToUTF16("215554669");
|
| messages = controller()->InputsAreValid(section, outputs);
|
| EXPECT_TRUE(messages.HasSureError(phone));
|
|
|
| // Input an international phone number.
|
| - SetOutputValue(inputs, phone, ASCIIToUTF16("+33 892 70 12 39"), &outputs);
|
| + outputs[phone] = ASCIIToUTF16("+33 892 70 12 39");
|
| messages = controller()->InputsAreValid(section, outputs);
|
| EXPECT_FALSE(HasAnyError(messages, phone));
|
|
|
| // Input an invalid international phone number.
|
| - SetOutputValue(inputs, phone,
|
| - ASCIIToUTF16("+112333 892 70 12 39"), &outputs);
|
| + outputs[phone] = ASCIIToUTF16("+112333 892 70 12 39");
|
| messages = controller()->InputsAreValid(section, outputs);
|
| EXPECT_TRUE(messages.HasSureError(phone));
|
| }
|
| }
|
|
|
| TEST_F(AutofillDialogControllerTest, ExpirationDateValidity) {
|
| - FieldValueMap outputs;
|
| - const DetailInputs& inputs =
|
| - controller()->RequestedFieldsForSection(SECTION_CC_BILLING);
|
| -
|
| ui::ComboboxModel* exp_year_model =
|
| controller()->ComboboxModelForAutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR);
|
| ui::ComboboxModel* exp_month_model =
|
| @@ -721,9 +751,9 @@ TEST_F(AutofillDialogControllerTest, ExpirationDateValidity) {
|
| base::string16 other_month_value =
|
| exp_month_model->GetItemAt(exp_month_model->GetItemCount() - 1);
|
|
|
| - SetOutputValue(inputs, CREDIT_CARD_EXP_MONTH, default_month_value, &outputs);
|
| - SetOutputValue(inputs, CREDIT_CARD_EXP_4_DIGIT_YEAR,
|
| - default_year_value, &outputs);
|
| + FieldValueMap outputs;
|
| + outputs[CREDIT_CARD_EXP_MONTH] = default_month_value;
|
| + outputs[CREDIT_CARD_EXP_4_DIGIT_YEAR] = default_year_value;
|
|
|
| // Expiration default values generate unsure validation errors (but not sure).
|
| ValidityMessages messages = controller()->InputsAreValid(SECTION_CC_BILLING,
|
| @@ -732,18 +762,14 @@ TEST_F(AutofillDialogControllerTest, ExpirationDateValidity) {
|
| EXPECT_TRUE(HasUnsureError(messages, CREDIT_CARD_EXP_MONTH));
|
|
|
| // Expiration date with default month fails.
|
| - SetOutputValue(inputs,
|
| - CREDIT_CARD_EXP_4_DIGIT_YEAR,
|
| - other_year_value,
|
| - &outputs);
|
| + outputs[CREDIT_CARD_EXP_4_DIGIT_YEAR] = other_year_value;
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, outputs);
|
| EXPECT_FALSE(HasUnsureError(messages, CREDIT_CARD_EXP_4_DIGIT_YEAR));
|
| EXPECT_TRUE(HasUnsureError(messages, CREDIT_CARD_EXP_MONTH));
|
|
|
| // Expiration date with default year fails.
|
| - SetOutputValue(inputs, CREDIT_CARD_EXP_MONTH, other_month_value, &outputs);
|
| - SetOutputValue(inputs, CREDIT_CARD_EXP_4_DIGIT_YEAR,
|
| - default_year_value, &outputs);
|
| + outputs[CREDIT_CARD_EXP_MONTH] = other_month_value;
|
| + outputs[CREDIT_CARD_EXP_4_DIGIT_YEAR] = default_year_value;
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, outputs);
|
| EXPECT_TRUE(HasUnsureError(messages, CREDIT_CARD_EXP_4_DIGIT_YEAR));
|
| EXPECT_FALSE(HasUnsureError(messages, CREDIT_CARD_EXP_MONTH));
|
| @@ -753,18 +779,15 @@ TEST_F(AutofillDialogControllerTest, BillingNameValidation) {
|
| // Construct FieldValueMap from AutofillProfile data.
|
| SwitchToAutofill();
|
|
|
| - FieldValueMap outputs;
|
| - const DetailInputs& inputs =
|
| - controller()->RequestedFieldsForSection(SECTION_BILLING);
|
| -
|
| // Input an empty billing name.
|
| - SetOutputValue(inputs, NAME_BILLING_FULL, base::string16(), &outputs);
|
| + FieldValueMap outputs;
|
| + outputs[NAME_BILLING_FULL] = base::string16();
|
| ValidityMessages messages = controller()->InputsAreValid(SECTION_BILLING,
|
| outputs);
|
| EXPECT_TRUE(HasUnsureError(messages, NAME_BILLING_FULL));
|
|
|
| // Input a non-empty billing name.
|
| - SetOutputValue(inputs, NAME_BILLING_FULL, ASCIIToUTF16("Bob"), &outputs);
|
| + outputs[NAME_BILLING_FULL] = ASCIIToUTF16("Bob");
|
| messages = controller()->InputsAreValid(SECTION_BILLING, outputs);
|
| EXPECT_FALSE(HasAnyError(messages, NAME_BILLING_FULL));
|
|
|
| @@ -777,40 +800,31 @@ TEST_F(AutofillDialogControllerTest, BillingNameValidation) {
|
| wallet::GetTestWalletItems(wallet::AMEX_DISALLOWED);
|
| controller()->OnDidGetWalletItems(wallet_items.Pass());
|
|
|
| - FieldValueMap wallet_outputs;
|
| - const DetailInputs& wallet_inputs =
|
| - controller()->RequestedFieldsForSection(SECTION_CC_BILLING);
|
| -
|
| // Input an empty billing name. Data source should not change this behavior.
|
| - SetOutputValue(wallet_inputs, NAME_BILLING_FULL,
|
| - base::string16(), &wallet_outputs);
|
| + FieldValueMap wallet_outputs;
|
| + wallet_outputs[NAME_BILLING_FULL] = base::string16();
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, wallet_outputs);
|
| EXPECT_TRUE(HasUnsureError(messages, NAME_BILLING_FULL));
|
|
|
| // Input a one name billing name. Wallet does not currently support this.
|
| - SetOutputValue(wallet_inputs, NAME_BILLING_FULL,
|
| - ASCIIToUTF16("Bob"), &wallet_outputs);
|
| + wallet_outputs[NAME_BILLING_FULL] = ASCIIToUTF16("Bob");
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, wallet_outputs);
|
| EXPECT_TRUE(messages.HasSureError(NAME_BILLING_FULL));
|
|
|
| // Input a two name billing name.
|
| - SetOutputValue(wallet_inputs, NAME_BILLING_FULL,
|
| - ASCIIToUTF16("Bob Barker"), &wallet_outputs);
|
| + wallet_outputs[NAME_BILLING_FULL] = ASCIIToUTF16("Bob Barker");
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, wallet_outputs);
|
| EXPECT_FALSE(HasAnyError(messages, NAME_BILLING_FULL));
|
|
|
| // Input a more than two name billing name.
|
| - SetOutputValue(wallet_inputs, NAME_BILLING_FULL,
|
| - ASCIIToUTF16("John Jacob Jingleheimer Schmidt"),
|
| - &wallet_outputs);
|
| + wallet_outputs[NAME_BILLING_FULL] =
|
| + ASCIIToUTF16("John Jacob Jingleheimer Schmidt"),
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, wallet_outputs);
|
| EXPECT_FALSE(HasAnyError(messages, NAME_BILLING_FULL));
|
|
|
| // Input a billing name with lots of crazy whitespace.
|
| - SetOutputValue(
|
| - wallet_inputs, NAME_BILLING_FULL,
|
| + wallet_outputs[NAME_BILLING_FULL] =
|
| ASCIIToUTF16(" \\n\\r John \\n Jacob Jingleheimer \\t Schmidt "),
|
| - &wallet_outputs);
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, wallet_outputs);
|
| EXPECT_FALSE(HasAnyError(messages, NAME_BILLING_FULL));
|
| }
|
| @@ -1137,45 +1151,35 @@ TEST_F(AutofillDialogControllerTest, DontUseBillingAsShipping) {
|
| // Test selecting UseBillingForShipping.
|
| TEST_F(AutofillDialogControllerTest, UseBillingAsShipping) {
|
| SwitchToAutofill();
|
| +
|
| AutofillProfile full_profile(test::GetVerifiedProfile());
|
| - AutofillProfile full_profile2(test::GetVerifiedProfile2());
|
| - CreditCard credit_card(test::GetVerifiedCreditCard());
|
| controller()->GetTestingManager()->AddTestingProfile(&full_profile);
|
| +
|
| + AutofillProfile full_profile2(test::GetVerifiedProfile2());
|
| controller()->GetTestingManager()->AddTestingProfile(&full_profile2);
|
| +
|
| + CreditCard credit_card(test::GetVerifiedCreditCard());
|
| controller()->GetTestingManager()->AddTestingCreditCard(&credit_card);
|
|
|
| - // Test after setting use billing for shipping.
|
| - UseBillingForShipping();
|
| + ASSERT_FALSE(controller()->IsManuallyEditingSection(SECTION_CC));
|
| + ASSERT_FALSE(controller()->IsManuallyEditingSection(SECTION_BILLING));
|
|
|
| - controller()->OnAccept();
|
| - ASSERT_EQ(20U, form_structure()->field_count());
|
| - EXPECT_EQ(ADDRESS_HOME_STATE,
|
| - form_structure()->field(9)->Type().GetStorableType());
|
| - EXPECT_EQ(ADDRESS_BILLING, form_structure()->field(9)->Type().group());
|
| - EXPECT_EQ(ADDRESS_HOME_STATE,
|
| - form_structure()->field(16)->Type().GetStorableType());
|
| - EXPECT_EQ(ADDRESS_HOME, form_structure()->field(16)->Type().group());
|
| - string16 billing_state = form_structure()->field(9)->value;
|
| - string16 shipping_state = form_structure()->field(16)->value;
|
| - EXPECT_FALSE(billing_state.empty());
|
| - EXPECT_FALSE(shipping_state.empty());
|
| - EXPECT_EQ(billing_state, shipping_state);
|
| + SubmitAndVerifyShippingAndBillingResults();
|
| +}
|
|
|
| - EXPECT_EQ(CREDIT_CARD_NAME,
|
| - form_structure()->field(1)->Type().GetStorableType());
|
| - string16 cc_name = form_structure()->field(1)->value;
|
| - EXPECT_EQ(NAME_FULL, form_structure()->field(6)->Type().GetStorableType());
|
| - EXPECT_EQ(NAME_BILLING, form_structure()->field(6)->Type().group());
|
| - string16 billing_name = form_structure()->field(6)->value;
|
| - EXPECT_EQ(NAME_FULL, form_structure()->field(13)->Type().GetStorableType());
|
| - EXPECT_EQ(NAME, form_structure()->field(13)->Type().group());
|
| - string16 shipping_name = form_structure()->field(13)->value;
|
| +TEST_F(AutofillDialogControllerTest, UseBillingAsShippingManualInput) {
|
| + SwitchToAutofill();
|
|
|
| - EXPECT_FALSE(cc_name.empty());
|
| - EXPECT_FALSE(billing_name.empty());
|
| - EXPECT_FALSE(shipping_name.empty());
|
| - EXPECT_EQ(cc_name, billing_name);
|
| - EXPECT_EQ(cc_name, shipping_name);
|
| + ASSERT_TRUE(controller()->IsManuallyEditingSection(SECTION_CC));
|
| + ASSERT_TRUE(controller()->IsManuallyEditingSection(SECTION_BILLING));
|
| +
|
| + CreditCard credit_card(test::GetVerifiedCreditCard());
|
| + FillInputs(SECTION_CC, credit_card);
|
| +
|
| + AutofillProfile full_profile(test::GetVerifiedProfile());
|
| + FillInputs(SECTION_BILLING, full_profile);
|
| +
|
| + SubmitAndVerifyShippingAndBillingResults();
|
| }
|
|
|
| // Tests that shipping and billing telephone fields are supported, and filled
|
| @@ -2194,12 +2198,11 @@ TEST_F(AutofillDialogControllerTest, WalletExpiredCard) {
|
|
|
| EXPECT_TRUE(controller()->IsEditingExistingData(SECTION_CC_BILLING));
|
|
|
| - // Use |SetOutputValue()| to put the right ServerFieldTypes into the map.
|
| const DetailInputs& inputs =
|
| controller()->RequestedFieldsForSection(SECTION_CC_BILLING);
|
| FieldValueMap outputs;
|
| CopyInitialValues(inputs, &outputs);
|
| - SetOutputValue(inputs, COMPANY_NAME, ASCIIToUTF16("Bluth Company"), &outputs);
|
| + outputs[COMPANY_NAME] = ASCIIToUTF16("Bluth Company");
|
|
|
| // The local inputs are invalid because the server said so. They'll
|
| // stay invalid until they differ from the remotely fetched model.
|
| @@ -2210,15 +2213,14 @@ TEST_F(AutofillDialogControllerTest, WalletExpiredCard) {
|
|
|
| // Make the local input year differ from the instrument.
|
| CopyInitialValues(inputs, &outputs);
|
| - SetOutputValue(inputs, CREDIT_CARD_EXP_4_DIGIT_YEAR,
|
| - ASCIIToUTF16("3002"), &outputs);
|
| + outputs[CREDIT_CARD_EXP_4_DIGIT_YEAR] = ASCIIToUTF16("3002");
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, outputs);
|
| EXPECT_FALSE(HasAnyError(messages, CREDIT_CARD_EXP_MONTH));
|
| EXPECT_FALSE(HasAnyError(messages, CREDIT_CARD_EXP_4_DIGIT_YEAR));
|
|
|
| // Make the local input month differ from the instrument.
|
| CopyInitialValues(inputs, &outputs);
|
| - SetOutputValue(inputs, CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("06"), &outputs);
|
| + outputs[CREDIT_CARD_EXP_MONTH] = ASCIIToUTF16("06");
|
| messages = controller()->InputsAreValid(SECTION_CC_BILLING, outputs);
|
| EXPECT_FALSE(HasAnyError(messages, CREDIT_CARD_EXP_MONTH));
|
| EXPECT_FALSE(HasAnyError(messages, CREDIT_CARD_EXP_4_DIGIT_YEAR));
|
| @@ -2622,7 +2624,7 @@ TEST_F(AutofillDialogControllerTest, InputEditability) {
|
| }
|
|
|
| // User changes the billing address; same story.
|
| - SetOutputValue(inputs, ADDRESS_BILLING_ZIP, ASCIIToUTF16("77025"), &outputs);
|
| + outputs[ADDRESS_BILLING_ZIP] = ASCIIToUTF16("77025");
|
| controller()->GetView()->SetUserInput(SECTION_CC_BILLING, outputs);
|
| for (size_t i = 0; i < arraysize(sections); ++i) {
|
| const DetailInputs& inputs =
|
| @@ -2639,7 +2641,7 @@ TEST_F(AutofillDialogControllerTest, InputEditability) {
|
|
|
| // User changes a detail of the CC itself (expiration date), CVV is now
|
| // editable (and mandatory).
|
| - SetOutputValue(inputs, CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("06"), &outputs);
|
| + outputs[CREDIT_CARD_EXP_MONTH] = ASCIIToUTF16("06");
|
| controller()->GetView()->SetUserInput(SECTION_CC_BILLING, outputs);
|
| for (size_t i = 0; i < arraysize(sections); ++i) {
|
| const DetailInputs& inputs =
|
| @@ -2704,4 +2706,26 @@ TEST_F(AutofillDialogControllerTest, PassiveAuthFailure) {
|
| EXPECT_FALSE(controller()->ShouldShowSpinner());
|
| }
|
|
|
| +TEST_F(AutofillDialogControllerTest, CountryChangeUpdatesSection) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + ::switches::kEnableAutofillAddressInternationalization);
|
| + Reset();
|
| +
|
| + controller()->GetView()->ClearSectionUpdates();
|
| +
|
| + controller()->ComboboxItemSelected(
|
| + controller()->ComboboxModelForAutofillType(ADDRESS_HOME_COUNTRY),
|
| + SECTION_SHIPPING,
|
| + 3);
|
| + EXPECT_EQ(1U, controller()->GetView()->section_updates()[SECTION_SHIPPING]);
|
| + EXPECT_EQ(0U, controller()->GetView()->section_updates()[SECTION_BILLING]);
|
| +
|
| + controller()->ComboboxItemSelected(
|
| + controller()->ComboboxModelForAutofillType(ADDRESS_BILLING_COUNTRY),
|
| + SECTION_BILLING,
|
| + 3);
|
| + EXPECT_EQ(1U, controller()->GetView()->section_updates()[SECTION_BILLING]);
|
| + EXPECT_EQ(1U, controller()->GetView()->section_updates()[SECTION_SHIPPING]);
|
| +}
|
| +
|
| } // namespace autofill
|
|
|