10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2007 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.suitebuilder.annotation.MediumTest; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.TestPhoneNotifier; 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.gsm.SmsMessage; 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.test.SimulatedCommands; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.test.SimulatedRadioControl; 24d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkaimport com.android.internal.telephony.uicc.IccUtils; 25d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenka 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.AndroidTestCase; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.suitebuilder.annotation.Suppress; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Iterator; 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide} 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class SMSDispatcherTest extends AndroidTestCase { 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @MediumTest 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testCMT1() throws Exception { 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsMessage sms; 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsHeader header; 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String[] lines = new String[2]; 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville lines[0] = "+CMT: ,158"; 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville lines[1] = "07914140279510F6440A8111110301003BF56080426101748A8C0B05040B" 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "8423F000035502010106276170706C69636174696F6E2F766E642E776170" 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "2E6D6D732D6D65737361676500AF848D0185B4848C8298524F347839776F" 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "7547514D4141424C3641414141536741415A4B554141414141008D908918" 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "802B31363530323438363137392F545950453D504C4D4E008A808E028000" 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "88058103093A8083687474703A2F2F36"; 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sms = SmsMessage.newFromCMT(lines); 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville header = sms.getUserDataHeader(); 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(header); 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(sms.getUserData()); 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(header.concatRef); 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.refNumber, 85); 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.msgCount, 2); 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.seqNumber, 1); 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.isEightBits, true); 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(header.portAddrs); 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.portAddrs.destPort, 2948); 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.portAddrs.origPort, 9200); 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.portAddrs.areEightBits, false); 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @MediumTest 660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testCMT2() throws Exception { 670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsMessage sms; 680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsHeader header; 690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String[] lines = new String[2]; 710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville lines[0] = "+CMT: ,77"; 730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville lines[1] = "07914140279510F6440A8111110301003BF56080426101848A3B0B05040B8423F" 740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "00003550202362E3130322E3137312E3135302F524F347839776F7547514D4141" 750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "424C3641414141536741415A4B55414141414100"; 760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sms = SmsMessage.newFromCMT(lines); 780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville header = sms.getUserDataHeader(); 790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(header); 800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(sms.getUserData()); 810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(header.concatRef); 820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.refNumber, 85); 830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.msgCount, 2); 840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.seqNumber, 2); 850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.concatRef.isEightBits, true); 860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(header.portAddrs); 870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.portAddrs.destPort, 2948); 880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.portAddrs.origPort, 9200); 890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertEquals(header.portAddrs.areEightBits, false); 900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @MediumTest 930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public void testEfRecord() throws Exception { 940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsMessage sms; 950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String s = "03029111000c9194981492631000f269206190022000a053e4534a05358bd3" 970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "69f05804259da0219418a40641536a110a0aea408080604028180e888462c1" 980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "50341c0f484432a1542c174c46b3e1743c9f9068442a994ea8946ac56ab95e" 990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "b0986c46abd96eb89c6ec7ebf97ec0a070482c1a8fc8a472c96c3a9fd0a874" 1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "4aad5aafd8ac76cbed7abfe0b0784c2e9bcfe8b47acd6ebbdff0b87c4eafdb" 1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville + "eff8bc7ecfeffbffffffffffffffffffffffffffff"; 1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville byte[] data = IccUtils.hexStringToBytes(s); 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville sms = SmsMessage.createFromEfRecord(1, data); 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville assertNotNull(sms.getMessageBody()); 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 108