1a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com/* 2a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * Copyright (C) 2010 Google Inc. 3a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * 4a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * Licensed under the Apache License, Version 2.0 (the "License"); 5a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * you may not use this file except in compliance with the License. 6a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * You may obtain a copy of the License at 7a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * 8a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * http://www.apache.org/licenses/LICENSE-2.0 9a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * 10a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * Unless required by applicable law or agreed to in writing, software 11a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * distributed under the License is distributed on an "AS IS" BASIS, 12a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * See the License for the specific language governing permissions and 14a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com * limitations under the License. 15a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com */ 16a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com 17a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.compackage com.android.i18n.addressinput; 18a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com 19a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.comimport junit.framework.TestCase; 20a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com 21a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com/** 2286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com * Spot check the standard data set for various cases of interest. This is not an exhaustive test. 23a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com */ 247c138c50bd9264f99564f18dbec37b396450c1bdroubert@google.compublic class StandardAddressVerifierTest extends TestCase { 25a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com 2686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com private AddressProblems problems = new AddressProblems(); 2786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com private StandardAddressVerifier verifier; 2886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 291e17a681ee8e5566384ead1588f6e6c4c8aa333aroubert@google.com @Override 3086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com protected void setUp() { 3186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.clear(); 3286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier = new StandardAddressVerifier(new FieldVerifier(new ClientData(new CacheData())), 3386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com StandardChecks.PROBLEM_MAP); 3486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 3586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 3686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testUnitedStatesOk() { 3786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("US") 3886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("CA") 3986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Mountain View") 4086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddress("1234 Somewhere") 4186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("94025") 4286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 4386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 4486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); // no mismatch 4586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 4686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 4786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testUnitedStatesZipMismatch() { 4886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("US") 4986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("CA") 5086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Mountain View") 5186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("12345") 5286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 5386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 5486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 5586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.MISMATCHING_VALUE, 5686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.POSTAL_CODE)); 5786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 5886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 5986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testUnitedStatesNotOk() { 6086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("US") 6186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("CA") 6286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality(null) 6386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setDependentLocality("Foo Bar") 6486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("12345") 6586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 6686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 6786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 6886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.MISMATCHING_VALUE, 6986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.POSTAL_CODE)); 7086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD, 7186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.LOCALITY)); 7286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 7386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 7486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testChinaOk() { 7586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("CN") 7686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("Beijing Shi") 7786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Xicheng Qu") 7886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddress("Yitiao Lu") 7986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("123456") 8086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 8186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 8286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 8386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 8486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 8586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testGermanAddress() { 8686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("DE") 8786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Berlin") 8886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddress("Huttenstr. 50") 8986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("10553") 9086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setOrganization("BMW AG Niederkassung Berlin") 9186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setRecipient("Herr Diefendorf") 9286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 9386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 9486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 9586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 9686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 9786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Clones address but leave city empty. 9886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com addr = new AddressData.Builder().set(addr).setLocality(null).build(); 9986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 10086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 10186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD, 10286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.LOCALITY)); 10386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 10486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 10586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testIrishAddress() { 10686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("IE") 10786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Dublin") 10886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("Co. Dublin") 10986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddress("7424 118 Avenue NW") 11086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setRecipient("Conan O'Brien") 11186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 11286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 11386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 11486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 11586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 11686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Clones address but leave county empty. This address should be valid 11786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // since county is not required. 11886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com addr = new AddressData.Builder().set(addr).setAdminArea(null).build(); 11986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 12086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 12186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 12286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 12386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 12486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testChinaPostalCodeBadFormat() { 12586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("CN") 12686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("Beijing Shi") 12786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Xicheng Qu") 12886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("12345") 12986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 13086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 13186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 13286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // ensure problem is unrecognized format and problem is in POSTAL_CODE 13386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.UNRECOGNIZED_FORMAT, 13486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.POSTAL_CODE)); 13586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 13686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 13786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com /** 13886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com * If there is a postal code pattern for a certain country, and the input postal code is empty, 13986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com * it should not be reported as bad postal code format. Whether empty postal code is ok should 14086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com * be determined by checks for required fields. 14186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com */ 14286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testEmptyPostalCodeReportedAsGoodFormat() { 14386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Chilean address has a postal code format pattern, but does not require 14486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // postal code. The following address is valid. 14586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("CL") 14686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddressLine1("GUSTAVO LE PAIGE ST #159") 14786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("Atacama") 14886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("San Pedro") 14986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("") 15086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 15186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 15286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 15386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 15486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.clear(); 15586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 15686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Now checks for US addresses, which requires postal code. The following 15786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // address's postal code is wrong because it misses required field, not 15886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // because it mismatches expected postal code pattern. 15986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com addr = new AddressData.Builder().setCountry("US").setPostalCode("").build(); 16086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.clear(); 16186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 16286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 16386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD, 16486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.POSTAL_CODE)); 16586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 16686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 16786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testChinaTaiwanOk() { 16886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("CN") 16986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("Taiwan") 17086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Taichung City") 17186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setDependentLocality("Situn District") 17286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddress("12345 Yitiao Lu") 17386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("407") 17486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 17586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 17686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 17786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 17886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 17986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testChinaTaiwanUnknownDistrict() { 18086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("CN") 18186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("Taiwan") 18286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Taichung City") 18386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setDependentLocality("Foo Bar") 18486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("400") 18586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 18686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 18786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 18886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.UNKNOWN_VALUE, 18986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.DEPENDENT_LOCALITY)); 19086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 19186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 19286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testStreetVerification() { 19386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // missing street address 19486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com AddressData addr = new AddressData.Builder().setCountry("US") 19586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("CA") 19686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Mountain View") 19786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("94025") 19886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 19986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 20086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNull(addr.getAddressLine1()); 20186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNull(addr.getAddressLine2()); 20286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 20386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(addr, problems); 20486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 20586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD, 20686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com problems.getProblem(AddressField.STREET_ADDRESS)); 20786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 20886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 20986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Tests The Bahamas' address 21086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void failingtestBahamas() { 21186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com final AddressData address = 21286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com new AddressData.Builder().setAddress("Abaco Beach Resort & Boat Habour") 21386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Treasure Cay") 21486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("Abaco") 21586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setCountry("BS") 21686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 21786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(address, problems); 21886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 21986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 22086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 22186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testJapan() { 22286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // added AdminArea since address verification can't infer it from Kyoto City 22386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // commented out dependent locality since address verification doesn't use it 22486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // TODO: support inference of higher levels from lower ones 22586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // TODO: add dependent locality support for japan addresses 22686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com final AddressData address = 22786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com new AddressData.Builder() 22886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setRecipient("\u5BAE\u672C \u8302") // SHIGERU_MIYAMOTO 22986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddress("\u4E0A\u9CE5\u7FBD\u927E\u7ACB\u753A11\u756A\u5730") 23086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("\u4eac\u90fd\u5e9c") // Kyoto prefecture, added 23186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("\u4EAC\u90FD\u5E02") // Kyoto city 23286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // .setDependentLocality("\u5357\u533A") 23386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setCountry("JP") 23486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("601-8501") 23586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 23686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(address, problems); 23786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 23886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 23986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 24086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testJapanLatin() { 24186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // added AdminArea since address verification can't infer it from Kyoto City 24286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // commented out dependent locality since address verification doesn't use it 24386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com final AddressData address = 24486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com new AddressData.Builder() 24586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setRecipient("Shigeru Miyamoto") // SHIGERU_MIYAMOTO_ENGLISH 24686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAddress("11-1 Kamitoba-hokotate-cho") 24786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setAdminArea("KYOTO") // Kyoto prefecture, added 24886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLocality("Kyoto") // Kyoto city 24986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // .setDependentLocality("Minami-ku") 25086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setLanguageCode("ja_Latn") 25186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setCountry("JP") 25286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .setPostalCode("601-8501") 25386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com .build(); 25486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com verifier.verify(address, problems); 25586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(problems.toString(), problems.isEmpty()); 25686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 257a19c5e2726c61a028b879068d1aa289e20548215jeanine@google.com} 258