/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; import junit.framework.TestCase; import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.uicc.AdnRecord; import com.android.internal.telephony.uicc.IccUtils; /** * {@hide} */ public class AdnRecordTest extends TestCase { @SmallTest public void testBasic() throws Exception { AdnRecord adn; // // Typical record // adn = new AdnRecord( IccUtils.hexStringToBytes("566F696365204D61696C07918150367742F3FFFFFFFFFFFF")); assertEquals("Voice Mail", adn.getAlphaTag()); assertEquals("+18056377243", adn.getNumber()); assertFalse(adn.isEmpty()); // // Empty records, empty strings // adn = new AdnRecord( IccUtils.hexStringToBytes("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")); assertEquals("", adn.getAlphaTag()); assertEquals("", adn.getNumber()); assertTrue(adn.isEmpty()); // // Record too short // adn = new AdnRecord(IccUtils.hexStringToBytes( "FF")); assertEquals("", adn.getAlphaTag()); assertEquals("", adn.getNumber()); assertTrue(adn.isEmpty()); // // TOA = 0xff ("control string") // adn = new AdnRecord( IccUtils.hexStringToBytes("566F696365204D61696C07FF8150367742F3FFFFFFFFFFFF")); assertEquals("Voice Mail", adn.getAlphaTag()); assertEquals("18056377243", adn.getNumber()); assertFalse(adn.isEmpty()); // // TOA = 0x81 (unknown) // adn = new AdnRecord( IccUtils.hexStringToBytes("566F696365204D61696C07818150367742F3FFFFFFFFFFFF")); assertEquals("Voice Mail", adn.getAlphaTag()); assertEquals("18056377243", adn.getNumber()); assertFalse(adn.isEmpty()); // // Number Length is too long // adn = new AdnRecord( IccUtils.hexStringToBytes("566F696365204D61696C0F918150367742F3FFFFFFFFFFFF")); assertEquals("Voice Mail", adn.getAlphaTag()); assertEquals("", adn.getNumber()); assertFalse(adn.isEmpty()); // // Number Length is zero (invalid) // adn = new AdnRecord( IccUtils.hexStringToBytes("566F696365204D61696C00918150367742F3FFFFFFFFFFFF")); assertEquals("Voice Mail", adn.getAlphaTag()); assertEquals("", adn.getNumber()); assertFalse(adn.isEmpty()); // // Number Length is 2, first number byte is FF, TOA is international // adn = new AdnRecord( IccUtils.hexStringToBytes("566F696365204D61696C0291FF50367742F3FFFFFFFFFFFF")); assertEquals("Voice Mail", adn.getAlphaTag()); assertEquals("", adn.getNumber()); assertFalse(adn.isEmpty()); // // Number Length is 2, first number digit is valid, TOA is international // adn = new AdnRecord( IccUtils.hexStringToBytes("566F696365204D61696C0291F150367742F3FFFFFFFFFFFF")); assertEquals("Voice Mail", adn.getAlphaTag()); assertEquals("+1", adn.getNumber()); assertFalse(adn.isEmpty()); // // An extended record // adn = new AdnRecord( IccUtils.hexStringToBytes( "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01")); assertEquals("Adgjm", adn.getAlphaTag()); assertEquals("+18885551212,12345678", adn.getNumber()); assertFalse(adn.isEmpty()); assertTrue(adn.hasExtendedRecord()); adn.appendExtRecord(IccUtils.hexStringToBytes("0206092143658709ffffffffff")); assertEquals("Adgjm", adn.getAlphaTag()); assertEquals("+18885551212,12345678901234567890", adn.getNumber()); assertFalse(adn.isEmpty()); // // An extended record with an invalid extension // adn = new AdnRecord( IccUtils.hexStringToBytes( "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01")); assertEquals("Adgjm", adn.getAlphaTag()); assertEquals("+18885551212,12345678", adn.getNumber()); assertFalse(adn.isEmpty()); assertTrue(adn.hasExtendedRecord()); adn.appendExtRecord(IccUtils.hexStringToBytes("0106092143658709ffffffffff")); assertEquals("Adgjm", adn.getAlphaTag()); assertEquals("+18885551212,12345678", adn.getNumber()); assertFalse(adn.isEmpty()); // // An extended record with an invalid extension // adn = new AdnRecord( IccUtils.hexStringToBytes( "4164676A6DFFFFFFFFFFFFFFFFFFFFFF0B918188551512C221436587FF01")); assertEquals("Adgjm", adn.getAlphaTag()); assertEquals("+18885551212,12345678", adn.getNumber()); assertFalse(adn.isEmpty()); assertTrue(adn.hasExtendedRecord()); adn.appendExtRecord(IccUtils.hexStringToBytes("020B092143658709ffffffffff")); assertEquals("Adgjm", adn.getAlphaTag()); assertEquals("+18885551212,12345678", adn.getNumber()); assertFalse(adn.isEmpty()); } }