1/* 2 * Copyright (C) 2006 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 17package com.android.internal.telephony; 18 19import junit.framework.TestCase; 20import android.test.suitebuilder.annotation.SmallTest; 21 22/** 23 * {@hide} 24 */ 25public class AdnRecordTest extends TestCase { 26 27 @SmallTest 28 public void testBasic() throws Exception { 29 AdnRecord adn; 30 31 // 32 // Typical record 33 // 34 adn = new AdnRecord( 35 IccUtils.hexStringToBytes("566F696365204D61696C07918150367742F3FFFFFFFFFFFF")); 36 37 assertEquals("Voice Mail", adn.getAlphaTag()); 38 assertEquals("+18056377243", adn.getNumber()); 39 assertFalse(adn.isEmpty()); 40 41 // 42 // Empty records, empty strings 43 // 44 adn = new AdnRecord( 45 IccUtils.hexStringToBytes("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")); 46 47 assertEquals("", adn.getAlphaTag()); 48 assertEquals("", adn.getNumber()); 49 assertTrue(adn.isEmpty()); 50 51 // 52 // Record too short 53 // 54 adn = new AdnRecord(IccUtils.hexStringToBytes( "FF")); 55 56 assertEquals("", adn.getAlphaTag()); 57 assertEquals("", adn.getNumber()); 58 assertTrue(adn.isEmpty()); 59 60 // 61 // TOA = 0xff ("control string") 62 // 63 adn = new AdnRecord( 64 IccUtils.hexStringToBytes("566F696365204D61696C07FF8150367742F3FFFFFFFFFFFF")); 65 66 assertEquals("Voice Mail", adn.getAlphaTag()); 67 assertEquals("18056377243", adn.getNumber()); 68 assertFalse(adn.isEmpty()); 69 70 // 71 // TOA = 0x81 (unknown) 72 // 73 adn = new AdnRecord( 74 IccUtils.hexStringToBytes("566F696365204D61696C07818150367742F3FFFFFFFFFFFF")); 75 76 assertEquals("Voice Mail", adn.getAlphaTag()); 77 assertEquals("18056377243", adn.getNumber()); 78 assertFalse(adn.isEmpty()); 79 80 // 81 // Number Length is too long 82 // 83 adn = new AdnRecord( 84 IccUtils.hexStringToBytes("566F696365204D61696C0F918150367742F3FFFFFFFFFFFF")); 85 86 assertEquals("Voice Mail", adn.getAlphaTag()); 87 assertEquals("", adn.getNumber()); 88 assertFalse(adn.isEmpty()); 89 90 // 91 // Number Length is zero (invalid) 92 // 93 adn = new AdnRecord( 94 IccUtils.hexStringToBytes("566F696365204D61696C00918150367742F3FFFFFFFFFFFF")); 95 96 assertEquals("Voice Mail", adn.getAlphaTag()); 97 assertEquals("", adn.getNumber()); 98 assertFalse(adn.isEmpty()); 99 100 // 101 // Number Length is 2, first number byte is FF, TOA is international 102 // 103 adn = new AdnRecord( 104 IccUtils.hexStringToBytes("566F696365204D61696C0291FF50367742F3FFFFFFFFFFFF")); 105 106 assertEquals("Voice Mail", adn.getAlphaTag()); 107 assertEquals("", adn.getNumber()); 108 assertFalse(adn.isEmpty()); 109 110 // 111 // Number Length is 2, first number digit is valid, TOA is international 112 // 113 adn = new AdnRecord( 114 IccUtils.hexStringToBytes("566F696365204D61696C0291F150367742F3FFFFFFFFFFFF")); 115 116 assertEquals("Voice Mail", adn.getAlphaTag()); 117 assertEquals("+1", adn.getNumber()); 118 assertFalse(adn.isEmpty()); 119 120 // 121 // An extended record 122 // 123 adn = new AdnRecord( 124 IccUtils.hexStringToBytes( 125 "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01")); 126 127 assertEquals("Adgjm", adn.getAlphaTag()); 128 assertEquals("+18885551212,12345678", adn.getNumber()); 129 assertFalse(adn.isEmpty()); 130 assertTrue(adn.hasExtendedRecord()); 131 132 adn.appendExtRecord(IccUtils.hexStringToBytes("0206092143658709ffffffffff")); 133 134 assertEquals("Adgjm", adn.getAlphaTag()); 135 assertEquals("+18885551212,12345678901234567890", adn.getNumber()); 136 assertFalse(adn.isEmpty()); 137 138 // 139 // An extended record with an invalid extension 140 // 141 adn = new AdnRecord( 142 IccUtils.hexStringToBytes( 143 "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01")); 144 145 assertEquals("Adgjm", adn.getAlphaTag()); 146 assertEquals("+18885551212,12345678", adn.getNumber()); 147 assertFalse(adn.isEmpty()); 148 assertTrue(adn.hasExtendedRecord()); 149 150 adn.appendExtRecord(IccUtils.hexStringToBytes("0106092143658709ffffffffff")); 151 152 assertEquals("Adgjm", adn.getAlphaTag()); 153 assertEquals("+18885551212,12345678", adn.getNumber()); 154 assertFalse(adn.isEmpty()); 155 156 // 157 // An extended record with an invalid extension 158 // 159 adn = new AdnRecord( 160 IccUtils.hexStringToBytes( 161 "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01")); 162 163 assertEquals("Adgjm", adn.getAlphaTag()); 164 assertEquals("+18885551212,12345678", adn.getNumber()); 165 assertFalse(adn.isEmpty()); 166 assertTrue(adn.hasExtendedRecord()); 167 168 adn.appendExtRecord(IccUtils.hexStringToBytes("020B092143658709ffffffffff")); 169 170 assertEquals("Adgjm", adn.getAlphaTag()); 171 assertEquals("+18885551212,12345678", adn.getNumber()); 172 assertFalse(adn.isEmpty()); 173 } 174} 175 176 177