| /* |
| * 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.gsm; |
| |
| import com.android.internal.telephony.gsm.SimTlv; |
| import com.android.internal.telephony.gsm.SimUtils; |
| import junit.framework.TestCase; |
| import android.test.suitebuilder.annotation.SmallTest; |
| |
| |
| public class SimUtilsTest extends TestCase { |
| |
| @SmallTest |
| public void testBasic() throws Exception { |
| byte[] data, data2; |
| |
| /* |
| * bcdToString() |
| */ |
| |
| // An EF[ICCID] record |
| data = SimUtils.hexStringToBytes("981062400510444868f2"); |
| assertEquals("8901260450014484862", SimUtils.bcdToString(data, 0, data.length)); |
| |
| // skip the first and last bytes |
| assertEquals("0126045001448486", SimUtils.bcdToString(data, 1, data.length - 2)); |
| |
| // Stops on invalid BCD value |
| data = SimUtils.hexStringToBytes("98F062400510444868f2"); |
| assertEquals("890", SimUtils.bcdToString(data, 0, data.length)); |
| |
| /* |
| * bcdByteToInt() |
| */ |
| |
| assertEquals(98, SimUtils.bcdByteToInt((byte) 0x89)); |
| |
| // Out of range is treated as 0 |
| assertEquals(8, SimUtils.bcdByteToInt((byte) 0x8c)); |
| |
| /* |
| * adnStringFieldToString() |
| */ |
| |
| |
| data = SimUtils.hexStringToBytes("00566f696365204d61696c07918150367742f3ffffffffffff"); |
| // Again, skip prepended 0 |
| // (this is an EF[ADN] record) |
| assertEquals("Voice Mail", SimUtils.adnStringFieldToString(data, 1, data.length - 15)); |
| |
| data = SimUtils.hexStringToBytes("809673539A5764002F004DFFFFFFFFFF"); |
| // (this is from an EF[ADN] record) |
| assertEquals("\u9673\u539A\u5764/M", SimUtils.adnStringFieldToString(data, 0, data.length)); |
| |
| data = SimUtils.hexStringToBytes("810A01566fec6365204de0696cFFFFFF"); |
| // (this is made up to test since I don't have a real one) |
| assertEquals("Vo\u00ECce M\u00E0il", SimUtils.adnStringFieldToString(data, 0, data.length)); |
| |
| data = SimUtils.hexStringToBytes("820505302D82d32d31"); |
| // Example from 3GPP TS 11.11 V18.1.3.0 annex B |
| assertEquals("-\u0532\u0583-1", SimUtils.adnStringFieldToString(data, 0, data.length)); |
| } |
| |
| } |
| |