Browse Source

Create ParsingOptions for cpp

In this commit we added the ParsingOptions from the java version which will make parsing in different ways easier
pull/3730/head
KarolJakubKrawiec 1 year ago
parent
commit
9d7975ac94
5 changed files with 159 additions and 54 deletions
  1. +20
    -0
      cpp/src/phonenumbers/parsingOptions.cc
  2. +43
    -0
      cpp/src/phonenumbers/parsingOptions.h
  3. +9
    -5
      cpp/src/phonenumbers/phonenumberutil.cc
  4. +21
    -4
      cpp/src/phonenumbers/phonenumberutil.h
  5. +66
    -45
      cpp/test/phonenumbers/phonenumberutil_test.cc

+ 20
- 0
cpp/src/phonenumbers/parsingOptions.cc View File

@ -0,0 +1,20 @@
#include "i18n/phonenumbers/parsingoptions.h"
#include "i18n/identifiers/regioncode.h"
namespace i18n {
namespace phonenumbers {
ParsingOptions& ParsingOptions::SetDefaultRegion(
i18n_identifiers::RegionCode default_region) {
default_region_ = default_region;
return *this;
}
ParsingOptions& ParsingOptions::SetKeepRawInput(bool keep_raw_input) {
keep_raw_input_ = keep_raw_input;
return *this;
}
} // namespace phonenumbers
} // namespace i18n

+ 43
- 0
cpp/src/phonenumbers/parsingOptions.h View File

@ -0,0 +1,43 @@
#ifndef I18N_PHONENUMBERS_PARSINGOPTIONS_H_
#define I18N_PHONENUMBERS_PARSINGOPTIONS_H_
#include "i18n/identifiers/regioncode.h"
namespace i18n {
namespace phonenumbers {
// Options for parsing a phone number. To be used with the ParseWithOptions
// method.
// Example:
// ParsingOptions().SetDefaultRegion(RegionCode::US()).SetKeepRawInput(true);
class ParsingOptions {
public:
ParsingOptions() = default;
// Set the value for default_region_.
ParsingOptions& SetDefaultRegion(
i18n_identifiers::RegionCode default_region);
// Set the value for keep_raw_input_.
ParsingOptions& SetKeepRawInput(bool keep_raw_input);
private:
friend class PhoneNumberUtil;
// The region we are expecting the number to be from. This is ignored if the
// number being parsed is written in international format. In case of national
// format, the country_code will be set to the one of this default region. If
// the number is guaranteed to start with a '+' followed by the country
// calling code, then RegionCode.ZZ or null can be supplied.
i18n_identifiers::RegionCode default_region_ =
i18n_identifiers::RegionCode::ZZ();
// Whether the raw input should be kept in the PhoneNumber object. If true,
// the raw_input field and country_code_source fields will be populated.
bool keep_raw_input_ = false;
};
} // namespace phonenumbers
} // namespace i18n
#endif // I1

+ 9
- 5
cpp/src/phonenumbers/phonenumberutil.cc View File

