diff options
author | ziran.sun@samsung.com <ziran.sun@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 22:35:25 +0000 |
---|---|---|
committer | ziran.sun@samsung.com <ziran.sun@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 22:35:25 +0000 |
commit | e7aa19e6b2899f12000db206f617f968fc3f3315 (patch) | |
tree | 407bfc89a8e56c4f11e5f81f30e798fc8befc420 /components | |
parent | 3eed4edecc352a36f11392c63124fc2213cb9a2f (diff) | |
download | chromium_src-e7aa19e6b2899f12000db206f617f968fc3f3315.zip chromium_src-e7aa19e6b2899f12000db206f617f968fc3f3315.tar.gz chromium_src-e7aa19e6b2899f12000db206f617f968fc3f3315.tar.bz2 |
Adjust autofill phone number format.
- Use '+' sign for out of country call, except US.
- Keep valid national number input as it is.
R=isherman@chromium.org
BUG=98911
Review URL: https://codereview.chromium.org/355823007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284226 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
8 files changed, 34 insertions, 18 deletions
diff --git a/components/autofill/core/browser/autofill_ie_toolbar_import_win_unittest.cc b/components/autofill/core/browser/autofill_ie_toolbar_import_win_unittest.cc index ed064ce..f6b4faf 100644 --- a/components/autofill/core/browser/autofill_ie_toolbar_import_win_unittest.cc +++ b/components/autofill/core/browser/autofill_ie_toolbar_import_win_unittest.cc @@ -175,8 +175,7 @@ TEST_F(AutofillIeToolbarImportTest, TestAutofillImport) { profiles[1].GetInfo(AutofillType(PHONE_HOME_CITY_CODE), "US")); EXPECT_EQ(L"5555555", profiles[1].GetInfo(AutofillType(PHONE_HOME_NUMBER), "US")); - EXPECT_EQ(L"+1 650-555-5555", - profiles[1].GetRawInfo(PHONE_HOME_WHOLE_NUMBER)); + EXPECT_EQ(L"1 650-555-5555", profiles[1].GetRawInfo(PHONE_HOME_WHOLE_NUMBER)); EXPECT_EQ(profile2[0].value, profiles[0].GetRawInfo(NAME_FIRST)); EXPECT_EQ(profile2[1].value, profiles[0].GetRawInfo(NAME_LAST)); diff --git a/components/autofill/core/browser/phone_number_i18n.cc b/components/autofill/core/browser/phone_number_i18n.cc index 10a71d6..246c5eb 100644 --- a/components/autofill/core/browser/phone_number_i18n.cc +++ b/components/autofill/core/browser/phone_number_i18n.cc @@ -65,12 +65,24 @@ void FormatValidatedNumber(const PhoneNumber& number, std::string processed_number; phone_util->Format(number, format, &processed_number); + std::string region_code; + phone_util->GetRegionCodeForNumber(number, ®ion_code); + + // Drop the leading '+' for US numbers as some US sites can't handle the "+", + // and in the US dialing "+1..." is the same as dialing "1...". + std::string prefix; + if (processed_number[0] == '+') { + processed_number = processed_number.substr(1); + if (region_code != "US") + prefix = "+"; + } + if (formatted_number) - *formatted_number = base::UTF8ToUTF16(processed_number); + *formatted_number = base::UTF8ToUTF16(prefix + processed_number); if (normalized_number) { phone_util->NormalizeDigitsOnly(&processed_number); - *normalized_number = base::UTF8ToUTF16(processed_number); + *normalized_number = base::UTF8ToUTF16(prefix + processed_number); } } diff --git a/components/autofill/core/browser/phone_number_i18n_unittest.cc b/components/autofill/core/browser/phone_number_i18n_unittest.cc index 37592d3..e7ca9a2 100644 --- a/components/autofill/core/browser/phone_number_i18n_unittest.cc +++ b/components/autofill/core/browser/phone_number_i18n_unittest.cc @@ -149,58 +149,58 @@ TEST(PhoneNumberI18NTest, ConstructPhoneNumber) { ASCIIToUTF16("2345678"), "US", &number)); - EXPECT_EQ(number, ASCIIToUTF16("+1 650-234-5678")); + EXPECT_EQ(ASCIIToUTF16("1 650-234-5678"), number); EXPECT_TRUE(ConstructPhoneNumber(base::string16(), ASCIIToUTF16("650"), ASCIIToUTF16("2345678"), "US", &number)); - EXPECT_EQ(number, ASCIIToUTF16("(650) 234-5678")); + EXPECT_EQ(ASCIIToUTF16("(650) 234-5678"), number); EXPECT_TRUE(ConstructPhoneNumber(ASCIIToUTF16("1"), base::string16(), ASCIIToUTF16("6502345678"), "US", &number)); - EXPECT_EQ(number, ASCIIToUTF16("+1 650-234-5678")); + EXPECT_EQ(ASCIIToUTF16("1 650-234-5678"), number); EXPECT_TRUE(ConstructPhoneNumber(base::string16(), base::string16(), ASCIIToUTF16("6502345678"), "US", &number)); - EXPECT_EQ(number, ASCIIToUTF16("(650) 234-5678")); + EXPECT_EQ(ASCIIToUTF16("(650) 234-5678"), number); EXPECT_FALSE(ConstructPhoneNumber(base::string16(), ASCIIToUTF16("650"), ASCIIToUTF16("234567890"), "US", &number)); - EXPECT_EQ(number, base::string16()); + EXPECT_EQ(base::string16(), number); // Italian number EXPECT_TRUE(ConstructPhoneNumber(ASCIIToUTF16("39"), ASCIIToUTF16("347"), ASCIIToUTF16("2345678"), "IT", &number)); - EXPECT_EQ(number, ASCIIToUTF16("+39 347 234 5678")); + EXPECT_EQ(ASCIIToUTF16("+39 347 234 5678"), number); EXPECT_TRUE(ConstructPhoneNumber(base::string16(), ASCIIToUTF16("347"), ASCIIToUTF16("2345678"), "IT", &number)); - EXPECT_EQ(number, ASCIIToUTF16("347 234 5678")); + EXPECT_EQ(ASCIIToUTF16("347 234 5678"), number); // German number. EXPECT_TRUE(ConstructPhoneNumber(ASCIIToUTF16("49"), ASCIIToUTF16("024"), ASCIIToUTF16("2345678901"), "DE", &number)); - EXPECT_EQ(number, ASCIIToUTF16("+49 2423 45678901")); + EXPECT_EQ(ASCIIToUTF16("+49 2423 45678901"), number); EXPECT_TRUE(ConstructPhoneNumber(base::string16(), ASCIIToUTF16("024"), ASCIIToUTF16("2345678901"), "DE", &number)); - EXPECT_EQ(number, ASCIIToUTF16("02423 45678901")); + EXPECT_EQ(ASCIIToUTF16("02423 45678901"), number); } TEST(PhoneNumberI18NTest, PhoneNumbersMatch) { diff --git a/components/autofill/core/browser/phone_number_unittest.cc b/components/autofill/core/browser/phone_number_unittest.cc index b858768..9486e6a 100644 --- a/components/autofill/core/browser/phone_number_unittest.cc +++ b/components/autofill/core/browser/phone_number_unittest.cc @@ -107,7 +107,7 @@ TEST(PhoneNumberTest, SetInfo) { EXPECT_TRUE(phone.SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), ASCIIToUTF16("+18887776666"), "US")); - EXPECT_EQ(ASCIIToUTF16("+1 888-777-6666"), + EXPECT_EQ(ASCIIToUTF16("1 888-777-6666"), phone.GetRawInfo(PHONE_HOME_WHOLE_NUMBER)); // Differently formatted numbers should be left alone. @@ -173,7 +173,7 @@ TEST(PhoneNumberTest, PhoneCombineHelper) { base::string16 parsed_phone; EXPECT_TRUE(number1.ParseNumber(profile, "en-US", &parsed_phone)); // International format as it has a country code. - EXPECT_EQ(ASCIIToUTF16("+1 650-234-5678"), parsed_phone); + EXPECT_EQ(ASCIIToUTF16("1 650-234-5678"), parsed_phone); PhoneNumber::PhoneCombineHelper number3; EXPECT_TRUE(number3.SetInfo(AutofillType(PHONE_HOME_CITY_CODE), diff --git a/components/test/data/autofill/OWNERS b/components/test/data/autofill/OWNERS new file mode 100644 index 0000000..3883338 --- /dev/null +++ b/components/test/data/autofill/OWNERS @@ -0,0 +1,5 @@ +estade@chromium.org +isherman@chromium.org + +# Owner for password autofill/generation only. +gcasto@chromium.org diff --git a/components/test/data/autofill/merge/output/multimerge.out b/components/test/data/autofill/merge/output/multimerge.out index ecefee1..9120c75 100644 --- a/components/test/data/autofill/merge/output/multimerge.out +++ b/components/test/data/autofill/merge/output/multimerge.out @@ -14,5 +14,5 @@ ADDRESS_HOME_CITY: San Francisco ADDRESS_HOME_STATE: CA ADDRESS_HOME_ZIP: 94102 ADDRESS_HOME_COUNTRY: US -PHONE_HOME_WHOLE_NUMBER: +1 650-210-1111 +PHONE_HOME_WHOLE_NUMBER: 1 650-210-1111 PHONE_HOME_WHOLE_NUMBER: (650) 234-3333 diff --git a/components/test/data/autofill/merge/output/primarycase.out b/components/test/data/autofill/merge/output/primarycase.out index ecefee1..9120c75 100644 --- a/components/test/data/autofill/merge/output/primarycase.out +++ b/components/test/data/autofill/merge/output/primarycase.out @@ -14,5 +14,5 @@ ADDRESS_HOME_CITY: San Francisco ADDRESS_HOME_STATE: CA ADDRESS_HOME_ZIP: 94102 ADDRESS_HOME_COUNTRY: US -PHONE_HOME_WHOLE_NUMBER: +1 650-210-1111 +PHONE_HOME_WHOLE_NUMBER: 1 650-210-1111 PHONE_HOME_WHOLE_NUMBER: (650) 234-3333 diff --git a/components/test/data/autofill/merge/output/singlemerge.out b/components/test/data/autofill/merge/output/singlemerge.out index 76e4e25..17e2663 100644 --- a/components/test/data/autofill/merge/output/singlemerge.out +++ b/components/test/data/autofill/merge/output/singlemerge.out @@ -10,4 +10,4 @@ ADDRESS_HOME_CITY: San Francisco ADDRESS_HOME_STATE: NY ADDRESS_HOME_ZIP: 11001 ADDRESS_HOME_COUNTRY: CA -PHONE_HOME_WHOLE_NUMBER: +1 650-210-1111 +PHONE_HOME_WHOLE_NUMBER: 1 650-210-1111 |