From e7aa19e6b2899f12000db206f617f968fc3f3315 Mon Sep 17 00:00:00 2001 From: "ziran.sun@samsung.com" Date: Fri, 18 Jul 2014 22:35:25 +0000 Subject: 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 --- .../browser/autofill_ie_toolbar_import_win_unittest.cc | 3 +-- components/autofill/core/browser/phone_number_i18n.cc | 16 ++++++++++++++-- .../core/browser/phone_number_i18n_unittest.cc | 18 +++++++++--------- .../autofill/core/browser/phone_number_unittest.cc | 4 ++-- components/test/data/autofill/OWNERS | 5 +++++ .../test/data/autofill/merge/output/multimerge.out | 2 +- .../test/data/autofill/merge/output/primarycase.out | 2 +- .../test/data/autofill/merge/output/singlemerge.out | 2 +- 8 files changed, 34 insertions(+), 18 deletions(-) create mode 100644 components/test/data/autofill/OWNERS (limited to 'components') 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 -- cgit v1.1