Home | History | Annotate | Download | only in browser
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_TEST_UTILS_H_
      6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_TEST_UTILS_H_
      7 
      8 #include "base/memory/scoped_ptr.h"
      9 
     10 class PrefService;
     11 
     12 namespace autofill {
     13 
     14 class AutofillProfile;
     15 class CreditCard;
     16 struct FormData;
     17 struct FormFieldData;
     18 
     19 // Common utilities shared amongst Autofill tests.
     20 namespace test {
     21 
     22 // Returns a PrefService that can be used for Autofill-related testing in
     23 // contexts where the PrefService would otherwise have to be constructed
     24 // manually (e.g., in unit tests within Autofill core code). The returned
     25 // PrefService has had Autofill preferences registered on its associated
     26 // registry.
     27 scoped_ptr<PrefService> PrefServiceForTesting();
     28 
     29 // Provides a quick way to populate a FormField with c-strings.
     30 void CreateTestFormField(const char* label,
     31                          const char* name,
     32                          const char* value,
     33                          const char* type,
     34                          FormFieldData* field);
     35 
     36 // Populates |form| with data corresponding to a simple address form.
     37 // Note that this actually appends fields to the form data, which can be useful
     38 // for building up more complex test forms.
     39 void CreateTestAddressFormData(FormData* form);
     40 
     41 // Returns a profile full of dummy info.
     42 AutofillProfile GetFullProfile();
     43 
     44 // Returns a profile full of dummy info, different to the above.
     45 AutofillProfile GetFullProfile2();
     46 
     47 // Returns a verified profile full of dummy info.
     48 AutofillProfile GetVerifiedProfile();
     49 
     50 // Returns a verified profile full of dummy info, different to the above.
     51 AutofillProfile GetVerifiedProfile2();
     52 
     53 // Returns a credit card full of dummy info.
     54 CreditCard GetCreditCard();
     55 
     56 // Returns a credit card full of dummy info, different to the above.
     57 CreditCard GetCreditCard2();
     58 
     59 // Returns a verified credit card full of dummy info.
     60 CreditCard GetVerifiedCreditCard();
     61 
     62 // Returns a verified credit card full of dummy info, different to the above.
     63 CreditCard GetVerifiedCreditCard2();
     64 
     65 // A unit testing utility that is common to a number of the Autofill unit
     66 // tests.  |SetProfileInfo| provides a quick way to populate a profile with
     67 // c-strings.
     68 void SetProfileInfo(AutofillProfile* profile,
     69     const char* first_name, const char* middle_name,
     70     const char* last_name, const char* email, const char* company,
     71     const char* address1, const char* address2, const char* city,
     72     const char* state, const char* zipcode, const char* country,
     73     const char* phone);
     74 
     75 void SetProfileInfoWithGuid(AutofillProfile* profile,
     76     const char* guid, const char* first_name, const char* middle_name,
     77     const char* last_name, const char* email, const char* company,
     78     const char* address1, const char* address2, const char* city,
     79     const char* state, const char* zipcode, const char* country,
     80     const char* phone);
     81 
     82 // A unit testing utility that is common to a number of the Autofill unit
     83 // tests.  |SetCreditCardInfo| provides a quick way to populate a credit card
     84 // with c-strings.
     85 void SetCreditCardInfo(CreditCard* credit_card,
     86     const char* name_on_card, const char* card_number,
     87     const char* expiration_month, const char* expiration_year);
     88 
     89 // TODO(isherman): We should do this automatically for all tests, not manually
     90 // on a per-test basis: http://crbug.com/57221
     91 // Disables or mocks out code that would otherwise reach out to system services.
     92 void DisableSystemServices(PrefService* prefs);
     93 
     94 }  // namespace test
     95 }  // namespace autofill
     96 
     97 #endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_TEST_UTILS_H_
     98