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