Home | History | Annotate | Download | only in cts
      1 /*
      2  * Copyright (C) 2008 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 android.text.util.cts;
     18 
     19 import static org.junit.Assert.assertEquals;
     20 import static org.junit.Assert.assertNull;
     21 
     22 import android.support.test.filters.SmallTest;
     23 import android.support.test.runner.AndroidJUnit4;
     24 import android.text.util.Rfc822Token;
     25 
     26 import org.junit.Test;
     27 import org.junit.runner.RunWith;
     28 
     29 /**
     30  * Test {@link Rfc822Token}.
     31  */
     32 @SmallTest
     33 @RunWith(AndroidJUnit4.class)
     34 public class Rfc822TokenTest {
     35     @Test
     36     public void testConstructor() {
     37         final String name = "John Doe";
     38         final String address = "jdoe (at) example.net";
     39         final String comment = "work";
     40         Rfc822Token rfc822Token1 = new Rfc822Token(name, address, comment);
     41         assertEquals(name, rfc822Token1.getName());
     42         assertEquals(address, rfc822Token1.getAddress());
     43         assertEquals(comment, rfc822Token1.getComment());
     44 
     45         Rfc822Token rfc822Token2 = new Rfc822Token(null, address, comment);
     46         assertNull(rfc822Token2.getName());
     47         assertEquals(address, rfc822Token2.getAddress());
     48         assertEquals(comment, rfc822Token2.getComment());
     49 
     50         Rfc822Token rfc822Token3 = new Rfc822Token(name, null, comment);
     51         assertEquals(name, rfc822Token3.getName());
     52         assertNull(rfc822Token3.getAddress());
     53         assertEquals(comment, rfc822Token3.getComment());
     54 
     55         Rfc822Token rfc822Token4 = new Rfc822Token(name, address, null);
     56         assertEquals(name, rfc822Token4.getName());
     57         assertEquals(address, rfc822Token4.getAddress());
     58         assertNull(rfc822Token4.getComment());
     59     }
     60 
     61     @Test
     62     public void testAccessName() {
     63         String name = "John Doe";
     64         final String address = "jdoe (at) example.net";
     65         final String comment = "work";
     66         Rfc822Token rfc822Token = new Rfc822Token(name, address, comment);
     67         assertEquals(name, rfc822Token.getName());
     68 
     69         name = "Ann Lee";
     70         rfc822Token.setName(name);
     71         assertEquals(name, rfc822Token.getName());
     72 
     73         name = "Charles Hanson";
     74         rfc822Token.setName(name);
     75         assertEquals(name, rfc822Token.getName());
     76 
     77         rfc822Token.setName(null);
     78         assertNull(rfc822Token.getName());
     79     }
     80 
     81     @Test
     82     public void testQuoteComment() {
     83         assertEquals("work", Rfc822Token.quoteComment("work"));
     84 
     85         assertEquals("\\\\\\(work\\)", Rfc822Token.quoteComment("\\(work)"));
     86     }
     87 
     88     @Test(expected=NullPointerException.class)
     89     public void testQuoteCommentNull() {
     90         Rfc822Token.quoteComment(null);
     91     }
     92 
     93     @Test
     94     public void testAccessComment() {
     95         final String name = "John Doe";
     96         final String address = "jdoe (at) example.net";
     97         String comment = "work";
     98         Rfc822Token rfc822Token = new Rfc822Token(name, address, comment);
     99         assertEquals(comment, rfc822Token.getComment());
    100 
    101         comment = "secret";
    102         rfc822Token.setComment(comment);
    103         assertEquals(comment, rfc822Token.getComment());
    104 
    105         comment = "";
    106         rfc822Token.setComment(comment);
    107         assertEquals(comment, rfc822Token.getComment());
    108 
    109         rfc822Token.setComment(null);
    110         assertNull(rfc822Token.getComment());
    111     }
    112 
    113     @Test
    114     public void testAccessAddress() {
    115         final String name = "John Doe";
    116         String address = "jdoe (at) example.net";
    117         final String comment = "work";
    118         Rfc822Token rfc822Token = new Rfc822Token(name, address, comment);
    119         assertEquals(address, rfc822Token.getAddress());
    120 
    121         address = "johndoe (at) example.com";
    122         rfc822Token.setAddress(address);
    123         assertEquals(address, rfc822Token.getAddress());
    124 
    125         address = "";
    126         rfc822Token.setAddress(address);
    127         assertEquals(address, rfc822Token.getAddress());
    128 
    129         rfc822Token.setAddress(null);
    130         assertNull(rfc822Token.getAddress());
    131     }
    132 
    133     @Test
    134     public void testToString() {
    135         Rfc822Token rfc822Token1 = new Rfc822Token("John Doe", "jdoe (at) example.net", "work");
    136         assertEquals("John Doe (work) <jdoe (at) example.net>", rfc822Token1.toString());
    137 
    138         Rfc822Token rfc822Token2 = new Rfc822Token("\"John Doe\"",
    139                 "\\jdoe (at) example.net", "\\(work)");
    140         assertEquals("\"\\\"John Doe\\\"\" (\\\\\\(work\\)) <\\jdoe (at) example.net>",
    141                 rfc822Token2.toString());
    142 
    143         Rfc822Token rfc822Token3 = new Rfc822Token(null, "jdoe (at) example.net", "");
    144         assertEquals("<jdoe (at) example.net>", rfc822Token3.toString());
    145 
    146         Rfc822Token rfc822Token4 = new Rfc822Token("John Doe", null, "work");
    147         assertEquals("John Doe (work) ", rfc822Token4.toString());
    148 
    149         Rfc822Token rfc822Token5 = new Rfc822Token("John Doe", "jdoe (at) example.net", null);
    150         assertEquals("John Doe <jdoe (at) example.net>", rfc822Token5.toString());
    151 
    152         Rfc822Token rfc822Token6 = new Rfc822Token(null, null, null);
    153         assertEquals("", rfc822Token6.toString());
    154     }
    155 
    156     @Test
    157     public void testQuoteNameIfNecessary() {
    158         assertEquals("UPPERlower space 0123456789",
    159                 Rfc822Token.quoteNameIfNecessary("UPPERlower space 0123456789"));
    160         assertEquals("\"jdoe (at) example.net\"", Rfc822Token.quoteNameIfNecessary("jdoe (at) example.net"));
    161         assertEquals("\"*name\"", Rfc822Token.quoteNameIfNecessary("*name"));
    162 
    163         assertEquals("", Rfc822Token.quoteNameIfNecessary(""));
    164     }
    165 
    166     @Test(expected=NullPointerException.class)
    167     public void testQuoteNameIfNecessaryNull() {
    168         Rfc822Token.quoteNameIfNecessary(null);
    169     }
    170 
    171     @Test
    172     public void testQuoteName() {
    173         assertEquals("John Doe", Rfc822Token.quoteName("John Doe"));
    174         assertEquals("\\\"John Doe\\\"", Rfc822Token.quoteName("\"John Doe\""));
    175         assertEquals("\\\\\\\"John Doe\\\"", Rfc822Token.quoteName("\\\"John Doe\""));
    176     }
    177 
    178     @Test(expected=NullPointerException.class)
    179     public void testQuoteNameNull() {
    180         Rfc822Token.quoteName(null);
    181     }
    182 }
    183