diff options
Diffstat (limited to 'cpp/test/address_validator_test.cc')
-rw-r--r-- | cpp/test/address_validator_test.cc | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/cpp/test/address_validator_test.cc b/cpp/test/address_validator_test.cc index 5250502..79195e3 100644 --- a/cpp/test/address_validator_test.cc +++ b/cpp/test/address_validator_test.cc @@ -332,4 +332,87 @@ TEST_P(AddressValidatorTest, ValidateClearsProblems) { EXPECT_EQ(expected_, problems_); } +TEST_P(AddressValidatorTest, ValidKanjiAddressJP) { + address_.region_code = "JP"; + address_.administrative_area = + "\xE5\xBE\xB3\xE5\xB3\xB6\xE7\x9C\x8C"; /* 徳島県 */ + address_.locality = + "\xE5\xBE\xB3\xE5\xB3\xB6\xE5\xB8\x82"; /* 徳島市 */ + address_.postal_code = "770-0847"; + address_.address_line.push_back("..."); + address_.language_code = "ja"; + + ASSERT_NO_FATAL_FAILURE(Validate()); + ASSERT_TRUE(called_); + EXPECT_EQ(expected_, problems_); +} + +TEST_P(AddressValidatorTest, ValidLatinAddressJP) { + // Skip this test case when using the OndemandSupplier, which depends on the + // address metadata server to map Latin script names to local script names. + if (GetParam() == &OndemandValidatorWrapper::Build) return; + + address_.region_code = "JP"; + address_.administrative_area = "Tokushima"; + address_.locality = "Tokushima"; + address_.postal_code = "770-0847"; + address_.address_line.push_back("..."); + address_.language_code = "ja-Latn"; + + ASSERT_NO_FATAL_FAILURE(Validate()); + ASSERT_TRUE(called_); + EXPECT_EQ(expected_, problems_); +} + +TEST_P(AddressValidatorTest, ValidAddressBR) { + // Skip this test case when using the OndemandSupplier, which depends on the + // address metadata server to map natural language names to metadata IDs. + if (GetParam() == &OndemandValidatorWrapper::Build) return; + + address_.region_code = "BR"; + address_.administrative_area = "S\xC3\xA3o Paulo"; /* São Paulo */ + address_.locality = "Presidente Prudente"; + address_.postal_code = "19063-008"; + address_.address_line.push_back("Rodovia Raposo Tavares, 6388-6682"); + address_.language_code = "pt"; + + ASSERT_NO_FATAL_FAILURE(Validate()); + ASSERT_TRUE(called_); + EXPECT_EQ(expected_, problems_); +} + +TEST_P(AddressValidatorTest, ValidAddressCA_en) { + // Skip this test case when using the OndemandSupplier, which depends on the + // address metadata server to map natural language names to metadata IDs. + if (GetParam() == &OndemandValidatorWrapper::Build) return; + + address_.region_code = "CA"; + address_.administrative_area = "New Brunswick"; + address_.locality = "Saint John County"; + address_.postal_code = "E2L 4Z6"; + address_.address_line.push_back("..."); + address_.language_code = "en"; + + ASSERT_NO_FATAL_FAILURE(Validate()); + ASSERT_TRUE(called_); + EXPECT_EQ(expected_, problems_); +} + +TEST_P(AddressValidatorTest, ValidAddressCA_fr) { + // Skip this test case when using the OndemandSupplier, which depends on the + // address metadata server to map natural language names to metadata IDs. + if (GetParam() == &OndemandValidatorWrapper::Build) return; + + address_.region_code = "CA"; + address_.administrative_area = "Nouveau-Brunswick"; + address_.locality = "Comt\xC3\xA9 de Saint-Jean"; /* Comté de Saint-Jean */ + address_.postal_code = "E2L 4Z6"; + address_.address_line.push_back("..."); + address_.language_code = "fr"; + + ASSERT_NO_FATAL_FAILURE(Validate()); + ASSERT_TRUE(called_); + EXPECT_EQ(expected_, problems_); +} + } // namespace |