Browse Source

Cpp: Adding GetSupportedRegions().

pull/567/head
Philip Liard 15 years ago
committed by Mihaela Rosca
parent
commit
9fafb51e8c
3 changed files with 28 additions and 2 deletions
  1. +9
    -0
      cpp/src/phonenumberutil.cc
  2. +3
    -0
      cpp/src/phonenumberutil.h
  3. +16
    -2
      cpp/src/phonenumberutil_test.cc

+ 9
- 0
cpp/src/phonenumberutil.cc View File

@ -752,6 +752,15 @@ PhoneNumberUtil* PhoneNumberUtil::GetInstance() {
return Singleton<PhoneNumberUtil>::get(); return Singleton<PhoneNumberUtil>::get();
} }
void PhoneNumberUtil::GetSupportedRegions(set<string>* regions) const {
DCHECK(regions);
for (map<string, PhoneMetadata>::const_iterator it =
country_to_metadata_map_->begin(); it != country_to_metadata_map_->end();
++it) {
regions->insert(it->first);
}
}
bool PhoneNumberUtil::IsValidRegionCode(const string& region_code) const { bool PhoneNumberUtil::IsValidRegionCode(const string& region_code) const {
return (country_to_metadata_map_->find(region_code) != return (country_to_metadata_map_->find(region_code) !=
country_to_metadata_map_->end()); country_to_metadata_map_->end());


+ 3
- 0
cpp/src/phonenumberutil.h View File

@ -551,6 +551,9 @@ class PhoneNumberUtil {
explicit PhoneNumberUtil(MetadataProvider* provider = 0); explicit PhoneNumberUtil(MetadataProvider* provider = 0);
~PhoneNumberUtil(); ~PhoneNumberUtil();
// Gets all the supported regions.
void GetSupportedRegions(set<string>* regions) const;
// Helper function to check region code is not unknown or null. // Helper function to check region code is not unknown or null.
// //
// The region_code parameter is an ISO 3166-1 two-letter country code string. // The region_code parameter is an ISO 3166-1 two-letter country code string.


+ 16
- 2
cpp/src/phonenumberutil_test.cc View File

@ -16,13 +16,16 @@
// Author: Lara Rennie // Author: Lara Rennie
// Open-sourced by: Philippe Liard // Open-sourced by: Philippe Liard
#include <set>
#include <string>
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include <re2/re2.h> #include <re2/re2.h>
#include "phonenumberutil.h"
#include "test_metadata.h"
#include "phonemetadata.pb.h" #include "phonemetadata.pb.h"
#include "phonenumber.pb.h" #include "phonenumber.pb.h"
#include "phonenumberutil.h"
#include "test_metadata.h"
namespace i18n { namespace i18n {
namespace phonenumbers { namespace phonenumbers {
@ -49,6 +52,10 @@ class PhoneNumberUtilTest : public testing::Test {
return phone_util_.GetMetadataForRegion(region_code); return phone_util_.GetMetadataForRegion(region_code);
} }
void GetSupportedRegions(set<string>* regions) {
phone_util_.GetSupportedRegions(regions);
}
void ExtractPossibleNumber(const string& number, void ExtractPossibleNumber(const string& number,
string* extracted_number) const { string* extracted_number) const {
PhoneNumberUtil::ExtractPossibleNumber(number, extracted_number); PhoneNumberUtil::ExtractPossibleNumber(number, extracted_number);
@ -96,6 +103,13 @@ class PhoneNumberUtilTest : public testing::Test {
PhoneNumberUtil phone_util_; PhoneNumberUtil phone_util_;
}; };
TEST_F(PhoneNumberUtilTest, GetSupportedRegions) {
set<string> regions;
GetSupportedRegions(&regions);
EXPECT_GT(regions.size(), 0);
}
TEST_F(PhoneNumberUtilTest, GetInstanceLoadUSMetadata) { TEST_F(PhoneNumberUtilTest, GetInstanceLoadUSMetadata) {
const PhoneMetadata* metadata = GetPhoneMetadata("US"); const PhoneMetadata* metadata = GetPhoneMetadata("US");
EXPECT_EQ("US", metadata->id()); EXPECT_EQ("US", metadata->id());


Loading…
Cancel
Save