Chromium Code Reviews| Index: components/autofill/core/browser/autofill_manager_unittest.cc |
| diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc |
| index b8466a9a9363d47ff56568b24cdd22f037bbeac3..688c5f6e79d064f95df4ed4f3a19d4645f6a3c8b 100644 |
| --- a/components/autofill/core/browser/autofill_manager_unittest.cc |
| +++ b/components/autofill/core/browser/autofill_manager_unittest.cc |
| @@ -214,39 +214,6 @@ class TestPersonalDataManager : public PersonalDataManager { |
| DISALLOW_COPY_AND_ASSIGN(TestPersonalDataManager); |
| }; |
| -// Populates |form| with data corresponding to a simple credit card form. |
| -// Note that this actually appends fields to the form data, which can be useful |
| -// for building up more complex test forms. |
| -void CreateTestCreditCardFormData(FormData* form, |
| - bool is_https, |
| - bool use_month_type) { |
| - form->name = ASCIIToUTF16("MyForm"); |
| - if (is_https) { |
| - form->origin = GURL("https://myform.com/form.html"); |
| - form->action = GURL("https://myform.com/submit.html"); |
| - } else { |
| - form->origin = GURL("http://myform.com/form.html"); |
| - form->action = GURL("http://myform.com/submit.html"); |
| - } |
| - form->user_submitted = true; |
| - |
| - FormFieldData field; |
| - test::CreateTestFormField("Name on Card", "nameoncard", "", "text", &field); |
| - form->fields.push_back(field); |
| - test::CreateTestFormField("Card Number", "cardnumber", "", "text", &field); |
| - form->fields.push_back(field); |
| - if (use_month_type) { |
| - test::CreateTestFormField( |
| - "Expiration Date", "ccmonth", "", "month", &field); |
| - form->fields.push_back(field); |
| - } else { |
| - test::CreateTestFormField("Expiration Date", "ccmonth", "", "text", &field); |
| - form->fields.push_back(field); |
| - test::CreateTestFormField("", "ccyear", "", "text", &field); |
| - form->fields.push_back(field); |
| - } |
| -} |
| - |
| void ExpectFilledField(const char* expected_label, |
| const char* expected_name, |
| const char* expected_value, |
| @@ -732,6 +699,57 @@ class AutofillManagerTest : public testing::Test { |
| return autofill_manager_->WillFillCreditCardNumber(form, field); |
| } |
| + // Populates |form| with data corresponding to a simple credit card form. |
| + // Note that this actually appends fields to the form data, which can be |
| + // useful for building up more complex test forms. |
| + void CreateTestCreditCardFormData(FormData* form, |
| + bool is_https, |
| + bool use_month_type) { |
| + form->name = ASCIIToUTF16("MyForm"); |
| + if (is_https) { |
| + form->origin = GURL("https://myform.com/form.html"); |
| + form->action = GURL("https://myform.com/submit.html"); |
| + } else { |
| + form->origin = GURL("http://myform.com/form.html"); |
| + form->action = GURL("http://myform.com/submit.html"); |
| + autofill_client_.SetContextSecurity(false); |
|
sigbjorn
2015/05/15 08:38:28
This line is the reason for moving this function i
|
| + } |
| + form->user_submitted = true; |
| + |
| + FormFieldData field; |
| + test::CreateTestFormField("Name on Card", "nameoncard", "", "text", &field); |
| + form->fields.push_back(field); |
| + test::CreateTestFormField("Card Number", "cardnumber", "", "text", &field); |
| + form->fields.push_back(field); |
| + if (use_month_type) { |
| + test::CreateTestFormField( |
| + "Expiration Date", "ccmonth", "", "month", &field); |
| + form->fields.push_back(field); |
| + } else { |
| + test::CreateTestFormField("Expiration Date", "ccmonth", "", "text", |
| + &field); |
| + form->fields.push_back(field); |
| + test::CreateTestFormField("", "ccyear", "", "text", &field); |
| + form->fields.push_back(field); |
| + } |
| + } |
| + |
| + // Tests if credit card data gets saved |
| + void TestSaveCreditCards(bool is_https) { |
| + // Set up our form data. |
| + FormData form; |
| + CreateTestCreditCardFormData(&form, is_https, false); |
| + std::vector<FormData> forms(1, form); |
| + FormsSeen(forms); |
| + |
| + // Edit the data, and submit |
| + form.fields[1].value = ASCIIToUTF16("4111111111111111"); |
| + form.fields[2].value = ASCIIToUTF16("11"); |
| + form.fields[3].value = ASCIIToUTF16("2017"); |
| + EXPECT_CALL(autofill_client_, ConfirmSaveCreditCard(_)).Times(1); |
| + FormSubmitted(form); |
| + } |
| + |
| protected: |
| base::MessageLoop message_loop_; |
| MockAutofillClient autofill_client_; |
| @@ -979,7 +997,7 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestionsNonCCNumber) { |
| } |
| // Test that we return a warning explaining that credit card profile suggestions |
| -// are unavailable when the form is not https. |
| +// are unavailable when the form is not secure. |
| TEST_F(AutofillManagerTest, GetCreditCardSuggestionsNonHTTPS) { |
| // Set up our form data. |
| FormData form; |
| @@ -2627,6 +2645,16 @@ TEST_F(AutofillManagerTest, FormSubmittedWithDefaultValues) { |
| EXPECT_EQ(1, personal_data_.num_times_save_imported_profile_called()); |
| } |
| +// Tests that credit card data are saved for forms on https |
| +TEST_F(AutofillManagerTest, ImportFormDataCreditCardHTTPS) { |
| + TestSaveCreditCards(true); |
| +} |
| + |
| +// Tests that credit card data are saved for forms on http |
| +TEST_F(AutofillManagerTest, ImportFormDataCreditCardHTTP) { |
| + TestSaveCreditCards(false); |
| +} |
| + |
| // Checks that resetting the auxiliary profile enabled preference does the right |
| // thing on all platforms. |
| TEST_F(AutofillManagerTest, AuxiliaryProfilesReset) { |