Lines Matching defs:number
72 void ExtractPossibleNumber(const string& number,
74 phone_util_.ExtractPossibleNumber(number, extracted_number);
77 bool IsViablePhoneNumber(const string& number) const {
78 return phone_util_.IsViablePhoneNumber(number);
81 void Normalize(string* number) const {
82 phone_util_.Normalize(number);
87 string* number) const {
90 number);
94 string* number,
96 phone_util_.MaybeStripNationalPrefixAndCarrierCode(metadata, number,
100 bool MaybeStripExtension(string* number, string* extension) const {
101 return phone_util_.MaybeStripExtension(number, extension);
295 // No shared-cost data is available, so its national number data should not be
356 PhoneNumber number;
357 number.set_country_code(1);
358 number.set_national_number(uint64{6502530000});
360 phone_util_.GetNationalSignificantNumber(number,
364 // An Italian mobile number.
366 number.set_country_code(39);
367 number.set_national_number(uint64{312345678});
368 phone_util_.GetNationalSignificantNumber(number,
372 // An Italian fixed line number.
374 number.set_country_code(39);
375 number.set_national_number(uint64{236618300});
376 number.set_italian_leading_zero(true);
377 phone_util_.GetNationalSignificantNumber(number,
382 number.Clear();
383 number.set_country_code(800);
384 number.set_national_number(uint64{12345678});
385 phone_util_.GetNationalSignificantNumber(number,
391 PhoneNumber number;
392 number.set_country_code(1);
393 number.set_national_number(uint64{650});
394 number.set_italian_leading_zero(true);
395 number.set_number_of_leading_zeros(2);
397 phone_util_.GetNationalSignificantNumber(number,
403 number.set_number_of_leading_zeros(-3);
405 phone_util_.GetNationalSignificantNumber(number,
431 // We have data for the US, but no data for VOICEMAIL, so the number passed in
441 // Here we test that the call to get an example number succeeded, and that the
442 // number passed in was modified.
457 // code. We don't support getting an example number for it with this method.
463 // codes. We don't support getting an invalid example number for it with
504 // We test that the call to get an example number succeeded, and that the
505 // number passed in was modified.
551 // Numbers with all zeros in the national number part will be formatted by
646 // Note this number is correctly formatted without national prefix. Most of
806 // Note this number is correctly formatted without national prefix. Most of
862 // AQ/Antarctica isn't a valid region code for phone number formatting,
947 // Testing AU alpha number formatted from Australia.
955 // This number should have the national prefix prefixed.
971 // This number should not have the national prefix prefixed, in accordance
1006 // Testing the case of an invalid alpha number.
1020 // No country-code stripping can be done since the number is invalid.
1068 // Test formatting with no preferred carrier code stored in the number itself.
1179 // An invalid US number, which is one digit too long.
1230 // Fixed-line number
1236 // Mobile number
1256 // Test that a short number is formatted correctly for mobile dialing within
1291 // Test that the Australian emergency number 000 is formatted correctly.
1426 PhoneNumber number;
1428 number.set_country_code(1);
1429 number.set_national_number(uint64{6502530000});
1430 EXPECT_EQ(3, phone_util_.GetLengthOfGeographicalAreaCode(number));
1432 // A North America toll-free number, which has no area code.
1433 number.set_country_code(1);
1434 number.set_national_number(uint64{8002530000});
1435 EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number));
1437 // An invalid US number (1 digit shorter), which has no area code.
1438 number.set_country_code(1);
1439 number.set_national_number(uint64{650253000});
1440 EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number));
1443 number.set_country_code(44);
1444 number.set_national_number(uint64{2070313000});
1445 EXPECT_EQ(2, phone_util_.GetLengthOfGeographicalAreaCode(number));
1447 // A mobile number in the UK does not have an area code (by default, mobile
1449 number.set_country_code(44);
1450 number.set_national_number(uint64{7912345678});
1451 EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number));
1454 number.set_country_code(54);
1455 number.set_national_number(uint64{1155303000});
1456 EXPECT_EQ(2, phone_util_.GetLengthOfGeographicalAreaCode(number));
1458 // A mobile number in Argentina also has an area code.
1459 number.set_country_code(54);
1460 number.set_national_number(uint64{91187654321});
1461 EXPECT_EQ(3, phone_util_.GetLengthOfGeographicalAreaCode(number));
1464 number.set_country_code(61);
1465 number.set_national_number(uint64{293744000});
1466 EXPECT_EQ(1, phone_util_.GetLengthOfGeographicalAreaCode(number));
1470 number.set_country_code(39);
1471 number.set_national_number(uint64{236618300});
1472 number.set_italian_leading_zero(true);
1473 EXPECT_EQ(2, phone_util_.GetLengthOfGeographicalAreaCode(number));
1476 number.set_country_code(65);
1477 number.set_national_number(uint64{65218000});
1478 number.set_italian_leading_zero(false);
1479 EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number));
1481 // An international toll free number, which has no area code.
1482 number.set_country_code(800);
1483 number.set_national_number(uint64{12345678});
1484 EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number));
1486 // A mobile number from China is geographical, but does not have an area code.
1494 PhoneNumber number;
1496 number.set_country_code(1);
1497 number.set_national_number(uint64{6502530000});
1498 EXPECT_EQ(3, phone_util_.GetLengthOfNationalDestinationCode(number));
1500 // A North America toll-free number, which has NDC "800".
1501 number.set_country_code(1);
1502 number.set_national_number(uint64{8002530000});
1503 EXPECT_EQ(3, phone_util_.GetLengthOfNationalDestinationCode(number));
1506 number.set_country_code(44);
1507 number.set_national_number(uint64{2070313000});
1508 EXPECT_EQ(2, phone_util_.GetLengthOfNationalDestinationCode(number));
1511 number.set_country_code(44);
1512 number.set_national_number(uint64{7912345678});
1513 EXPECT_EQ(4, phone_util_.GetLengthOfNationalDestinationCode(number));
1516 number.set_country_code(54);
1517 number.set_national_number(uint64{1155303000});
1518 EXPECT_EQ(2, phone_util_.GetLengthOfNationalDestinationCode(number));
1521 number.set_country_code(54);
1522 number.set_national_number(uint64{91187654321});
1523 EXPECT_EQ(3, phone_util_.GetLengthOfNationalDestinationCode(number));
1526 number.set_country_code(61);
1527 number.set_national_number(uint64{293744000});
1528 EXPECT_EQ(1, phone_util_.GetLengthOfNationalDestinationCode(number));
1531 number.set_country_code(65);
1532 number.set_national_number(uint64{65218000});
1533 EXPECT_EQ(4, phone_util_.GetLengthOfNationalDestinationCode(number));
1535 // An invalid US number (1 digit shorter), which has no NDC.
1536 number.set_country_code(1);
1537 number.set_national_number(uint64{650253000});
1538 EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number));
1540 // A number containing an invalid country code, which shouldn't have any NDC.
1541 number.set_country_code(123);
1542 number.set_national_number(uint64{650253000});
1543 EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number));
1545 // A number that has only one group of digits after country code when
1547 number.set_country_code(376);
1548 number.set_national_number(uint64{12345});
1549 EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number));
1551 // The same number above, but with an extension.
1552 number.set_country_code(376);
1553 number.set_national_number(uint64{12345});
1554 number.set_extension("321");
1555 EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number));
1557 // An international toll free number, which has NDC "1234".
1558 number.Clear();
1559 number.set_country_code(800);
1560 number.set_national_number(uint64{12345678});
1561 EXPECT_EQ(4, phone_util_.GetLengthOfNationalDestinationCode(number));
1563 // A mobile number from China is geographical, but does not have an area code:
1607 // If not possible number present, return empty string.
1667 // This number is valid for the Bahamas, but is not a valid US number.
1675 // This number is no longer valid.
1685 // Now change the number to be a number for La Mayotte.
1689 // This number is no longer valid.
1698 // This number is valid in both places.
1821 PhoneNumber number;
1822 number.set_country_code(1);
1823 number.set_national_number(uint64{6502530000});
1824 EXPECT_TRUE(phone_util_.IsPossibleNumber(number));
1826 number.set_country_code(1);
1827 number.set_national_number(uint64{2530000});
1828 EXPECT_TRUE(phone_util_.IsPossibleNumber(number));
1830 number.set_country_code(44);
1831 number.set_national_number(uint64{2070313000});
1832 EXPECT_TRUE(phone_util_.IsPossibleNumber(number));
1834 number.set_country_code(800);
1835 number.set_national_number(uint64{12345678});
1836 EXPECT_TRUE(phone_util_.IsPossibleNumber(number));
1863 PhoneNumber number;
1864 number.set_country_code(54);
1865 number.set_national_number(uint64{12345});
1866 // Too short for any Argentinian number, including fixed-line.
1868 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1870 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1873 number.set_national_number(uint64{123456});
1875 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1877 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1880 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::MOBILE));
1883 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::TOLL_FREE));
1886 number.set_national_number(uint64{123456789});
1888 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1890 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1892 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::MOBILE));
1894 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::TOLL_FREE));
1897 number.set_national_number(uint64{1234567890});
1899 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1901 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1903 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::MOBILE));
1905 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::TOLL_FREE));
1909 // required for a valid mobile number.
1910 number.set_national_number(uint64{12345678901});
1912 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1914 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1916 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::MOBILE));
1918 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::TOLL_FREE));
1922 PhoneNumber number;
1923 // Here we test a number length which matches a local-only length.
1924 number.set_country_code(49);
1925 number.set_national_number(uint64{12});
1927 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1929 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1933 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::MOBILE));
1937 PhoneNumber number;
1941 // Local-only number.
1942 number.set_country_code(55);
1943 number.set_national_number(uint64{12345678});
1945 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1947 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1948 number.set_national_number(uint64{1234567890});
1950 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::UNKNOWN));
1952 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1957 PhoneNumber number;
1959 number.set_country_code(55);
1960 number.set_national_number(12345678L);
1962 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::MOBILE));
1965 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1967 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
1971 number.set_country_code(979);
1972 number.set_national_number(123456789L);
1974 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::MOBILE));
1976 phone_util_.IsPossibleNumberForType(number, PhoneNumberUtil::FIXED_LINE));
1978 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
1980 number, PhoneNumberUtil::PREMIUM_RATE));
1986 PhoneNumber number;
1987 number.set_country_code(1);
1988 number.set_national_number(uint64{6502530000});
1990 phone_util_.IsPossibleNumberWithReason(number));
1992 number.set_country_code(1);
1993 number.set_national_number(uint64{2530000});
1995 phone_util_.IsPossibleNumberWithReason(number));
1997 number.set_country_code(0);
1998 number.set_national_number(uint64{2530000});
2000 phone_util_.IsPossibleNumberWithReason(number));
2002 number.set_country_code(1);
2003 number.set_national_number(uint64{253000});
2005 phone_util_.IsPossibleNumberWithReason(number));
2007 number.set_country_code(1);
2008 number.set_national_number(uint64{65025300000});
2010 phone_util_.IsPossibleNumberWithReason(number));
2012 number.set_country_code(44);
2013 number.set_national_number(uint64{2070310000});
2015 phone_util_.IsPossibleNumberWithReason(number));
2017 number.set_country_code(49);
2018 number.set_national_number(uint64{30123456});
2020 phone_util_.IsPossibleNumberWithReason(number));
2022 number.set_country_code(65);
2023 number.set_national_number(uint64{1234567890});
2025 phone_util_.IsPossibleNumberWithReason(number));
2027 number.set_country_code(800);
2028 number.set_national_number(uint64{123456789});
2030 phone_util_.IsPossibleNumberWithReason(number));
2037 PhoneNumber number;
2038 number.set_country_code(54);
2039 number.set_national_number(uint64{12345});
2042 number, PhoneNumberUtil::UNKNOWN));
2045 number, PhoneNumberUtil::FIXED_LINE));
2048 number.set_national_number(uint64{123456});
2051 number, PhoneNumberUtil::UNKNOWN));
2054 number, PhoneNumberUtil::FIXED_LINE));
2058 number, PhoneNumberUtil::MOBILE));
2062 number, PhoneNumberUtil::TOLL_FREE));
2064 number.set_national_number(uint64{123456789});
2067 number, PhoneNumberUtil::UNKNOWN));
2070 number, PhoneNumberUtil::FIXED_LINE));
2073 number, PhoneNumberUtil::MOBILE));
2076 number, PhoneNumberUtil::TOLL_FREE));
2078 number.set_national_number(uint64{1234567890});
2081 number, PhoneNumberUtil::UNKNOWN));
2084 number, PhoneNumberUtil::FIXED_LINE));
2087 number, PhoneNumberUtil::MOBILE));
2090 number, PhoneNumberUtil::TOLL_FREE));
2093 // valid mobile number.
2094 number.set_national_number(uint64{12345678901});
2097 number, PhoneNumberUtil::UNKNOWN));
2100 number, PhoneNumberUtil::FIXED_LINE));
2103 number, PhoneNumberUtil::MOBILE));
2106 number, PhoneNumberUtil::TOLL_FREE));
2110 PhoneNumber number;
2111 // Here we test a number length which matches a local-only length.
2112 number.set_country_code(49);
2113 number.set_national_number(uint64{12});
2116 number, PhoneNumberUtil::UNKNOWN));
2119 number, PhoneNumberUtil::FIXED_LINE));
2124 number, PhoneNumberUtil::MOBILE));
2129 PhoneNumber number;
2133 // Local-only number.
2134 number.set_country_code(55);
2135 number.set_national_number(uint64{12345678});
2138 number, PhoneNumberUtil::UNKNOWN));
2141 number, PhoneNumberUtil::FIXED_LINE));
2142 // Normal-length number.
2143 number.set_national_number(uint64{1234567890});
2146 number, PhoneNumberUtil::UNKNOWN));
2149 number, PhoneNumberUtil::FIXED_LINE));
2154 PhoneNumber number;
2157 number.set_country_code(55);
2158 number.set_national_number(uint64{12345678});
2161 number, PhoneNumberUtil::MOBILE));
2165 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2167 number.set_national_number(uint64{1234567});
2170 number, PhoneNumberUtil::MOBILE));
2173 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2176 number, PhoneNumberUtil::FIXED_LINE));
2177 // This is too short for mobile, and no fixed-line number exist.
2178 number.set_country_code(882);
2179 number.set_national_number(uint64{1234567});
2182 number, PhoneNumberUtil::MOBILE));
2185 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2188 number, PhoneNumberUtil::FIXED_LINE));
2192 number.set_country_code(979);
2193 number.set_national_number(uint64{123456789});
2196 number, PhoneNumberUtil::MOBILE));
2199 number, PhoneNumberUtil::FIXED_LINE));
2202 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2205 number, PhoneNumberUtil::PREMIUM_RATE));
2210 PhoneNumber number;
2211 // For FIXED_LINE_OR_MOBILE, a number should be considered valid if it matches
2213 number.set_country_code(290);
2214 number.set_national_number(uint64{1234});
2217 number, PhoneNumberUtil::FIXED_LINE));
2220 number, PhoneNumberUtil::MOBILE));
2223 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2225 number.set_national_number(uint64{12345});
2228 number, PhoneNumberUtil::FIXED_LINE));
2231 number, PhoneNumberUtil::MOBILE));
2234 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2236 number.set_national_number(uint64{123456});
2239 number, PhoneNumberUtil::FIXED_LINE));
2242 number, PhoneNumberUtil::MOBILE));
2245 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2247 number.set_national_number(uint64{1234567});
2250 number, PhoneNumberUtil::FIXED_LINE));
2253 number, PhoneNumberUtil::MOBILE));
2256 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2258 number.set_national_number(uint64{12345678});
2261 number, PhoneNumberUtil::TOLL_FREE));
2264 number, PhoneNumberUtil::FIXED_LINE_OR_MOBILE));
2268 PhoneNumber number;
2269 number.set_country_code(1);
2270 number.set_national_number(uint64{65025300000});
2271 EXPECT_FALSE(phone_util_.IsPossibleNumber(number));
2273 number.set_country_code(800);
2274 number.set_national_number(uint64{123456789});
2275 EXPECT_FALSE(phone_util_.IsPossibleNumber(number));
2277 number.set_country_code(1);
2278 number.set_national_number(uint64{253000});
2279 EXPECT_FALSE(phone_util_.IsPossibleNumber(number));
2281 number.set_country_code(44);
2282 number.set_national_number(uint64{300});
2283 EXPECT_FALSE(phone_util_.IsPossibleNumber(number));
2302 // US number 650-253-0000, but entered with one additional digit at the end.
2319 // GB number 080 1234 5678, but entered with 4 extra digits at the end.
2327 // IT number 022 3456 7890, but entered with 3 extra digits at the end.
2337 // Tests what happens when a valid number is passed in.
2340 // Tests the number is not modified.
2343 // Tests what happens when a number with invalid prefix is passed in.
2350 // Tests the number is not modified.
2353 // Tests what happens when a too short number is passed in.
2359 // Tests the number is not modified.
2364 PhoneNumber number;
2366 // Bahamas, mobile phone number.
2367 number.set_country_code(1);
2368 number.set_national_number(uint64{2423570000});
2369 EXPECT_FALSE(phone_util_.IsNumberGeographical(number));
2371 // Australian fixed line number.
2372 number.set_country_code(61);
2373 number.set_national_number(uint64{236618300});
2374 EXPECT_TRUE(phone_util_.IsNumberGeographical(number));
2376 // International toll free number.
2377 number.set_country_code(800);
2378 number.set_national_number(uint64{12345678});
2379 EXPECT_FALSE(phone_util_.IsNumberGeographical(number));
2384 // Argentina, mobile phone number.
2385 number.set_country_code(54);
2386 number.set_national_number(uint64{91187654321});
2387 EXPECT_TRUE(phone_util_.IsNumberGeographical(number));
2389 // Mexico, mobile phone number.
2390 number.set_country_code(52);
2391 number.set_national_number(uint64{12345678900});
2392 EXPECT_FALSE(phone_util_.IsNumberGeographical(number));
2394 // Mexico, another mobile phone number.
2395 number.set_country_code(52);
2396 number.set_national_number(uint64{15512345678});
2397 EXPECT_TRUE(phone_util_.IsNumberGeographical(number));
2460 // leads us to format the number using raw_input.
2470 // This number is valid, but we don't have a formatting pattern for it. Fall
2562 // Italian fixed-line number.
2602 // The default national prefix used in this case is 045. When a number with
2604 // change the number entered.
2623 // The default international prefix used in this case is 0011. When a number
2625 // don't want to change the number entered.
2667 // Test that an invalid national number without raw input is just formatted
2668 // as the national number.
2680 PhoneNumber number;
2681 number.set_country_code(1);
2682 number.set_national_number(uint64{9004433030});
2683 EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number));
2685 number.set_country_code(39);
2686 number.set_national_number(uint64{892123});
2687 EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number));
2689 number.set_country_code(44);
2690 number.set_national_number(uint64{9187654321});
2691 EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number));
2693 number.set_country_code(49);
2694 number.set_national_number(uint64{9001654321});
2695 EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number));
2697 number.set_country_code(49);
2698 number.set_national_number(uint64{90091234567});
2699 EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number));
2701 number.set_country_code(979);
2702 number.set_national_number(uint64{123456789});
2703 EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number));
2707 PhoneNumber number;
2708 number.set_country_code(1);
2709 number.set_national_number(uint64{8881234567});
2710 EXPECT_EQ(PhoneNumberUtil::UNKNOWN, phone_util_.GetNumberType(number));
2712 number.set_country_code(39);
2713 number.set_national_number(uint64{803123});
2714 EXPECT_EQ(PhoneNumberUtil::TOLL_FREE, phone_util_.GetNumberType(number));
2716 number.set_country_code(44);
2717 number.set_national_number(uint64{8012345678});
2718 EXPECT_EQ(PhoneNumberUtil::UNKNOWN, phone_util_.GetNumberType(number));
2720 number.set_country_code(49);
2721 number.set_national_number(uint64{8001234567});
2722 EXPECT_EQ(PhoneNumberUtil::TOLL_FREE, phone_util_.GetNumberType(number));
2724 number.set_country_code(800);
2725 number.set_national_number(uint64{12345678});
2726 EXPECT_EQ(PhoneNumberUtil::TOLL_FREE, phone_util_.GetNumberType(number));
2730 PhoneNumber number;
2731 // A Bahama mobile number
2732 number.set_country_code(1);
2733 number.set_national_number(uint64{2423570000});
2734 EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number));
2736 number.set_country_code(39);
2737 number.set_national_number(uint64{312345678});
2738 EXPECT_EQ(PhoneNumberUtil::UNKNOWN, phone_util_.GetNumberType(number));
2740 number.set_country_code(44);
2741 number.set_national_number(uint64{7912345678});
2742 EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number));
2744 number.set_country_code(49);
2745 number.set_national_number(uint64{15123456789});
2746 EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number));
2748 number.set_country_code(54);
2749 number.set_national_number(uint64{91187654321});
2750 EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number));
2754 PhoneNumber number;
2755 // A Bahama fixed-line number
2756 number.set_country_code(1);
2757 number.set_national_number(uint64{2423651234});
2758 EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number));
2760 // An Italian fixed-line number
2761 number.Clear();
2762 number.set_country_code(39);
2763 number.set_national_number(uint64{236618300});
2764 number.set_italian_leading_zero(true);
2765 EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number));
2767 number.Clear();
2768 number.set_country_code(44);
2769 number.set_national_number(uint64{2012345678});
2770 EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number));
2772 number.set_country_code(49);
2773 number.set_national_number(uint64{301234});
2774 EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number));
2778 PhoneNumber number;
2779 number.set_country_code(1);
2780 number.set_national_number(uint64{6502531111});
2782 phone_util_.GetNumberType(number));
2784 number.set_country_code(54);
2785 number.set_national_number(uint64{1987654321});
2787 phone_util_.GetNumberType(number));
2791 PhoneNumber number;
2792 number.set_country_code(44);
2793 number.set_national_number(uint64{8431231234});
2794 EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number));
2798 PhoneNumber number;
2799 number.set_country_code(44);
2800 number.set_national_number(uint64{5631231234});
2801 EXPECT_EQ(PhoneNumberUtil::VOIP, phone_util_.GetNumberType(number));
2805 PhoneNumber number;
2806 number.set_country_code(44);
2807 number.set_national_number(uint64{7031231234});
2809 phone_util_.GetNumberType(number));
2813 PhoneNumber number;
2814 number.set_country_code(1);
2815 number.set_national_number(uint64{65025311111});
2816 EXPECT_EQ(PhoneNumberUtil::UNKNOWN, phone_util_.GetNumberType(number));
2972 << "The number was not stripped of its international prefix.";
2974 // Now the number no longer starts with an IDD prefix, so it should now report
2985 << "The number was not stripped of its international prefix.";
2993 << "The number was not stripped of its international prefix.";
2994 // Now the number no longer starts with an IDD prefix, so it should now report
3007 << "The number supplied was not stripped of the plus symbol.";
3009 // If the number afterwards is a zero, we should not strip this - no country
3017 << "The number had a 0 after the match so shouldn't be stripped.";
3037 // Retry stripping - now the number should not start with the national prefix,
3049 // If the resultant number doesn't match the national rule, it shouldn't be
3082 string number("1234576 ext. 1234");
3086 EXPECT_TRUE(MaybeStripExtension(&number, &extension));
3087 EXPECT_EQ(stripped_number, number);
3091 number.assign("1234-576");
3094 EXPECT_FALSE(MaybeStripExtension(&number, &extension));
3095 EXPECT_EQ(stripped_number, number);
3100 number.assign("1234576-123#");
3104 EXPECT_TRUE(MaybeStripExtension(&number, &extension));
3105 EXPECT_EQ(stripped_number, number);
3108 number.assign("1234576 ext.123#");
3110 EXPECT_TRUE(MaybeStripExtension(&number, &extension));
3111 EXPECT_EQ(stripped_number, number);
3116 PhoneNumber number;
3123 MaybeExtractCountryCode(metadata, true, &phone_number, &number));
3124 EXPECT_EQ(expected_country_code, number.country_code());
3125 EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITH_IDD, number.country_code_source());
3128 number.Clear();
3133 MaybeExtractCountryCode(metadata, true, &phone_number, &number));
3134 EXPECT_EQ(expected_country_code, number.country_code());
3136 number.country_code_source());
3139 number.Clear();
3144 MaybeExtractCountryCode(metadata, true, &phone_number, &number));
3145 EXPECT_EQ(expected_country_code, number.country_code());
3147 number.country_code_source());
3151 number.Clear();
3155 MaybeExtractCountryCode(metadata, true, &phone_number, &number));
3156 EXPECT_EQ(expected_country_code, number.country_code());
3157 EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, number.country_code_source());
3164 MaybeExtractCountryCode(metadata, true, &phone_number, &number));
3166 number.Clear();
3171 MaybeExtractCountryCode(metadata, true, &phone_number, &number));
3172 EXPECT_EQ(expected_country_code, number.country_code());
3174 number.country_code_source());
3177 number.Clear();
3182 MaybeExtractCountryCode(metadata, false, &phone_number, &number));
3183 EXPECT_EQ(expected_country_code, number.country_code());
3184 EXPECT_FALSE(number.has_country_code_source());
3187 // Should not have extracted a country code - invalid number after extraction
3189 number.Clear();
3194 MaybeExtractCountryCode(metadata, false, &phone_number, &number));
3195 EXPECT_EQ(expected_country_code, number.country_code());
3196 EXPECT_FALSE(number.has_country_code_source());
3199 number.Clear();
3203 // Should not have extracted a country code - invalid number both before and
3206 MaybeExtractCountryCode(metadata, true, &phone_number, &number));
3207 EXPECT_EQ(expected_country_code, number.country_code());
3208 EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, number.country_code_source());
3229 // Test dialing a US number from within Andorra.
3245 // It's not very well defined as to what the E164 representation for a number
3247 // code and national number is about the best we can do.
3338 // the number of leading zeros present (1 is in any case the default value).
3408 // Different country code, partial number match.
3412 // Different country code, same number.
3423 // NSN matches, but extension is different - not the same number.
3455 // Here the second number possibly starts with the country code for New
3461 // Here, the 1 might be a national prefix, if we compare it to the US number,
3509 // We did not know that the "0" was a national prefix since neither number has
3539 // NSN matches, country code omitted for one number, extension missing for
3601 phone_util_.Parse("My number is tel:03-331-6005;phone-context=+64",
3629 // Try again, but this time we have an international number with Region Code
3680 // Check that using a "/" is fine in a phone number.
3691 // number was already possible.
3698 // make sure we can parse the output we produce when formatting the number.
3715 // remaining number length is local-only in terms of length. Example: In GB,
3778 // Calling the US number from Singapore by using different service providers
3794 // Calling the US number from Poland
3817 // The whole number, including punctuation, is here represented in full-width
3926 // Test that having an 'x' in the phone number at the start is ok and that it
3950 // This test is intentionally constructed such that the number of digit after
3951 // xx is larger than 7, so that the number won't be mistakenly treated as an
3954 // the form of xx have a national significant number of length larger than 7.
4002 phone_util_.Parse("This is not a phone number", RegionCode::NZ(),
4007 phone_util_.Parse("1 Still not a number", RegionCode::NZ(),
4108 // RegionCode::GetUnknown() is allowed only if the number starts with a '+' -
4177 // Test that a number whose first digits happen to coincide with the national
4178 // prefix does not get them stripped if doing so would result in a number too
4179 // short to be a possible (regular length) phone number for that region.
4194 // number, whereas the result of stripping is only 5 digits.
4263 // Verifying bug-fix where the last digit of a number was previously omitted
4416 // Test that if a number has two extensions specified, we ignore the second.
4649 // Try with invalid region - expect failure. We clear the test number first
4650 // because if parsing isn't successful, the number parsed in won't be changed.
4674 // Test the number "011".
4682 // Test the number "001".
4691 // Test the number "000". This number has 2 leading zeros.
4700 // Test the number "0000". This number has 3 leading zeros.
4717 // descriptor = domainname / global-number-digits
4814 // Invalid number.