1 /* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.providers.contacts; 18 19 import android.test.suitebuilder.annotation.SmallTest; 20 21 import com.android.providers.contacts.PostalSplitter.Postal; 22 23 import junit.framework.TestCase; 24 25 import java.util.Locale; 26 27 /** 28 * Tests for {@link PostalSplitter}, especially for ja_JP locale. 29 * This class depends on the assumption that all the tests in {@link NameSplitterTest} pass. 30 * 31 * Run the test like this: 32 * <code> 33 * adb shell am instrument -e class com.android.providers.contacts.PostalSplitterForJapaneseTest -w 34 * com.android.providers.contacts.tests/android.test.InstrumentationTestRunner 35 * </code> 36 */ 37 @SmallTest 38 public class PostalSplitterForJapaneseTest extends TestCase { 39 private PostalSplitter mPostalSplitter; 40 41 // Postal address for Tokyo Metropolitan City Hall (Tokyo-Tocho) as of 2009 + pseudo PO box. 42 // Japanese don't use neighborhood, so it is not used in this test suite. 43 // 44 // "Nihon" in Kanji 45 private static final String COUNTRY = "\u65E5\u672C"; 46 private static final String POSTCODE = "163-8001"; 47 // "Tokyo-to" in Kanji 48 private static final String REGION = "\u6771\u4EAC\u90FD"; 49 // "Sinjuku-ku" in Kanji 50 private static final String CITY = "\u65B0\u5BBF\u533A"; 51 // Nishi-Sinjuku 2-8-1 52 private static final String STREET = "\u897F\u65B0\u5BBF 2-8-1"; 53 // Pseudo PO box for test: "Sisyobako 404" 54 private static final String POBOX = "\u79C1\u66F8\u7BB1"; 55 56 @Override setUp()57 protected void setUp() throws Exception { 58 super.setUp(); 59 60 mPostalSplitter = new PostalSplitter(Locale.JAPAN); 61 } 62 testNull()63 public void testNull() { 64 assertSplitPostal(null, null, null, null, null, null, null, null); 65 assertJoinedPostal(null, null, null, null, null, null, null, null); 66 } 67 testEmpty()68 public void testEmpty() { 69 assertSplitPostal("", null, null, null, null, null, null, null); 70 assertJoinedPostal(null, null, null, null, null, null, null, null); 71 } 72 testSpaces()73 public void testSpaces() { 74 assertSplitPostal(" ", " ", null, null, null, null, null, null); 75 assertJoinedPostal(" ", " ", null, null, null, null, null, null); 76 } 77 testPobox()78 public void testPobox() { 79 assertJoinedPostal(CITY + "\n" + POBOX, null, POBOX, null, CITY, null, null, null); 80 } 81 testNormal()82 public void testNormal() { 83 assertJoinedPostal(POSTCODE + "\n" + REGION + " " + CITY + "\n" + STREET, 84 STREET, null, null, CITY, REGION, POSTCODE, null); 85 } 86 testMissingRegion()87 public void testMissingRegion() { 88 assertJoinedPostal(POSTCODE + "\n" + REGION + "\n" + STREET, 89 STREET, null, null, REGION, null, POSTCODE, null); 90 91 assertJoinedPostal(POSTCODE + "\n" + STREET, 92 STREET, null, null, null, null, POSTCODE, null); 93 94 assertJoinedPostal(COUNTRY + " " + POSTCODE + "\n" + STREET, 95 STREET, null, null, null, null, POSTCODE, COUNTRY); 96 } 97 testMissingPostcode()98 public void testMissingPostcode() { 99 assertJoinedPostal(REGION + " " + CITY + "\n" + STREET, 100 STREET, null, null, CITY, REGION, null, null); 101 102 assertJoinedPostal(COUNTRY + "\n" + REGION + " " + CITY + "\n" + STREET, 103 STREET, null, null, CITY, REGION, null, COUNTRY); 104 105 assertJoinedPostal(COUNTRY + "\n" + STREET, 106 STREET, null, null, null, null, null, COUNTRY); 107 } 108 testMissingStreet()109 public void testMissingStreet() { 110 assertJoinedPostal(COUNTRY + "\n" + STREET, 111 null, null, STREET, null, null, null, COUNTRY); 112 } 113 assertSplitPostal(String formattedPostal, String street, String pobox, String neighborhood, String city, String region, String postcode, String country)114 private void assertSplitPostal(String formattedPostal, String street, String pobox, 115 String neighborhood, String city, String region, String postcode, String country) { 116 final Postal postal = new Postal(); 117 mPostalSplitter.split(postal, formattedPostal); 118 assertEquals(street, postal.street); 119 assertEquals(pobox, postal.pobox); 120 assertEquals(neighborhood, postal.neighborhood); 121 assertEquals(city, postal.city); 122 assertEquals(region, postal.region); 123 assertEquals(postcode, postal.postcode); 124 assertEquals(country, postal.country); 125 } 126 assertJoinedPostal(String formattedPostal, String street, String pobox, String neighborhood, String city, String region, String postcode, String country)127 private void assertJoinedPostal(String formattedPostal, String street, String pobox, 128 String neighborhood, String city, String region, String postcode, String country) { 129 final Postal postal = new Postal(); 130 postal.street = street; 131 postal.pobox = pobox; 132 postal.neighborhood = neighborhood; 133 postal.city = city; 134 postal.region = region; 135 postal.postcode = postcode; 136 postal.country = country; 137 138 final String joined = mPostalSplitter.join(postal); 139 assertEquals(formattedPostal, joined); 140 } 141 } 142