Index: components/autofill/core/browser/phone_number_i18n_unittest.cc |
diff --git a/components/autofill/core/browser/phone_number_i18n_unittest.cc b/components/autofill/core/browser/phone_number_i18n_unittest.cc |
index c387dee3a752493a11b94b586839a4cc06c3485d..37592d3668b9c86cf7cbc6def21416168ff685f8 100644 |
--- a/components/autofill/core/browser/phone_number_i18n_unittest.cc |
+++ b/components/autofill/core/browser/phone_number_i18n_unittest.cc |
@@ -56,61 +56,70 @@ TEST(PhoneNumberI18NTest, ParsePhoneNumber) { |
std::string country_code; |
std::string deduced_region; |
} test_cases[] = { |
- // Test for empty string. Should give back empty strings. |
- { false, "", "US" }, |
- // Test for string with less than 7 digits. Should give back empty strings. |
- { false, "1234", "US" }, |
- // Test for string with exactly 7 digits. |
- // Not a valid number - starts with 1 |
- { false, "17134567", "US" }, |
- // Not a valid number - does not have area code. |
- { false, "7134567", "US" }, |
- // Valid Canadian toll-free number. |
- { true, "3101234", "US", "3101234", "", "", "CA" }, |
- // Test for string with greater than 7 digits but less than 10 digits. |
- // Should fail parsing in US. |
- { false, "123456789", "US" }, |
- // Test for string with greater than 7 digits but less than 10 digits and |
- // separators. |
- // Should fail parsing in US. |
- { false, "12.345-6789", "US" }, |
- // Test for string with exactly 10 digits. |
- // Should give back phone number and city code. |
- // This one going to fail because of the incorrect area code. |
- { false, "1234567890", "US" }, |
- // This one going to fail because of the incorrect number (starts with 1). |
- { false, "6501567890", "US" }, |
- { true, "6504567890", "US", "4567890", "650", "", "US" }, |
- // Test for string with exactly 10 digits and separators. |
- // Should give back phone number and city code. |
- { true, "(650) 456-7890", "US", "4567890", "650", "", "US" }, |
- // Tests for string with over 10 digits. |
- // 01 is incorrect prefix in the USA, and if we interpret 011 as prefix, the |
- // rest is too short for international number - the parsing should fail. |
- { false, "0116504567890", "US" }, |
- // 011 is a correct "dial out" prefix in the USA - the parsing should |
- // succeed. |
- { true, "01116504567890", "US", "4567890", "650", "1", "US" }, |
- // 011 is a correct "dial out" prefix in the USA but the rest of the number |
- // can't parse as a US number. |
- { true, "01178124567890", "US", "4567890", "812", "7", "RU" }, |
- // Test for string with over 10 digits with separator characters. |
- // Should give back phone number, city code, and country code. "011" is |
- // US "dial out" code, which is discarded. |
- { true, "(0111) 650-456.7890", "US", "4567890", "650", "1" , "US" }, |
- // Now try phone from Czech republic - it has 00 dial out code, 420 country |
- // code and variable length area codes. |
- { true, "+420 27-89.10.112", "US", "910112", "278", "420", "CZ" }, |
- { false, "27-89.10.112", "US" }, |
- { true, "27-89.10.112", "CZ", "910112", "278", "", "CZ" }, |
- { false, "420 57-89.10.112", "US" }, |
- { true, "420 57-89.10.112", "CZ", "910112", "578", "420", "CZ" }, |
- // Parses vanity numbers. |
- { true, "1-650-FLOWERS", "US", "3569377", "650", "1", "US" }, |
- // 800 is not an area code, but the destination code. In our library these |
- // codes should be treated the same as area codes. |
- { true, "1-800-FLOWERS", "US", "3569377", "800", "1", "US" }, |
- }; |
+ // Test for empty string. Should give back empty strings. |
+ {false, "", "US"}, |
+ // Test for string with less than 7 digits. Should give back empty |
+ // strings. |
+ {false, "1234", "US"}, |
+ // Test for string with exactly 7 digits. |
+ // Not a valid number - starts with 1 |
+ {false, "17134567", "US"}, |
+ // Not a valid number - does not have area code. |
+ {false, "7134567", "US"}, |
+ // Valid Canadian toll-free number. |
+ {true, "3101234", "US", "3101234", "", "", "CA"}, |
+ // Test for string with greater than 7 digits but less than 10 digits. |
+ // Should fail parsing in US. |
+ {false, "123456789", "US"}, |
+ // Test for string with greater than 7 digits but less than 10 digits |
+ // and |
+ // separators. |
+ // Should fail parsing in US. |
+ {false, "12.345-6789", "US"}, |
+ // Test for string with exactly 10 digits. |
+ // Should give back phone number and city code. |
+ // This one going to fail because of the incorrect area code. |
+ {false, "1234567890", "US"}, |
+ // This one going to fail because of the incorrect number (starts with |
+ // 1). |
+ {false, "6501567890", "US"}, |
+ {true, "6504567890", "US", "4567890", "650", "", "US"}, |
+ // Test for string with exactly 10 digits and separators. |
+ // Should give back phone number and city code. |
+ {true, "(650) 456-7890", "US", "4567890", "650", "", "US"}, |
+ // Tests for string with over 10 digits. |
+ // 01 is incorrect prefix in the USA, and if we interpret 011 as prefix, |
+ // the |
+ // rest is too short for international number - the parsing should fail. |
+ {false, "0116504567890", "US"}, |
+ // 011 is a correct "dial out" prefix in the USA - the parsing should |
+ // succeed. |
+ {true, "01116504567890", "US", "4567890", "650", "1", "US"}, |
+ // 011 is a correct "dial out" prefix in the USA but the rest of the |
+ // number |
+ // can't parse as a US number. |
+ {true, "01178124567890", "US", "4567890", "812", "7", "RU"}, |
+ // Test for string with over 10 digits with separator characters. |
+ // Should give back phone number, city code, and country code. "011" is |
+ // US "dial out" code, which is discarded. |
+ {true, "(0111) 650-456.7890", "US", "4567890", "650", "1", "US"}, |
+ // Now try phone from Czech republic - it has 00 dial out code, 420 |
+ // country |
+ // code and variable length area codes. |
+ {true, "+420 27-89.10.112", "US", "910112", "278", "420", "CZ"}, |
+ {false, "27-89.10.112", "US"}, |
+ {true, "27-89.10.112", "CZ", "910112", "278", "", "CZ"}, |
+ {false, "420 57-89.10.112", "US"}, |
+ {true, "420 57-89.10.112", "CZ", "910112", "578", "420", "CZ"}, |
+ // Parses vanity numbers. |
+ {true, "1-650-FLOWERS", "US", "3569377", "650", "1", "US"}, |
+ // 800 is not an area code, but the destination code. In our library |
+ // these |
+ // codes should be treated the same as area codes. |
+ {true, "1-800-FLOWERS", "US", "3569377", "800", "1", "US"}, |
+ // Don't add a country code where there was none. |
+ {true, "(08) 450 777 7777", "DE", "7777777", "8450", "", "DE"}, |
+ }; |
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { |
SCOPED_TRACE("Testing phone number " + test_cases[i].input); |