| // Copyright 2018 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. |
| |
| #import "ios/chrome/browser/ui/autofill/manual_fill/address_form.h" |
| |
| #include "base/strings/sys_string_conversions.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "components/autofill/core/browser/autofill_profile.h" |
| #include "components/autofill/core/browser/country_names.h" |
| #include "ios/chrome/browser/application_context.h" |
| #include "testing/platform_test.h" |
| #include "url/gurl.h" |
| |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| #error "This file requires ARC support." |
| #endif |
| |
| using autofill::AutofillProfile; |
| using ManualFillAddressFormAutofilliOSTest = PlatformTest; |
| |
| namespace { |
| |
| void SetProfileFieldTypeValue(AutofillProfile* profile, |
| const autofill::ServerFieldType fieldType, |
| NSString* value) { |
| const base::string16 v = base::SysNSStringToUTF16(value); |
| const std::string& app_locale = |
| GetApplicationContext()->GetApplicationLocale(); |
| profile->SetInfo(fieldType, v, app_locale); |
| } |
| |
| } // namespace |
| |
| // Tests the creation of an address from an autofill::AutofillProfile. |
| TEST_F(ManualFillAddressFormAutofilliOSTest, CreationWithMiddleName) { |
| NSString* firstName = @"First"; |
| NSString* middleName = @"Middle"; |
| NSString* lastName = @"Last"; |
| NSString* line1 = @"10 Main Street"; |
| NSString* line2 = @"Appt 16"; |
| NSString* zip = @"12345"; |
| NSString* city = @"Springfield"; |
| NSString* state = @"State"; |
| NSString* country = @"US"; |
| |
| autofill::CountryNames::SetLocaleString("en-US"); |
| |
| AutofillProfile* profile = new AutofillProfile(); |
| SetProfileFieldTypeValue(profile, autofill::NAME_FIRST, firstName); |
| SetProfileFieldTypeValue(profile, autofill::NAME_MIDDLE, middleName); |
| SetProfileFieldTypeValue(profile, autofill::NAME_LAST, lastName); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_LINE1, line1); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_LINE2, line2); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_ZIP, zip); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_CITY, city); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_STATE, state); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_COUNTRY, country); |
| |
| ManualFillAddress* manualFillAddress = |
| [[ManualFillAddress alloc] initWithProfile:*profile]; |
| |
| EXPECT_TRUE(manualFillAddress); |
| EXPECT_TRUE([firstName isEqualToString:manualFillAddress.firstName]); |
| EXPECT_TRUE( |
| [middleName isEqualToString:manualFillAddress.middleNameOrInitial]); |
| EXPECT_TRUE([lastName isEqualToString:manualFillAddress.lastName]); |
| EXPECT_TRUE([line1 isEqualToString:manualFillAddress.line1]); |
| EXPECT_TRUE([line2 isEqualToString:manualFillAddress.line2]); |
| EXPECT_TRUE([zip isEqualToString:manualFillAddress.zip]); |
| EXPECT_TRUE([city isEqualToString:manualFillAddress.city]); |
| EXPECT_TRUE([state isEqualToString:manualFillAddress.state]); |
| EXPECT_TRUE([@"United States" isEqualToString:manualFillAddress.country]); |
| } |
| |
| // Tests the creation of an address from an autofill::AutofillProfile. |
| TEST_F(ManualFillAddressFormAutofilliOSTest, CreationWithMiddleInitial) { |
| NSString* firstName = @"First"; |
| NSString* middleInitial = @"M"; |
| NSString* lastName = @"Last"; |
| NSString* line1 = @"10 Main Street"; |
| NSString* line2 = @"Appt 16"; |
| NSString* zip = @"12345"; |
| NSString* city = @"Springfield"; |
| NSString* state = @"State"; |
| NSString* country = @"US"; |
| |
| autofill::CountryNames::SetLocaleString("en-US"); |
| |
| AutofillProfile* profile = new AutofillProfile(); |
| SetProfileFieldTypeValue(profile, autofill::NAME_FIRST, firstName); |
| SetProfileFieldTypeValue(profile, autofill::NAME_MIDDLE_INITIAL, |
| middleInitial); |
| SetProfileFieldTypeValue(profile, autofill::NAME_LAST, lastName); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_LINE1, line1); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_LINE2, line2); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_ZIP, zip); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_CITY, city); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_STATE, state); |
| SetProfileFieldTypeValue(profile, autofill::ADDRESS_HOME_COUNTRY, country); |
| |
| ManualFillAddress* manualFillAddress = |
| [[ManualFillAddress alloc] initWithProfile:*profile]; |
| |
| EXPECT_TRUE(manualFillAddress); |
| EXPECT_TRUE([firstName isEqualToString:manualFillAddress.firstName]); |
| EXPECT_TRUE( |
| [middleInitial isEqualToString:manualFillAddress.middleNameOrInitial]); |
| EXPECT_TRUE([lastName isEqualToString:manualFillAddress.lastName]); |
| EXPECT_TRUE([line1 isEqualToString:manualFillAddress.line1]); |
| EXPECT_TRUE([line2 isEqualToString:manualFillAddress.line2]); |
| EXPECT_TRUE([zip isEqualToString:manualFillAddress.zip]); |
| EXPECT_TRUE([city isEqualToString:manualFillAddress.city]); |
| EXPECT_TRUE([state isEqualToString:manualFillAddress.state]); |
| EXPECT_TRUE([@"United States" isEqualToString:manualFillAddress.country]); |
| } |