aboutsummaryrefslogtreecommitdiff
path: root/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java')
-rw-r--r--java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java462
1 files changed, 231 insertions, 231 deletions
diff --git a/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java b/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java
index f2c86f6..f47e64f 100644
--- a/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java
+++ b/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java
@@ -23,235 +23,235 @@ import junit.framework.TestCase;
*/
public class StandardAddressVerifierTest extends TestCase {
- private AddressProblems problems = new AddressProblems();
- private StandardAddressVerifier verifier;
-
- @Override
- protected void setUp() {
- problems.clear();
- verifier = new StandardAddressVerifier(new FieldVerifier(new ClientData(new CacheData())),
- StandardChecks.PROBLEM_MAP);
- }
-
- public void testUnitedStatesOk() {
- AddressData addr = new AddressData.Builder().setCountry("US")
- .setAdminArea("CA")
- .setLocality("Mountain View")
- .setAddress("1234 Somewhere")
- .setPostalCode("94025")
- .build();
- verifier.verify(addr, problems);
- assertTrue(problems.toString(), problems.isEmpty()); // no mismatch
- }
-
- public void testUnitedStatesZipMismatch() {
- AddressData addr = new AddressData.Builder().setCountry("US")
- .setAdminArea("CA")
- .setLocality("Mountain View")
- .setPostalCode("12345")
- .build();
- verifier.verify(addr, problems);
-
- assertEquals(AddressProblemType.MISMATCHING_VALUE,
- problems.getProblem(AddressField.POSTAL_CODE));
- }
-
- public void testUnitedStatesNotOk() {
- AddressData addr = new AddressData.Builder().setCountry("US")
- .setAdminArea("CA")
- .setLocality(null)
- .setDependentLocality("Foo Bar")
- .setPostalCode("12345")
- .build();
- verifier.verify(addr, problems);
-
- assertEquals(AddressProblemType.MISMATCHING_VALUE,
- problems.getProblem(AddressField.POSTAL_CODE));
- assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
- problems.getProblem(AddressField.LOCALITY));
- }
-
- public void testChinaOk() {
- AddressData addr = new AddressData.Builder().setCountry("CN")
- .setAdminArea("Beijing Shi")
- .setLocality("Xicheng Qu")
- .setAddress("Yitiao Lu")
- .setPostalCode("123456")
- .build();
- verifier.verify(addr, problems);
- assertTrue(problems.toString(), problems.isEmpty());
- }
-
- public void testGermanAddress() {
- AddressData addr = new AddressData.Builder().setCountry("DE")
- .setLocality("Berlin")
- .setAddress("Huttenstr. 50")
- .setPostalCode("10553")
- .setOrganization("BMW AG Niederkassung Berlin")
- .setRecipient("Herr Diefendorf")
- .build();
-
- verifier.verify(addr, problems);
- assertTrue(problems.toString(), problems.isEmpty());
-
- // Clones address but leave city empty.
- addr = new AddressData.Builder().set(addr).setLocality(null).build();
-
- verifier.verify(addr, problems);
- assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
- problems.getProblem(AddressField.LOCALITY));
- }
-
- public void testIrishAddress() {
- AddressData addr = new AddressData.Builder().setCountry("IE")
- .setLocality("Dublin")
- .setAdminArea("Co. Dublin")
- .setAddress("7424 118 Avenue NW")
- .setRecipient("Conan O'Brien")
- .build();
-
- verifier.verify(addr, problems);
- assertTrue(problems.toString(), problems.isEmpty());
-
- // Clones address but leave county empty. This address should be valid
- // since county is not required.
- addr = new AddressData.Builder().set(addr).setAdminArea(null).build();
-
- verifier.verify(addr, problems);
- assertTrue(problems.toString(), problems.isEmpty());
- }
-
- public void testChinaPostalCodeBadFormat() {
- AddressData addr = new AddressData.Builder().setCountry("CN")
- .setAdminArea("Beijing Shi")
- .setLocality("Xicheng Qu")
- .setPostalCode("12345")
- .build();
- verifier.verify(addr, problems);
-
- // ensure problem is unrecognized format and problem is in POSTAL_CODE
- assertEquals(AddressProblemType.UNRECOGNIZED_FORMAT,
- problems.getProblem(AddressField.POSTAL_CODE));
- }
-
- /**
- * If there is a postal code pattern for a certain country, and the input postal code is empty,
- * it should not be reported as bad postal code format. Whether empty postal code is ok should
- * be determined by checks for required fields.
- */
- public void testEmptyPostalCodeReportedAsGoodFormat() {
- // Chilean address has a postal code format pattern, but does not require
- // postal code. The following address is valid.
- AddressData addr = new AddressData.Builder().setCountry("CL")
- .setAddressLine1("GUSTAVO LE PAIGE ST #159")
- .setAdminArea("Atacama")
- .setLocality("San Pedro")
- .setPostalCode("")
- .build();
- verifier.verify(addr, problems);
- assertTrue(problems.toString(), problems.isEmpty());
-
- problems.clear();
-
- // Now checks for US addresses, which requires postal code. The following
- // address's postal code is wrong because it misses required field, not
- // because it mismatches expected postal code pattern.
- addr = new AddressData.Builder().setCountry("US").setPostalCode("").build();
- problems.clear();
- verifier.verify(addr, problems);
-
- assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
- problems.getProblem(AddressField.POSTAL_CODE));
- }
-
- public void testChinaTaiwanOk() {
- AddressData addr = new AddressData.Builder().setCountry("CN")
- .setAdminArea("Taiwan")
- .setLocality("Taichung City")
- .setDependentLocality("Situn District")
- .setAddress("12345 Yitiao Lu")
- .setPostalCode("407")
- .build();
- verifier.verify(addr, problems);
- assertTrue(problems.toString(), problems.isEmpty());
- }
-
- public void testChinaTaiwanUnknownDistrict() {
- AddressData addr = new AddressData.Builder().setCountry("CN")
- .setAdminArea("Taiwan")
- .setLocality("Taichung City")
- .setDependentLocality("Foo Bar")
- .setPostalCode("400")
- .build();
- verifier.verify(addr, problems);
-
- assertEquals(AddressProblemType.UNKNOWN_VALUE,
- problems.getProblem(AddressField.DEPENDENT_LOCALITY));
- }
-
- public void testStreetVerification() {
- // missing street address
- AddressData addr = new AddressData.Builder().setCountry("US")
- .setAdminArea("CA")
- .setLocality("Mountain View")
- .setPostalCode("94025")
- .build();
-
- assertNull(addr.getAddressLine1());
- assertNull(addr.getAddressLine2());
-
- verifier.verify(addr, problems);
-
- assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
- problems.getProblem(AddressField.STREET_ADDRESS));
- }
-
- // Tests The Bahamas' address
- public void failingtestBahamas() {
- final AddressData address =
- new AddressData.Builder().setAddress("Abaco Beach Resort & Boat Habour")
- .setLocality("Treasure Cay")
- .setAdminArea("Abaco")
- .setCountry("BS")
- .build();
- verifier.verify(address, problems);
- assertTrue(problems.toString(), problems.isEmpty());
- }
-
- public void testJapan() {
- // added AdminArea since address verification can't infer it from Kyoto City
- // commented out dependent locality since address verification doesn't use it
- // TODO: support inference of higher levels from lower ones
- // TODO: add dependent locality support for japan addresses
- final AddressData address =
- new AddressData.Builder()
- .setRecipient("\u5BAE\u672C \u8302") // SHIGERU_MIYAMOTO
- .setAddress("\u4E0A\u9CE5\u7FBD\u927E\u7ACB\u753A11\u756A\u5730")
- .setAdminArea("\u4eac\u90fd\u5e9c") // Kyoto prefecture, added
- .setLocality("\u4EAC\u90FD\u5E02") // Kyoto city
- // .setDependentLocality("\u5357\u533A")
- .setCountry("JP")
- .setPostalCode("601-8501")
- .build();
- verifier.verify(address, problems);
- assertTrue(problems.toString(), problems.isEmpty());
- }
-
- public void testJapanLatin() {
- // added AdminArea since address verification can't infer it from Kyoto City
- // commented out dependent locality since address verification doesn't use it
- final AddressData address =
- new AddressData.Builder()
- .setRecipient("Shigeru Miyamoto") // SHIGERU_MIYAMOTO_ENGLISH
- .setAddress("11-1 Kamitoba-hokotate-cho")
- .setAdminArea("KYOTO") // Kyoto prefecture, added
- .setLocality("Kyoto") // Kyoto city
- // .setDependentLocality("Minami-ku")
- .setLanguageCode("ja_Latn")
- .setCountry("JP")
- .setPostalCode("601-8501")
- .build();
- verifier.verify(address, problems);
- assertTrue(problems.toString(), problems.isEmpty());
- }
+ private AddressProblems problems = new AddressProblems();
+ private StandardAddressVerifier verifier;
+
+ @Override
+ protected void setUp() {
+ problems.clear();
+ verifier = new StandardAddressVerifier(new FieldVerifier(new ClientData(new CacheData())),
+ StandardChecks.PROBLEM_MAP);
+ }
+
+ public void testUnitedStatesOk() {
+ AddressData addr = new AddressData.Builder().setCountry("US")
+ .setAdminArea("CA")
+ .setLocality("Mountain View")
+ .setAddress("1234 Somewhere")
+ .setPostalCode("94025")
+ .build();
+ verifier.verify(addr, problems);
+ assertTrue(problems.toString(), problems.isEmpty()); // no mismatch
+ }
+
+ public void testUnitedStatesZipMismatch() {
+ AddressData addr = new AddressData.Builder().setCountry("US")
+ .setAdminArea("CA")
+ .setLocality("Mountain View")
+ .setPostalCode("12345")
+ .build();
+ verifier.verify(addr, problems);
+
+ assertEquals(AddressProblemType.MISMATCHING_VALUE,
+ problems.getProblem(AddressField.POSTAL_CODE));
+ }
+
+ public void testUnitedStatesNotOk() {
+ AddressData addr = new AddressData.Builder().setCountry("US")
+ .setAdminArea("CA")
+ .setLocality(null)
+ .setDependentLocality("Foo Bar")
+ .setPostalCode("12345")
+ .build();
+ verifier.verify(addr, problems);
+
+ assertEquals(AddressProblemType.MISMATCHING_VALUE,
+ problems.getProblem(AddressField.POSTAL_CODE));
+ assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+ problems.getProblem(AddressField.LOCALITY));
+ }
+
+ public void testChinaOk() {
+ AddressData addr = new AddressData.Builder().setCountry("CN")
+ .setAdminArea("Beijing Shi")
+ .setLocality("Xicheng Qu")
+ .setAddress("Yitiao Lu")
+ .setPostalCode("123456")
+ .build();
+ verifier.verify(addr, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+ }
+
+ public void testGermanAddress() {
+ AddressData addr = new AddressData.Builder().setCountry("DE")
+ .setLocality("Berlin")
+ .setAddress("Huttenstr. 50")
+ .setPostalCode("10553")
+ .setOrganization("BMW AG Niederkassung Berlin")
+ .setRecipient("Herr Diefendorf")
+ .build();
+
+ verifier.verify(addr, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+
+ // Clones address but leave city empty.
+ addr = new AddressData.Builder().set(addr).setLocality(null).build();
+
+ verifier.verify(addr, problems);
+ assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+ problems.getProblem(AddressField.LOCALITY));
+ }
+
+ public void testIrishAddress() {
+ AddressData addr = new AddressData.Builder().setCountry("IE")
+ .setLocality("Dublin")
+ .setAdminArea("Co. Dublin")
+ .setAddress("7424 118 Avenue NW")
+ .setRecipient("Conan O'Brien")
+ .build();
+
+ verifier.verify(addr, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+
+ // Clones address but leave county empty. This address should be valid
+ // since county is not required.
+ addr = new AddressData.Builder().set(addr).setAdminArea(null).build();
+
+ verifier.verify(addr, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+ }
+
+ public void testChinaPostalCodeBadFormat() {
+ AddressData addr = new AddressData.Builder().setCountry("CN")
+ .setAdminArea("Beijing Shi")
+ .setLocality("Xicheng Qu")
+ .setPostalCode("12345")
+ .build();
+ verifier.verify(addr, problems);
+
+ // ensure problem is unrecognized format and problem is in POSTAL_CODE
+ assertEquals(AddressProblemType.UNRECOGNIZED_FORMAT,
+ problems.getProblem(AddressField.POSTAL_CODE));
+ }
+
+ /**
+ * If there is a postal code pattern for a certain country, and the input postal code is empty,
+ * it should not be reported as bad postal code format. Whether an empty postal code is ok
+ * should be determined by checks for required fields.
+ */
+ public void testEmptyPostalCodeReportedAsGoodFormat() {
+ // Chilean address has a postal code format pattern, but does not require
+ // postal code. The following address is valid.
+ AddressData addr = new AddressData.Builder().setCountry("CL")
+ .setAddressLine1("GUSTAVO LE PAIGE ST #159")
+ .setAdminArea("Atacama")
+ .setLocality("Alto del Carmen")
+ .setPostalCode("")
+ .build();
+ verifier.verify(addr, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+
+ problems.clear();
+
+ // Now checks for US addresses, which requires postal code. The following
+ // address's postal code is wrong because it misses required field, not
+ // because it mismatches expected postal code pattern.
+ addr = new AddressData.Builder().setCountry("US").setPostalCode("").build();
+ problems.clear();
+ verifier.verify(addr, problems);
+
+ assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+ problems.getProblem(AddressField.POSTAL_CODE));
+ }
+
+ public void testChinaTaiwanOk() {
+ AddressData addr = new AddressData.Builder().setCountry("CN")
+ .setAdminArea("Taiwan")
+ .setLocality("Taichung City")
+ .setDependentLocality("Situn District")
+ .setAddress("12345 Yitiao Lu")
+ .setPostalCode("407")
+ .build();
+ verifier.verify(addr, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+ }
+
+ public void testChinaTaiwanUnknownDistrict() {
+ AddressData addr = new AddressData.Builder().setCountry("CN")
+ .setAdminArea("Taiwan")
+ .setLocality("Taichung City")
+ .setDependentLocality("Foo Bar")
+ .setPostalCode("400")
+ .build();
+ verifier.verify(addr, problems);
+
+ assertEquals(AddressProblemType.UNKNOWN_VALUE,
+ problems.getProblem(AddressField.DEPENDENT_LOCALITY));
+ }
+
+ public void testStreetVerification() {
+ // missing street address
+ AddressData addr = new AddressData.Builder().setCountry("US")
+ .setAdminArea("CA")
+ .setLocality("Mountain View")
+ .setPostalCode("94025")
+ .build();
+
+ assertNull(addr.getAddressLine1());
+ assertNull(addr.getAddressLine2());
+
+ verifier.verify(addr, problems);
+
+ assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+ problems.getProblem(AddressField.STREET_ADDRESS));
+ }
+
+ // Tests The Bahamas' address
+ public void failingtestBahamas() {
+ final AddressData address =
+ new AddressData.Builder().setAddress("Abaco Beach Resort & Boat Habour")
+ .setLocality("Treasure Cay")
+ .setAdminArea("Abaco")
+ .setCountry("BS")
+ .build();
+ verifier.verify(address, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+ }
+
+ public void testJapan() {
+ // added AdminArea since address verification can't infer it from Kyoto City
+ // commented out dependent locality since address verification doesn't use it
+ // TODO: support inference of higher levels from lower ones
+ // TODO: add dependent locality support for japan addresses
+ final AddressData address =
+ new AddressData.Builder()
+ .setRecipient("\u5BAE\u672C \u8302") // SHIGERU_MIYAMOTO
+ .setAddress("\u4E0A\u9CE5\u7FBD\u927E\u7ACB\u753A11\u756A\u5730")
+ .setAdminArea("\u4eac\u90fd\u5e9c") // Kyoto prefecture, added
+ .setLocality("\u4EAC\u90FD\u5E02") // Kyoto city
+ // .setDependentLocality("\u5357\u533A")
+ .setCountry("JP")
+ .setPostalCode("601-8501")
+ .build();
+ verifier.verify(address, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+ }
+
+ public void testJapanLatin() {
+ // added AdminArea since address verification can't infer it from Kyoto City
+ // commented out dependent locality since address verification doesn't use it
+ final AddressData address =
+ new AddressData.Builder()
+ .setRecipient("Shigeru Miyamoto") // SHIGERU_MIYAMOTO_ENGLISH
+ .setAddress("11-1 Kamitoba-hokotate-cho")
+ .setAdminArea("KYOTO") // Kyoto prefecture, added
+ .setLocality("Kyoto") // Kyoto city
+ // .setDependentLocality("Minami-ku")
+ .setLanguageCode("ja_Latn")
+ .setCountry("JP")
+ .setPostalCode("601-8501")
+ .build();
+ verifier.verify(address, problems);
+ assertTrue(problems.toString(), problems.isEmpty());
+ }
}