summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorziran.sun@samsung.com <ziran.sun@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-18 22:35:25 +0000
committerziran.sun@samsung.com <ziran.sun@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-18 22:35:25 +0000
commite7aa19e6b2899f12000db206f617f968fc3f3315 (patch)
tree407bfc89a8e56c4f11e5f81f30e798fc8befc420 /components
parent3eed4edecc352a36f11392c63124fc2213cb9a2f (diff)
downloadchromium_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')
-rw-r--r--components/autofill/core/browser/autofill_ie_toolbar_import_win_unittest.cc3
-rw-r--r--components/autofill/core/browser/phone_number_i18n.cc16
-rw-r--r--components/autofill/core/browser/phone_number_i18n_unittest.cc18
-rw-r--r--components/autofill/core/browser/phone_number_unittest.cc4
-rw-r--r--components/test/data/autofill/OWNERS5
-rw-r--r--components/test/data/autofill/merge/output/multimerge.out2
-rw-r--r--components/test/data/autofill/merge/output/primarycase.out2
-rw-r--r--components/test/data/autofill/merge/output/singlemerge.out2
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, &region_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