From b470ed6975ed95aba244369d74d758755d976738 Mon Sep 17 00:00:00 2001 From: "roubert@google.com" Date: Wed, 4 Jun 2014 11:01:44 +0000 Subject: Make IsFieldRequired and IsFieldUsed always return true for COUNTRY. Author: davinci@google.com git-svn-id: http://libaddressinput.googlecode.com/svn/trunk@265 38ededc0-08b8-5190-f2ac-b31f878777ad --- cpp/include/libaddressinput/address_metadata.h | 6 ++++-- cpp/src/address_metadata.cc | 8 ++++++++ cpp/test/address_metadata_test.cc | 13 +++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/cpp/include/libaddressinput/address_metadata.h b/cpp/include/libaddressinput/address_metadata.h index c379781..269f982 100644 --- a/cpp/include/libaddressinput/address_metadata.h +++ b/cpp/include/libaddressinput/address_metadata.h @@ -21,11 +21,13 @@ namespace i18n { namespace addressinput { // Checks whether |field| is a required field for |region_code|. Returns false -// also if no data could be found for region_code. +// also if no data could be found for region_code. Note: COUNTRY is always +// required. bool IsFieldRequired(AddressField field, const std::string& region_code); // Checks whether |field| is a field that is used for |region_code|. Returns -// false also if no data could be found for region_code. +// false also if no data could be found for region_code. Note: COUNTRY is always +// used. bool IsFieldUsed(AddressField field, const std::string& region_code); } // namespace addressinput diff --git a/cpp/src/address_metadata.cc b/cpp/src/address_metadata.cc index 093ebdf..59030ef 100644 --- a/cpp/src/address_metadata.cc +++ b/cpp/src/address_metadata.cc @@ -25,6 +25,10 @@ namespace i18n { namespace addressinput { bool IsFieldRequired(AddressField field, const std::string& region_code) { + if (field == COUNTRY) { + return true; + } + Rule rule; rule.CopyFrom(Rule::GetDefault()); if (!rule.ParseSerializedRule( @@ -38,6 +42,10 @@ bool IsFieldRequired(AddressField field, const std::string& region_code) { } bool IsFieldUsed(AddressField field, const std::string& region_code) { + if (field == COUNTRY) { + return true; + } + Rule rule; rule.CopyFrom(Rule::GetDefault()); if (!rule.ParseSerializedRule( diff --git a/cpp/test/address_metadata_test.cc b/cpp/test/address_metadata_test.cc index bf17a3b..e1959cd 100644 --- a/cpp/test/address_metadata_test.cc +++ b/cpp/test/address_metadata_test.cc @@ -20,12 +20,25 @@ namespace { +using i18n::addressinput::COUNTRY; using i18n::addressinput::ADMIN_AREA; using i18n::addressinput::DEPENDENT_LOCALITY; using i18n::addressinput::IsFieldRequired; using i18n::addressinput::IsFieldUsed; +TEST(AddressMetadataTest, IsFieldRequiredCountry) { + EXPECT_TRUE(IsFieldRequired(COUNTRY, "US")); + EXPECT_TRUE(IsFieldRequired(COUNTRY, "CH")); + EXPECT_TRUE(IsFieldRequired(COUNTRY, "rrr")); +} + +TEST(AddressMetadataTest, IsUsedRequiredCountry) { + EXPECT_TRUE(IsFieldUsed(COUNTRY, "US")); + EXPECT_TRUE(IsFieldUsed(COUNTRY, "CH")); + EXPECT_TRUE(IsFieldUsed(COUNTRY, "rrr")); +} + TEST(AddressMetadataTest, IsFieldRequiredAdminAreaUS) { EXPECT_TRUE(IsFieldRequired(ADMIN_AREA, "US")); } -- cgit v1.2.3