diff options
Diffstat (limited to 'java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java')
-rw-r--r-- | java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java b/java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java new file mode 100644 index 0000000..b57955a --- /dev/null +++ b/java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.i18n.addressinput; + +import com.android.i18n.addressinput.testing.AddressDataMapLoader; + +import junit.framework.TestCase; + +/** + * Tests to ensure that {@code AddressVerificationData} can parse all the default data. + */ +public class AddressVerificationDataTest extends TestCase { + + private static final AddressVerificationData ADDRESS_DATA = + new AddressVerificationData(AddressDataMapLoader.DATA); + + public void testParseAllData() { + for (String key : ADDRESS_DATA.keys()) { + AddressVerificationNodeData nodeData = ADDRESS_DATA.get(key); + assertNotNull(key + " maps to null value.", nodeData); + assertNotNull("Id is required", nodeData.get(AddressDataKey.ID)); + } + } + + public void testLoadingCountries() { + AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data"); + String[] countries = nodeData.get(AddressDataKey.COUNTRIES).split("~"); + assertTrue(countries.length > 0); + } + + public void testUsData() { + AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data/US"); + assertEquals("data/US", nodeData.get(AddressDataKey.ID)); + assertNotNull(nodeData.get(AddressDataKey.SUB_KEYS)); + assertNotNull(nodeData.get(AddressDataKey.SUB_NAMES)); + assertEquals("en", nodeData.get(AddressDataKey.LANG)); + } + + public void testCaData() { + AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data/CA"); + String names = nodeData.get(AddressDataKey.SUB_NAMES); + String keys = nodeData.get(AddressDataKey.SUB_KEYS); + + assertEquals("data/CA", nodeData.get(AddressDataKey.ID)); + assertEquals("en", nodeData.get(AddressDataKey.LANG)); + + assertEquals("AB~BC~MB~NB~NL~NT~NS~NU~ON~PE~QC~SK~YT", keys); + assertEquals("Alberta~British Columbia~Manitoba~New Brunswick" + + "~Newfoundland and Labrador~Northwest Territories~Nova Scotia~Nunavut" + + "~Ontario~Prince Edward Island~Quebec~Saskatchewan~Yukon", + names); + } + + public void testCaFrenchData() { + AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data/CA--fr"); + String names = nodeData.get(AddressDataKey.SUB_NAMES); + String keys = nodeData.get(AddressDataKey.SUB_KEYS); + + assertEquals("data/CA--fr", nodeData.get(AddressDataKey.ID)); + assertEquals("fr", nodeData.get(AddressDataKey.LANG)); + assertEquals("AB~BC~PE~MB~NB~NS~NU~ON~QC~SK~NL~NT~YT", keys); + assertTrue(names.contains("Colombie")); + } + + public void testBackSlashUnEscaped() { + for (String lookupKey : ADDRESS_DATA.keys()) { + AddressVerificationNodeData nodeData = ADDRESS_DATA.get(lookupKey); + for (AddressDataKey dataKey : AddressDataKey.values()) { + String val = nodeData.get(dataKey); + if (val != null) { + assertFalse("Backslashes need to be unescaped: " + val, val.contains("\\\\")); + } + } + } + + // Spot check. + assertEquals("Kazhakstan's postal code pattern mismatched", "\\d{6}", + ADDRESS_DATA.get("data/KZ").get(AddressDataKey.ZIP)); + } + + public void testExampleData() { + assertNotNull("Expects example data.", AddressDataMapLoader.DATA.get("examples")); + assertNotNull("Expects example US address.", + AddressDataMapLoader.DATA.get("examples/US/local/en")); + assertEquals("'examples/TW/local/zh_Hant' and 'examples/TW/local/_default' should " + + "return same value.", + AddressDataMapLoader.DATA.get("examples/TW/local/zh_Hant"), + AddressDataMapLoader.DATA.get("examples/TW/local/_default")); + } +} |