@ -37,6 +37,7 @@
#include "phonenumbers/phonemetadata.pb.h"
#include "phonenumbers/phonenumber.h"
#include "phonenumbers/phonenumber.pb.h"
#include "phonenumbers/parsingoptions.h"
#include "phonenumbers/regex_based_matcher.h"
#include "phonenumbers/regexp_adapter.h"
#include "phonenumbers/regexp_cache.h"
@ -47,6 +48,7 @@
#include "phonenumbers/utf/unicodetext.h"
#include "phonenumbers/utf/utf.h"
namespace i18n {
namespace phonenumbers {
@ -2127,15 +2129,17 @@ PhoneNumberUtil::ErrorType PhoneNumberUtil::Parse(const string& number_to_parse,
const string& default_region,
PhoneNumber* number) const {
DCHECK(number);
return ParseHelper(number_to_parse, default_region, false, true, number);
return ParseWithOptions(number_to_parse,
ParsingOptions().SetDefaultRegion(default_region),
number);
}
PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseAndKeepRawInput(
const string& number_to_parse,
const string& default_region,
PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseWithOptions(
absl::string_view number_to_parse, const ParsingOptions& options,
PhoneNumber* number) const {
DCHECK(number);
return ParseHelper(number_to_parse, default_region, true, true, number);
return ParseHelper(number_to_parse, options.default_region_,
options.keep_raw_input_, /*check_region=*/true, number);
}
// Checks to see that the region code used is valid, or if it is not valid, that


+ 21
- 4
cpp/src/phonenumbers/phonenumberutil.h View File

@ -29,9 +29,10 @@
#include "phonenumbers/base/memory/scoped_ptr.h"
#include "phonenumbers/base/memory/singleton.h"
#include "phonenumbers/phonenumber.pb.h"
#include "phonenumbers/parsingoptions.h"
#include "absl/container/node_hash_set.h"
#include "absl/container/node_hash_map.h"
#include "third_party/absl/base/macros.h"
class TelephoneNumber;
@ -700,13 +701,29 @@ class PhoneNumberUtil : public Singleton<PhoneNumberUtil> {
ErrorType Parse(const string& number_to_parse,
const string& default_region,
PhoneNumber* number) const;
// Parses a string and returns it in proto buffer format. This method differs
// from Parse() in that it always populates the raw_input field of the
// protocol buffer with number_to_parse as well as the country_code_source
// field.
ErrorType ParseAndKeepRawInput(const string& number_to_parse,
const string& default_region,
PhoneNumber* number) const;
ABSL_DEPRECATE_AND_INLINE()
ErrorType ParseAndKeepRawInput(
absl::string_view number_to_parse,
i18n_identifiers::RegionCode default_region
PhoneNumber* number) const {
return ParseWithOptions(number_to_parse,
ParsingOptions()
.SetDefaultRegion(default_region)
.SetKeepRawInput(true),
number);
}
// Parses a string and returns it in proto buffer format. This method differs
// from Parse() in that it allows the caller to change the behavior of the
// parser. See ParsingOptions for more details.
ErrorType ParseWithOptions(absl::string_view number_to_parse,
const ParsingOptions& options,
PhoneNumber* number) const;
// Takes two phone numbers and compares them for equality.
//


+ 66
- 45
cpp/test/phonenumbers/phonenumberutil_test.cc View File

@ -64,9 +64,9 @@ class PhoneNumberUtilTest : public testing::Test {
return phone_util_.GetMetadataForRegion(region_code);
}
const PhoneMetadata* GetMetadataForNonGeographicalRegion(
const PhoneMetadata* GetMetadataForNonGeographicalEntity(
int country_code) const {
return phone_util_.GetMetadataForNonGeographicalRegion(country_code);
return phone_util_.GetMetadataForNonGeographicalEntity(country_code);
}
void ExtractPossibleNumber(const string& number,
@ -341,7 +341,7 @@ TEST_F(PhoneNumberUtilTest, GetInstanceLoadARMetadata) {
}
TEST_F(PhoneNumberUtilTest, GetInstanceLoadInternationalTollFreeMetadata) {
const PhoneMetadata* metadata = GetMetadataForNonGeographicalRegion(800);
const PhoneMetadata* metadata = GetMetadataForNonGeographicalEntity(800);
EXPECT_FALSE(metadata == NULL);
EXPECT_EQ("001", metadata->id());
EXPECT_EQ(800, metadata->country_code());
@ -2408,7 +2408,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
string formatted_number;
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("+442087654321", RegionCode::GB(),
phone_util_.ParseWithOptions("+442087654321", ParsingOptions().SetDefaultRegion(RegionCode::GB()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(),
&formatted_number);
@ -2417,7 +2418,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("02087654321", RegionCode::GB(),
phone_util_.ParseWithOptions("02087654321", ParsingOptions().SetDefaultRegion(RegionCode::GB()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(),
&formatted_number);
@ -2426,8 +2428,9 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("011442087654321",
RegionCode::US(), &phone_number));
phone_util_.ParseWithOptions("011442087654321", ParsingOptions().SetDefaultRegion(RegionCode::US(),)
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::US(),
&formatted_number);
EXPECT_EQ("011 44 20 8765 4321", formatted_number);
@ -2435,7 +2438,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("442087654321", RegionCode::GB(),
phone_util_.ParseWithOptions("442087654321", ParsingOptions().SetDefaultRegion(RegionCode::GB()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(),
&formatted_number);
@ -2456,7 +2460,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("7345678901", RegionCode::US(),
phone_util_.ParseWithOptions("7345678901", ParsingOptions().SetDefaultRegion(RegionCode::US()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::US(),
&formatted_number);
@ -2467,7 +2472,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("0734567 8901", RegionCode::US(),
phone_util_.ParseWithOptions("0734567 8901", ParsingOptions().SetDefaultRegion(RegionCode::US()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::US(),
&formatted_number);
@ -2478,7 +2484,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("02-4567-8900", RegionCode::KR(),
phone_util_.ParseWithOptions("02-4567-8900", ParsingOptions().SetDefaultRegion(RegionCode::KR()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::KR(),
&formatted_number);
@ -2487,8 +2494,9 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("01180012345678",
RegionCode::US(), &phone_number));
phone_util_.ParseWithOptions("01180012345678", ParsingOptions().SetDefaultRegion(RegionCode::US(),)
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::US(),
&formatted_number);
EXPECT_EQ("011 800 1234 5678", formatted_number);
@ -2496,7 +2504,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("+80012345678", RegionCode::KR(),
phone_util_.ParseWithOptions("+80012345678", ParsingOptions().SetDefaultRegion(RegionCode::KR()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::KR(),
&formatted_number);
@ -2507,7 +2516,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("2530000", RegionCode::US(),
phone_util_.ParseWithOptions("2530000", ParsingOptions().SetDefaultRegion(RegionCode::US()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::US(),
&formatted_number);
@ -2517,7 +2527,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Number with national prefix in the US.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("18003456789", RegionCode::US(),
phone_util_.ParseWithOptions("18003456789", ParsingOptions().SetDefaultRegion(RegionCode::US()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::US(),
&formatted_number);
@ -2527,7 +2538,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Number without national prefix in the UK.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("2087654321", RegionCode::GB(),
phone_util_.ParseWithOptions("2087654321", ParsingOptions().SetDefaultRegion(RegionCode::GB()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(),
&formatted_number);
@ -2547,7 +2559,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Number with national prefix in Mexico.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("013312345678", RegionCode::MX(),
phone_util_.ParseWithOptions("013312345678", ParsingOptions().SetDefaultRegion(RegionCode::MX()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::MX(),
&formatted_number);
@ -2557,7 +2570,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Number without national prefix in Mexico.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("3312345678", RegionCode::MX(),
phone_util_.ParseWithOptions("3312345678", ParsingOptions().SetDefaultRegion(RegionCode::MX()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::MX(),
&formatted_number);
@ -2567,7 +2581,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Italian fixed-line number.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("0212345678", RegionCode::IT(),
phone_util_.ParseWithOptions("0212345678", ParsingOptions().SetDefaultRegion(RegionCode::IT()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::IT(),
&formatted_number);
@ -2577,7 +2592,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Number with national prefix in Japan.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("00777012", RegionCode::JP(),
phone_util_.ParseWithOptions("00777012", ParsingOptions().SetDefaultRegion(RegionCode::JP()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::JP(),
&formatted_number);
@ -2587,7 +2603,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Number without national prefix in Japan.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("0777012", RegionCode::JP(),
phone_util_.ParseWithOptions("0777012", ParsingOptions().SetDefaultRegion(RegionCode::JP()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::JP(),
&formatted_number);
@ -2597,7 +2614,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
formatted_number.clear();
// Number with carrier code in Brazil.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("012 3121286979", RegionCode::BR(),
phone_util_.ParseWithOptions("012 3121286979", ParsingOptions().SetDefaultRegion(RegionCode::BR()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::BR(),
&formatted_number);
@ -2609,8 +2627,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
// national prefix 044 is entered, we return the raw input as we don't want to
// change the number entered.
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("044(33)1234-5678",
RegionCode::MX(),
phone_util_.ParseWithOptions("044(33)1234-5678", ParsingOptions().SetDefaultRegion(RegionCode::MX()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::MX(),
&formatted_number);
@ -2619,8 +2637,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("045(33)1234-5678",
RegionCode::MX(),
phone_util_.ParseWithOptions("045(33)1234-5678", ParsingOptions().SetDefaultRegion(RegionCode::MX()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::MX(),
&formatted_number);
@ -2632,8 +2650,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("0012 16502530000",
RegionCode::AU(),
phone_util_.ParseWithOptions("0012 16502530000", ParsingOptions().SetDefaultRegion(RegionCode::AU()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::AU(),
&formatted_number);
@ -2642,8 +2660,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("0011 16502530000",
RegionCode::AU(),
phone_util_.ParseWithOptions("0011 16502530000", ParsingOptions().SetDefaultRegion(RegionCode::AU()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::AU(),
&formatted_number);
@ -2654,8 +2672,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("*1234",
RegionCode::JP(),
phone_util_.ParseWithOptions("*1234", ParsingOptions().SetDefaultRegion(RegionCode::JP()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::JP(),
&formatted_number);
@ -2663,8 +2681,8 @@ TEST_F(PhoneNumberUtilTest, FormatInOriginalFormat) {
phone_number.Clear();
formatted_number.clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("1234",
RegionCode::JP(),
phone_util_.ParseWithOptions("1234", ParsingOptions().SetDefaultRegion(RegionCode::JP()),
SetKeepRawInput(true),
&phone_number));
phone_util_.FormatInOriginalFormat(phone_number, RegionCode::JP(),
&formatted_number);
@ -3575,7 +3593,7 @@ TEST_F(PhoneNumberUtilTest, ParseNationalNumber) {
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.Parse("033316005", RegionCode::NZ(), &test_number));
EXPECT_EQ(nz_number, test_number);
// Some fields are not filled in by Parse, but only by ParseAndKeepRawInput.
// Some fields are not filled in by Parse, but only by ParseWithOptions.
EXPECT_FALSE(nz_number.has_country_code_source());
EXPECT_EQ(PhoneNumber::UNSPECIFIED, nz_number.country_code_source());
@ -4170,8 +4188,8 @@ TEST_F(PhoneNumberUtilTest, ParseNumbersWithPlusWithNoRegion) {
nz_number.set_country_code_source(PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN);
result_proto.Clear();
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("+64 3 331 6005",
RegionCode::GetUnknown(),
phone_util_.ParseWithOptions("+64 3 331 6005", ParsingOptions().SetDefaultRegion( RegionCode::GetUnknown()),
SetKeepRawInput(true),
&result_proto));
EXPECT_EQ(nz_number, result_proto);
}
@ -4621,7 +4639,8 @@ TEST_F(PhoneNumberUtilTest, ParseAndKeepRaw) {
PhoneNumber test_number;
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("800 six-flags", RegionCode::US(),
phone_util_.ParseWithOptions("800 six-flags", ParsingOptions().SetDefaultRegion(RegionCode::US()),
SetKeepRawInput(true),
&test_number));
EXPECT_EQ(alpha_numeric_number, test_number);
@ -4630,7 +4649,8 @@ TEST_F(PhoneNumberUtilTest, ParseAndKeepRaw) {
alpha_numeric_number.set_country_code_source(
PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN);
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("1800 six-flag", RegionCode::US(),
phone_util_.ParseWithOptions("1800 six-flag", ParsingOptions().SetDefaultRegion(RegionCode::US()),
SetKeepRawInput(true),
&test_number));
EXPECT_EQ(alpha_numeric_number, test_number);
@ -4638,7 +4658,8 @@ TEST_F(PhoneNumberUtilTest, ParseAndKeepRaw) {
alpha_numeric_number.set_country_code_source(
PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN);
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("+1800 six-flag", RegionCode::CN(),
phone_util_.ParseWithOptions("+1800 six-flag", ParsingOptions().SetDefaultRegion(RegionCode::CN()),
SetKeepRawInput(true),
&test_number));
EXPECT_EQ(alpha_numeric_number, test_number);
@ -4646,8 +4667,8 @@ TEST_F(PhoneNumberUtilTest, ParseAndKeepRaw) {
alpha_numeric_number.set_country_code_source(
PhoneNumber::FROM_NUMBER_WITH_IDD);
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("001800 six-flag",
RegionCode::NZ(),
phone_util_.ParseWithOptions("001800 six-flag", ParsingOptions().SetDefaultRegion( RegionCode::NZ()),
SetKeepRawInput(true),
&test_number));
EXPECT_EQ(alpha_numeric_number, test_number);
@ -4665,8 +4686,8 @@ TEST_F(PhoneNumberUtilTest, ParseAndKeepRaw) {
korean_number.set_country_code_source(PhoneNumber::FROM_DEFAULT_COUNTRY);
korean_number.set_preferred_domestic_carrier_code("81");
EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR,
phone_util_.ParseAndKeepRawInput("08122123456",
RegionCode::KR(),
phone_util_.ParseWithOptions("08122123456", ParsingOptions().SetDefaultRegion( RegionCode::KR()),
SetKeepRawInput(true),
&test_number));
EXPECT_EQ(korean_number, test_number);
}


Loading…
Cancel
Save