Chromium Code Reviews| 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 c24646190e0147e9782e215f8ca03c2058c8a19f..799c053b554b28958b6f81e8822a48aeebccd0fd 100644 |
| --- a/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc |
| +++ b/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc |
| @@ -467,7 +467,8 @@ class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness { |
| void SetUpControllerWithFormData(const FormData& form_data) { |
| ResetControllerWithFormData(form_data); |
| controller()->Show(); |
| - if (!profile()->GetPrefs()->GetBoolean( |
| + if (controller() && |
| + !profile()->GetPrefs()->GetBoolean( |
| ::prefs::kAutofillDialogPayWithoutWallet)) { |
| EXPECT_CALL(*controller()->GetTestingWalletClient(), GetWalletItems()); |
| controller()->OnDidFetchWalletCookieValue(std::string()); |
| @@ -681,6 +682,42 @@ class AutofillDialogControllerTest : public ChromeRenderViewHostTestHarness { |
| } // namespace |
| +TEST_F(AutofillDialogControllerTest, RefuseToShowWithNoAutocompleteAttributes) { |
| + FormFieldData email_field; |
| + email_field.name = ASCIIToUTF16("email"); |
| + FormFieldData cc_field; |
| + cc_field.name = ASCIIToUTF16("cc"); |
| + FormFieldData billing_field; |
| + billing_field.name = ASCIIToUTF16("billing name"); |
| + |
| + FormData form_data; |
| + form_data.fields.push_back(email_field); |
| + form_data.fields.push_back(cc_field); |
| + form_data.fields.push_back(billing_field); |
| + |
| + SetUpControllerWithFormData(form_data); |
| + EXPECT_FALSE(controller()); |
| +} |
| + |
| +TEST_F(AutofillDialogControllerTest, RefuseToShowWithNoCcField) { |
| + FormFieldData shipping_tel; |
| + shipping_tel.autocomplete_attribute = "shipping tel"; |
| + |
| + FormData form_data; |
| + form_data.fields.push_back(shipping_tel); |
| + |
| + SetUpControllerWithFormData(form_data); |
| + EXPECT_FALSE(controller()); |
| + |
| + // Any cc- field will do. |
| + FormFieldData cc_field; |
| + cc_field.autocomplete_attribute = "cc-csc"; |
| + form_data.fields.push_back(cc_field); |
| + |
| + SetUpControllerWithFormData(form_data); |
| + EXPECT_TRUE(controller()); |
| +} |
|
Dan Beam
2014/04/10 17:54:43
these tests are great, but i meant checking that "
Evan Stade
2014/04/10 19:50:57
We don't need end-to-end tests to check that, we c
Dan Beam
2014/04/15 02:16:42
taking an extra hour (if that) to verify a part of
Evan Stade
2014/04/15 02:33:16
My preference for unit tests and regression-driven
|
| + |
| // Ensure the default ValidityMessage has the expected values. |
| TEST_F(AutofillDialogControllerTest, DefaultValidityMessage) { |
| ValidityMessages messages; |
| @@ -1315,10 +1352,13 @@ TEST_F(AutofillDialogControllerTest, BillingVsShippingPhoneNumber) { |
| shipping_tel.autocomplete_attribute = "shipping tel"; |
| FormFieldData billing_tel; |
| billing_tel.autocomplete_attribute = "billing tel"; |
| + FormFieldData cc_field; |
| + cc_field.autocomplete_attribute = "cc-csc"; |
| FormData form_data; |
| form_data.fields.push_back(shipping_tel); |
| form_data.fields.push_back(billing_tel); |
| + form_data.fields.push_back(cc_field); |
| SetUpControllerWithFormData(form_data); |
| SwitchToAutofill(); |
| @@ -1336,7 +1376,7 @@ TEST_F(AutofillDialogControllerTest, BillingVsShippingPhoneNumber) { |
| billing_model->ActivatedAt(1); |
| controller()->OnAccept(); |
| - ASSERT_EQ(2U, form_structure()->field_count()); |
| + ASSERT_EQ(3U, form_structure()->field_count()); |
| EXPECT_EQ(PHONE_HOME_WHOLE_NUMBER, |
| form_structure()->field(0)->Type().GetStorableType()); |
| EXPECT_EQ(PHONE_HOME, form_structure()->field(0)->Type().group()); |
| @@ -1365,12 +1405,15 @@ TEST_F(AutofillDialogControllerTest, BillingVsShippingStreetAddress) { |
| FormFieldData billing_address_textarea; |
| billing_address_textarea.autocomplete_attribute = "billing street-address"; |
| billing_address_textarea.form_control_type = "textarea"; |
| + FormFieldData cc_field; |
| + cc_field.autocomplete_attribute = "cc-csc"; |
| FormData form_data; |
| form_data.fields.push_back(shipping_address); |
| form_data.fields.push_back(billing_address); |
| form_data.fields.push_back(shipping_address_textarea); |
| form_data.fields.push_back(billing_address_textarea); |
| + form_data.fields.push_back(cc_field); |
| SetUpControllerWithFormData(form_data); |
| SwitchToAutofill(); |
| @@ -1388,7 +1431,7 @@ TEST_F(AutofillDialogControllerTest, BillingVsShippingStreetAddress) { |
| billing_model->ActivatedAt(1); |
| controller()->OnAccept(); |
| - ASSERT_EQ(4U, form_structure()->field_count()); |
| + ASSERT_EQ(5U, form_structure()->field_count()); |
| EXPECT_EQ(ADDRESS_HOME_STREET_ADDRESS, |
| form_structure()->field(0)->Type().GetStorableType()); |
| EXPECT_EQ(ADDRESS_HOME, form_structure()->field(0)->Type().group()); |
| @@ -3286,7 +3329,12 @@ TEST_F(AutofillDialogControllerTest, LimitedCountryChoices) { |
| field.option_values.push_back(ASCIIToUTF16("")); |
| field.option_contents.push_back(ASCIIToUTF16("Germany")); |
| field.option_values.push_back(ASCIIToUTF16("GRMNY")); |
| + |
| + FormFieldData cc_field; |
| + cc_field.autocomplete_attribute = "cc-csc"; |
| + |
| form_data.fields.push_back(field); |
| + form_data.fields.push_back(cc_field); |
| ResetControllerWithFormData(form_data); |
| controller()->Show(); |