// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/autofill/autofill_common_test.h" #include "base/utf_string_conversions.h" #include "chrome/browser/autofill/autofill_profile.h" #include "chrome/browser/autofill/credit_card.h" #include "chrome/browser/password_manager/encryptor.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" #include "webkit/glue/form_field.h" namespace autofill_test { void CreateTestFormField(const char* label, const char* name, const char* value, const char* type, webkit_glue::FormField* field) { *field = webkit_glue::FormField(ASCIIToUTF16(label), ASCIIToUTF16(name), ASCIIToUTF16(value), ASCIIToUTF16(type), 0, false); } inline void check_and_set( FormGroup* profile, AutofillFieldType type, const char* value) { if (value) profile->SetInfo(type, ASCIIToUTF16(value)); } void SetProfileInfo(AutofillProfile* profile, const char* first_name, const char* middle_name, const char* last_name, const char* email, const char* company, const char* address1, const char* address2, const char* city, const char* state, const char* zipcode, const char* country, const char* phone, const char* fax) { check_and_set(profile, NAME_FIRST, first_name); check_and_set(profile, NAME_MIDDLE, middle_name); check_and_set(profile, NAME_LAST, last_name); check_and_set(profile, EMAIL_ADDRESS, email); check_and_set(profile, COMPANY_NAME, company); check_and_set(profile, ADDRESS_HOME_LINE1, address1); check_and_set(profile, ADDRESS_HOME_LINE2, address2); check_and_set(profile, ADDRESS_HOME_CITY, city); check_and_set(profile, ADDRESS_HOME_STATE, state); check_and_set(profile, ADDRESS_HOME_ZIP, zipcode); check_and_set(profile, ADDRESS_HOME_COUNTRY, country); check_and_set(profile, PHONE_HOME_WHOLE_NUMBER, phone); check_and_set(profile, PHONE_FAX_WHOLE_NUMBER, fax); } void SetProfileInfoWithGuid(AutofillProfile* profile, const char* guid, const char* first_name, const char* middle_name, const char* last_name, const char* email, const char* company, const char* address1, const char* address2, const char* city, const char* state, const char* zipcode, const char* country, const char* phone, const char* fax) { if (guid) profile->set_guid(guid); SetProfileInfo(profile, first_name, middle_name, last_name, email, company, address1, address2, city, state, zipcode, country, phone, fax); } void SetCreditCardInfo(CreditCard* credit_card, const char* name_on_card, const char* card_number, const char* expiration_month, const char* expiration_year) { check_and_set(credit_card, CREDIT_CARD_NAME, name_on_card); check_and_set(credit_card, CREDIT_CARD_NUMBER, card_number); check_and_set(credit_card, CREDIT_CARD_EXP_MONTH, expiration_month); check_and_set(credit_card, CREDIT_CARD_EXP_4_DIGIT_YEAR, expiration_year); } void DisableSystemServices(Profile* profile) { // Use a mock Keychain rather than the OS one to store credit card data. #if defined(OS_MACOSX) Encryptor::UseMockKeychain(true); #endif // Disable auxiliary profiles for unit testing. These reach out to system // services on the Mac. if (profile) { profile->GetPrefs()->SetBoolean(prefs::kAutofillAuxiliaryProfilesEnabled, false); } } } // namespace autofill_test