Home | History | Annotate | Download | only in contacts
      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 com.android.providers.contacts.PostalSplitter.Postal;
     20 
     21 import android.test.suitebuilder.annotation.SmallTest;
     22 
     23 import java.util.Locale;
     24 
     25 import junit.framework.TestCase;
     26 
     27 /**
     28  * Tests for {@link PostalSplitter}, especially for en_US locale.
     29  *
     30  * Run the test like this:
     31  * <code>
     32  * adb shell am instrument -e class com.android.providers.contacts.PostalSplitterTest -w \
     33  *         com.android.providers.contacts.tests/android.test.InstrumentationTestRunner
     34  * </code>
     35  */
     36 @SmallTest
     37 public class PostalSplitterTest extends TestCase {
     38     private PostalSplitter mPostalSplitter;
     39 
     40     @Override
     41     protected void setUp() throws Exception {
     42         super.setUp();
     43 
     44         mPostalSplitter = new PostalSplitter(Locale.US);
     45     }
     46 
     47     public void testNull() {
     48         assertSplitPostal(null, null, null, null, null, null, null, null);
     49         assertJoinedPostal(null, null, null, null, null, null, null, null);
     50     }
     51 
     52     public void testEmpty() {
     53         assertSplitPostal("", null, null, null, null, null, null, null);
     54         assertJoinedPostal(null, null, null, null, null, null, null, null);
     55     }
     56 
     57     public void testSpaces() {
     58         assertSplitPostal(" ", " ", null, null, null, null, null, null);
     59         assertJoinedPostal(" ", " ", null, null, null, null, null, null);
     60     }
     61 
     62     public void testPobox() {
     63         assertJoinedPostal("PO Box 2600\nImaginationland", null, "PO Box 2600", null,
     64                 "Imaginationland", null, null, null);
     65     }
     66 
     67     public void testNormal() {
     68         assertJoinedPostal("1600 Amphitheatre Parkway\nMountain View, CA 94043",
     69                 "1600 Amphitheatre Parkway", null, null, "Mountain View", "CA", "94043", null);
     70     }
     71 
     72     public void testMissingRegion() {
     73         assertJoinedPostal("1600 Amphitheatre Parkway\nMountain View 94043",
     74                 "1600 Amphitheatre Parkway", null, null, "Mountain View", null, "94043", null);
     75 
     76         assertJoinedPostal("1600 Amphitheatre Parkway\n94043",
     77                 "1600 Amphitheatre Parkway", null, null, null, null, "94043", null);
     78 
     79         assertJoinedPostal("1600 Amphitheatre Parkway\n94043\nUSA",
     80                 "1600 Amphitheatre Parkway", null, null, null, null, "94043", "USA");
     81     }
     82 
     83     public void testMissingPostcode() {
     84         assertJoinedPostal("1600 Amphitheatre Parkway\nMountain View, CA",
     85                 "1600 Amphitheatre Parkway", null, null, "Mountain View", "CA", null, null);
     86 
     87         assertJoinedPostal("1600 Amphitheatre Parkway\nMountain View, CA\nUSA",
     88                 "1600 Amphitheatre Parkway", null, null, "Mountain View", "CA", null, "USA");
     89 
     90         assertJoinedPostal("1600 Amphitheatre Parkway\nUSA",
     91                 "1600 Amphitheatre Parkway", null, null, null, null, null, "USA");
     92     }
     93 
     94     public void testMissingStreet() {
     95         assertJoinedPostal("Mr. Rogers\nUSA", null, null, "Mr. Rogers", null, null, null, "USA");
     96     }
     97 
     98     private void assertSplitPostal(String formattedPostal, String street, String pobox,
     99             String neighborhood, String city, String region, String postcode, String country) {
    100         final Postal postal = new Postal();
    101         mPostalSplitter.split(postal, formattedPostal);
    102         assertEquals(street, postal.street);
    103         assertEquals(pobox, postal.pobox);
    104         assertEquals(neighborhood, postal.neighborhood);
    105         assertEquals(city, postal.city);
    106         assertEquals(region, postal.region);
    107         assertEquals(postcode, postal.postcode);
    108         assertEquals(country, postal.country);
    109     }
    110 
    111     private void assertJoinedPostal(String formattedPostal, String street, String pobox,
    112             String neighborhood, String city, String region, String postcode, String country) {
    113         final Postal postal = new Postal();
    114         postal.street = street;
    115         postal.pobox = pobox;
    116         postal.neighborhood = neighborhood;
    117         postal.city = city;
    118         postal.region = region;
    119         postal.postcode = postcode;
    120         postal.country = country;
    121 
    122         final String joined = mPostalSplitter.join(postal);
    123         assertEquals(formattedPostal, joined);
    124     }
    125 }
    126