| /* |
| * 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.unit_tests; |
| |
| import com.android.internal.telephony.GsmAlphabet; |
| import com.android.internal.telephony.SmsHeader; |
| import com.android.internal.telephony.cdma.sms.BearerData; |
| import com.android.internal.telephony.cdma.sms.UserData; |
| import com.android.internal.telephony.cdma.sms.CdmaSmsAddress; |
| import com.android.internal.util.BitwiseInputStream; |
| import com.android.internal.util.BitwiseOutputStream; |
| import com.android.internal.util.HexDump; |
| |
| import android.test.AndroidTestCase; |
| import android.test.suitebuilder.annotation.SmallTest; |
| |
| import java.util.Iterator; |
| |
| import android.util.Log; |
| |
| public class CdmaSmsTest extends AndroidTestCase { |
| private final static String LOG_TAG = "Cdma_Sms_Test"; |
| |
| @SmallTest |
| public void testUserData7bitGsm() throws Exception { |
| String pdu = "00031040900112488ea794e074d69e1b7392c270326cde9e98"; |
| BearerData bearerData = BearerData.decode(HexDump.hexStringToByteArray(pdu)); |
| assertEquals("Test standard SMS", bearerData.userData.payloadStr); |
| } |
| |
| @SmallTest |
| public void testUserData7bitAscii() throws Exception { |
| String pdu = "0003100160010610262d5ab500"; |
| BearerData bearerData = BearerData.decode(HexDump.hexStringToByteArray(pdu)); |
| assertEquals("bjjj", bearerData.userData.payloadStr); |
| } |
| |
| @SmallTest |
| public void testUserData7bitAsciiTwo() throws Exception { |
| String pdu = "00031001d00109104539b4d052ebb3d0"; |
| BearerData bearerData = BearerData.decode(HexDump.hexStringToByteArray(pdu)); |
| assertEquals("SMS Rulz", bearerData.userData.payloadStr); |
| } |
| |
| @SmallTest |
| public void testUserDataIa5() throws Exception { |
| String pdu = "00031002100109184539b4d052ebb3d0"; |
| BearerData bearerData = BearerData.decode(HexDump.hexStringToByteArray(pdu)); |
| assertEquals("SMS Rulz", bearerData.userData.payloadStr); |
| } |
| |
| @SmallTest |
| public void testUserData7bitAsciiFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "Test standard SMS"; |
| userData.msgEncoding = UserData.ENCODING_7BIT_ASCII; |
| userData.msgEncodingSet = true; |
| bearerData.userData = userData; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(BearerData.MESSAGE_TYPE_DELIVER, revBearerData.messageType); |
| assertEquals(0, revBearerData.messageId); |
| assertEquals(false, revBearerData.hasUserDataHeader); |
| assertEquals(userData.msgEncoding, revBearerData.userData.msgEncoding); |
| assertEquals(userData.payloadStr.length(), revBearerData.userData.numFields); |
| assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); |
| } |
| |
| @SmallTest |
| public void testUserData7bitGsmFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "Test standard SMS"; |
| userData.msgEncoding = UserData.ENCODING_GSM_7BIT_ALPHABET; |
| userData.msgEncodingSet = true; |
| bearerData.userData = userData; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(BearerData.MESSAGE_TYPE_DELIVER, revBearerData.messageType); |
| assertEquals(0, revBearerData.messageId); |
| assertEquals(false, revBearerData.hasUserDataHeader); |
| assertEquals(userData.msgEncoding, revBearerData.userData.msgEncoding); |
| assertEquals(userData.payloadStr.length(), revBearerData.userData.numFields); |
| assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); |
| } |
| |
| @SmallTest |
| public void testUserDataUtf16Feedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "\u0160u\u1E5B\u0301r\u1ECFg\uD835\uDC1At\u00E9\u4E002\u3042"; |
| userData.msgEncoding = UserData.ENCODING_UNICODE_16; |
| userData.msgEncodingSet = true; |
| bearerData.userData = userData; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(BearerData.MESSAGE_TYPE_DELIVER, revBearerData.messageType); |
| assertEquals(0, revBearerData.messageId); |
| assertEquals(false, revBearerData.hasUserDataHeader); |
| assertEquals(userData.msgEncoding, revBearerData.userData.msgEncoding); |
| assertEquals(userData.payloadStr.length(), revBearerData.userData.numFields); |
| assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); |
| userData.msgEncoding = UserData.ENCODING_OCTET; |
| userData.msgEncodingSet = false; |
| revBearerData = BearerData.decode(BearerData.encode(bearerData)); |
| assertEquals(BearerData.MESSAGE_TYPE_DELIVER, revBearerData.messageType); |
| assertEquals(0, revBearerData.messageId); |
| assertEquals(false, revBearerData.hasUserDataHeader); |
| assertEquals(userData.msgEncoding, revBearerData.userData.msgEncoding); |
| assertEquals(userData.payloadStr.length(), revBearerData.userData.numFields); |
| assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); |
| } |
| |
| @SmallTest |
| public void testUserDataHeaderConcatRefFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 55; |
| SmsHeader.ConcatRef concatRef = new SmsHeader.ConcatRef(); |
| concatRef.refNumber = 0xEE; |
| concatRef.msgCount = 2; |
| concatRef.seqNumber = 2; |
| concatRef.isEightBits = true; |
| SmsHeader smsHeader = new SmsHeader(); |
| smsHeader.concatRef = concatRef; |
| byte[] encodedHeader = SmsHeader.toByteArray(smsHeader); |
| SmsHeader decodedHeader = SmsHeader.fromByteArray(encodedHeader); |
| assertEquals(decodedHeader.concatRef.refNumber, concatRef.refNumber); |
| assertEquals(decodedHeader.concatRef.msgCount, concatRef.msgCount); |
| assertEquals(decodedHeader.concatRef.seqNumber, concatRef.seqNumber); |
| assertEquals(decodedHeader.concatRef.isEightBits, concatRef.isEightBits); |
| assertEquals(decodedHeader.portAddrs, null); |
| UserData userData = new UserData(); |
| userData.payloadStr = "User Data Header (UDH) feedback test"; |
| userData.userDataHeader = smsHeader; |
| bearerData.userData = userData; |
| byte[] encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| decodedHeader = revBearerData.userData.userDataHeader; |
| assertEquals(decodedHeader.concatRef.refNumber, concatRef.refNumber); |
| assertEquals(decodedHeader.concatRef.msgCount, concatRef.msgCount); |
| assertEquals(decodedHeader.concatRef.seqNumber, concatRef.seqNumber); |
| assertEquals(decodedHeader.concatRef.isEightBits, concatRef.isEightBits); |
| assertEquals(decodedHeader.portAddrs, null); |
| } |
| |
| @SmallTest |
| public void testUserDataHeaderMixedFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 42; |
| SmsHeader.ConcatRef concatRef = new SmsHeader.ConcatRef(); |
| concatRef.refNumber = 0x34; |
| concatRef.msgCount = 5; |
| concatRef.seqNumber = 2; |
| concatRef.isEightBits = false; |
| SmsHeader.PortAddrs portAddrs = new SmsHeader.PortAddrs(); |
| portAddrs.destPort = 88; |
| portAddrs.origPort = 66; |
| portAddrs.areEightBits = false; |
| SmsHeader smsHeader = new SmsHeader(); |
| smsHeader.concatRef = concatRef; |
| smsHeader.portAddrs = portAddrs; |
| byte[] encodedHeader = SmsHeader.toByteArray(smsHeader); |
| SmsHeader decodedHeader = SmsHeader.fromByteArray(encodedHeader); |
| assertEquals(decodedHeader.concatRef.refNumber, concatRef.refNumber); |
| assertEquals(decodedHeader.concatRef.msgCount, concatRef.msgCount); |
| assertEquals(decodedHeader.concatRef.seqNumber, concatRef.seqNumber); |
| assertEquals(decodedHeader.concatRef.isEightBits, concatRef.isEightBits); |
| assertEquals(decodedHeader.portAddrs.destPort, portAddrs.destPort); |
| assertEquals(decodedHeader.portAddrs.origPort, portAddrs.origPort); |
| assertEquals(decodedHeader.portAddrs.areEightBits, portAddrs.areEightBits); |
| UserData userData = new UserData(); |
| userData.payloadStr = "User Data Header (UDH) feedback test"; |
| userData.userDataHeader = smsHeader; |
| bearerData.userData = userData; |
| byte[] encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| decodedHeader = revBearerData.userData.userDataHeader; |
| assertEquals(decodedHeader.concatRef.refNumber, concatRef.refNumber); |
| assertEquals(decodedHeader.concatRef.msgCount, concatRef.msgCount); |
| assertEquals(decodedHeader.concatRef.seqNumber, concatRef.seqNumber); |
| assertEquals(decodedHeader.concatRef.isEightBits, concatRef.isEightBits); |
| assertEquals(decodedHeader.portAddrs.destPort, portAddrs.destPort); |
| assertEquals(decodedHeader.portAddrs.origPort, portAddrs.origPort); |
| assertEquals(decodedHeader.portAddrs.areEightBits, portAddrs.areEightBits); |
| } |
| |
| @SmallTest |
| public void testReplyOption() throws Exception { |
| String pdu1 = "0003104090011648b6a794e0705476bf77bceae934fe5f6d94d87450080a0180"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals("Test Acknowledgement 1", bd1.userData.payloadStr); |
| assertEquals(true, bd1.userAckReq); |
| assertEquals(false, bd1.deliveryAckReq); |
| assertEquals(false, bd1.readAckReq); |
| assertEquals(false, bd1.reportReq); |
| String pdu2 = "0003104090011648b6a794e0705476bf77bceae934fe5f6d94d87490080a0140"; |
| BearerData bd2 = BearerData.decode(HexDump.hexStringToByteArray(pdu2)); |
| assertEquals("Test Acknowledgement 2", bd2.userData.payloadStr); |
| assertEquals(false, bd2.userAckReq); |
| assertEquals(true, bd2.deliveryAckReq); |
| assertEquals(false, bd2.readAckReq); |
| assertEquals(false, bd2.reportReq); |
| String pdu3 = "0003104090011648b6a794e0705476bf77bceae934fe5f6d94d874d0080a0120"; |
| BearerData bd3 = BearerData.decode(HexDump.hexStringToByteArray(pdu3)); |
| assertEquals("Test Acknowledgement 3", bd3.userData.payloadStr); |
| assertEquals(false, bd3.userAckReq); |
| assertEquals(false, bd3.deliveryAckReq); |
| assertEquals(true, bd3.readAckReq); |
| assertEquals(false, bd3.reportReq); |
| String pdu4 = "0003104090011648b6a794e0705476bf77bceae934fe5f6d94d87510080a0110"; |
| BearerData bd4 = BearerData.decode(HexDump.hexStringToByteArray(pdu4)); |
| assertEquals("Test Acknowledgement 4", bd4.userData.payloadStr); |
| assertEquals(false, bd4.userAckReq); |
| assertEquals(false, bd4.deliveryAckReq); |
| assertEquals(false, bd4.readAckReq); |
| assertEquals(true, bd4.reportReq); |
| } |
| |
| @SmallTest |
| public void testReplyOptionFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test reply option"; |
| bearerData.userData = userData; |
| bearerData.userAckReq = true; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(true, revBearerData.userAckReq); |
| assertEquals(false, revBearerData.deliveryAckReq); |
| assertEquals(false, revBearerData.readAckReq); |
| assertEquals(false, revBearerData.reportReq); |
| bearerData.userAckReq = false; |
| bearerData.deliveryAckReq = true; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| assertEquals(false, revBearerData.userAckReq); |
| assertEquals(true, revBearerData.deliveryAckReq); |
| assertEquals(false, revBearerData.readAckReq); |
| assertEquals(false, revBearerData.reportReq); |
| bearerData.deliveryAckReq = false; |
| bearerData.readAckReq = true; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| assertEquals(false, revBearerData.userAckReq); |
| assertEquals(false, revBearerData.deliveryAckReq); |
| assertEquals(true, revBearerData.readAckReq); |
| assertEquals(false, revBearerData.reportReq); |
| bearerData.readAckReq = false; |
| bearerData.reportReq = true; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| assertEquals(false, revBearerData.userAckReq); |
| assertEquals(false, revBearerData.deliveryAckReq); |
| assertEquals(false, revBearerData.readAckReq); |
| assertEquals(true, revBearerData.reportReq); |
| } |
| |
| @SmallTest |
| public void testNumberOfMessages() throws Exception { |
| String pdu1 = "000310409001124896a794e07595f69f199540ea759a0dc8e00b0163"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals("Test Voice mail 99", bd1.userData.payloadStr); |
| assertEquals(99, bd1.numberOfMessages); |
| String pdu2 = "00031040900113489ea794e07595f69f199540ea759a0988c0600b0164"; |
| BearerData bd2 = BearerData.decode(HexDump.hexStringToByteArray(pdu2)); |
| assertEquals("Test Voice mail 100", bd2.userData.payloadStr); |
| assertEquals(100, bd2.numberOfMessages); |
| } |
| |
| @SmallTest |
| public void testNumberOfMessagesFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test message count"; |
| bearerData.userData = userData; |
| bearerData.numberOfMessages = 27; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(bearerData.numberOfMessages, revBearerData.numberOfMessages); |
| } |
| |
| @SmallTest |
| public void testCallbackNum() throws Exception { |
| String pdu1 = "00031040900112488ea794e070d436cb638bc5e035ce2f97900e06910431323334"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals("Test Callback nbr", bd1.userData.payloadStr); |
| assertEquals(CdmaSmsAddress.DIGIT_MODE_8BIT_CHAR, bd1.callbackNumber.digitMode); |
| assertEquals(CdmaSmsAddress.TON_INTERNATIONAL_OR_IP, bd1.callbackNumber.ton); |
| assertEquals(CdmaSmsAddress.NUMBER_MODE_NOT_DATA_NETWORK, bd1.callbackNumber.numberMode); |
| assertEquals(CdmaSmsAddress.NUMBERING_PLAN_ISDN_TELEPHONY, bd1.callbackNumber.numberPlan); |
| assertEquals("1234", bd1.callbackNumber.address); |
| } |
| |
| @SmallTest |
| public void testCallbackNumDtmf() throws Exception { |
| String pdu1 = "00031002300109104539b4d052ebb3d00e07052d4c90a55080"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals("SMS Rulz", bd1.userData.payloadStr); |
| assertEquals(CdmaSmsAddress.DIGIT_MODE_4BIT_DTMF, bd1.callbackNumber.digitMode); |
| assertEquals(CdmaSmsAddress.TON_UNKNOWN, bd1.callbackNumber.ton); |
| assertEquals(CdmaSmsAddress.NUMBER_MODE_NOT_DATA_NETWORK, bd1.callbackNumber.numberMode); |
| assertEquals(CdmaSmsAddress.NUMBERING_PLAN_UNKNOWN, bd1.callbackNumber.numberPlan); |
| assertEquals("5099214001", bd1.callbackNumber.address); |
| } |
| |
| @SmallTest |
| public void testCallbackNumFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test callback number"; |
| bearerData.userData = userData; |
| CdmaSmsAddress addr = new CdmaSmsAddress(); |
| addr.digitMode = CdmaSmsAddress.DIGIT_MODE_8BIT_CHAR; |
| addr.ton = CdmaSmsAddress.TON_NATIONAL_OR_EMAIL; |
| addr.numberMode = CdmaSmsAddress.NUMBER_MODE_NOT_DATA_NETWORK; |
| addr.numberPlan = CdmaSmsAddress.NUMBERING_PLAN_UNKNOWN; |
| addr.address = "8005551212"; |
| addr.numberOfDigits = (byte)addr.address.length(); |
| bearerData.callbackNumber = addr; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| CdmaSmsAddress revAddr = revBearerData.callbackNumber; |
| assertEquals(addr.digitMode, revAddr.digitMode); |
| assertEquals(addr.ton, revAddr.ton); |
| assertEquals(addr.numberMode, revAddr.numberMode); |
| assertEquals(addr.numberPlan, revAddr.numberPlan); |
| assertEquals(addr.numberOfDigits, revAddr.numberOfDigits); |
| assertEquals(addr.address, revAddr.address); |
| addr.address = "8*55#1012"; |
| addr.numberOfDigits = (byte)addr.address.length(); |
| addr.digitMode = CdmaSmsAddress.DIGIT_MODE_4BIT_DTMF; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| revAddr = revBearerData.callbackNumber; |
| assertEquals(addr.digitMode, revAddr.digitMode); |
| assertEquals(addr.numberOfDigits, revAddr.numberOfDigits); |
| assertEquals(addr.address, revAddr.address); |
| } |
| |
| @SmallTest |
| public void testMsgCenterTimeStampFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test message center timestamp"; |
| bearerData.userData = userData; |
| bearerData.timeStamp = HexDump.hexStringToByteArray("112233445566"); |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(HexDump.toHexString(bearerData.timeStamp), |
| HexDump.toHexString(revBearerData.timeStamp)); |
| } |
| |
| @SmallTest |
| public void testPrivacyIndicator() throws Exception { |
| String pdu1 = "0003104090010c485f4194dfea34becf61b840090140"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals(bd1.privacy, BearerData.PRIVACY_RESTRICTED); |
| String pdu2 = "0003104090010c485f4194dfea34becf61b840090180"; |
| BearerData bd2 = BearerData.decode(HexDump.hexStringToByteArray(pdu2)); |
| assertEquals(bd2.privacy, BearerData.PRIVACY_CONFIDENTIAL); |
| String pdu3 = "0003104090010c485f4194dfea34becf61b8400901c0"; |
| BearerData bd3 = BearerData.decode(HexDump.hexStringToByteArray(pdu3)); |
| assertEquals(bd3.privacy, BearerData.PRIVACY_SECRET); |
| } |
| |
| @SmallTest |
| public void testPrivacyIndicatorFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test privacy indicator"; |
| bearerData.userData = userData; |
| bearerData.privacy = BearerData.PRIVACY_SECRET; |
| bearerData.privacyIndicatorSet = true; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.userData.payloadStr, userData.payloadStr); |
| assertEquals(revBearerData.privacyIndicatorSet, true); |
| assertEquals(revBearerData.privacy, BearerData.PRIVACY_SECRET); |
| bearerData.privacy = BearerData.PRIVACY_RESTRICTED; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.privacy, BearerData.PRIVACY_RESTRICTED); |
| } |
| |
| @SmallTest |
| public void testMsgDeliveryAlert() throws Exception { |
| String pdu1 = "0003104090010d4866a794e07055965b91d040300c0100"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals(bd1.alert, 0); |
| assertEquals(bd1.userData.payloadStr, "Test Alert 0"); |
| String pdu2 = "0003104090010d4866a794e07055965b91d140300c0140"; |
| BearerData bd2 = BearerData.decode(HexDump.hexStringToByteArray(pdu2)); |
| assertEquals(bd2.alert, 1); |
| assertEquals(bd2.userData.payloadStr, "Test Alert 1"); |
| String pdu3 = "0003104090010d4866a794e07055965b91d240300c0180"; |
| BearerData bd3 = BearerData.decode(HexDump.hexStringToByteArray(pdu3)); |
| assertEquals(bd3.alert, 2); |
| assertEquals(bd3.userData.payloadStr, "Test Alert 2"); |
| String pdu4 = "0003104090010d4866a794e07055965b91d340300c01c0"; |
| BearerData bd4 = BearerData.decode(HexDump.hexStringToByteArray(pdu4)); |
| assertEquals(bd4.alert, 3); |
| assertEquals(bd4.userData.payloadStr, "Test Alert 3"); |
| } |
| |
| @SmallTest |
| public void testMiscParams() throws Exception { |
| String pdu1 = "00031002400109104539b4d052ebb3d00c0180"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals(bd1.alert, BearerData.ALERT_MEDIUM_PRIO); |
| assertEquals(bd1.userData.payloadStr, "SMS Rulz"); |
| String pdu2 = "00031002500109104539b4d052ebb3d00801800901c0"; |
| BearerData bd2 = BearerData.decode(HexDump.hexStringToByteArray(pdu2)); |
| assertEquals(bd2.priority, BearerData.PRIORITY_URGENT); |
| assertEquals(bd2.privacy, BearerData.PRIVACY_SECRET); |
| assertEquals(bd2.userData.payloadStr, "SMS Rulz"); |
| String pdu3 = "00031002600109104539b4d052ebb3d00901400c01c0"; |
| BearerData bd3 = BearerData.decode(HexDump.hexStringToByteArray(pdu3)); |
| assertEquals(bd3.privacy, BearerData.PRIVACY_RESTRICTED); |
| assertEquals(bd3.alert, BearerData.ALERT_HIGH_PRIO); |
| assertEquals(bd3.userData.payloadStr, "SMS Rulz"); |
| String pdu4 = "00031002700109104539b4d052ebb3d00f0105"; |
| BearerData bd4 = BearerData.decode(HexDump.hexStringToByteArray(pdu4)); |
| assertEquals(bd4.displayMode, BearerData.DISPLAY_MODE_IMMEDIATE); |
| assertEquals(bd4.userData.payloadStr, "SMS Rulz"); |
| } |
| @SmallTest |
| public void testMsgDeliveryAlertFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test message delivery alert"; |
| bearerData.userData = userData; |
| bearerData.alert = BearerData.ALERT_MEDIUM_PRIO; |
| bearerData.alertIndicatorSet = true; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.userData.payloadStr, userData.payloadStr); |
| assertEquals(revBearerData.alertIndicatorSet, true); |
| assertEquals(revBearerData.alert, bearerData.alert); |
| bearerData.alert = BearerData.ALERT_HIGH_PRIO; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.userData.payloadStr, userData.payloadStr); |
| assertEquals(revBearerData.alertIndicatorSet, true); |
| assertEquals(revBearerData.alert, bearerData.alert); |
| } |
| |
| @SmallTest |
| public void testLanguageIndicator() throws Exception { |
| String pdu1 = "0003104090011748bea794e0731436ef3bd7c2e0352eef27a1c263fe58080d0101"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| assertEquals(bd1.userData.payloadStr, "Test Language indicator"); |
| assertEquals(bd1.language, BearerData.LANGUAGE_ENGLISH); |
| String pdu2 = "0003104090011748bea794e0731436ef3bd7c2e0352eef27a1c263fe58080d0106"; |
| BearerData bd2 = BearerData.decode(HexDump.hexStringToByteArray(pdu2)); |
| assertEquals(bd2.userData.payloadStr, "Test Language indicator"); |
| assertEquals(bd2.language, BearerData.LANGUAGE_CHINESE); |
| } |
| |
| @SmallTest |
| public void testLanguageIndicatorFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test language indicator"; |
| bearerData.userData = userData; |
| bearerData.language = BearerData.LANGUAGE_ENGLISH; |
| bearerData.languageIndicatorSet = true; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.userData.payloadStr, userData.payloadStr); |
| assertEquals(revBearerData.languageIndicatorSet, true); |
| assertEquals(revBearerData.language, bearerData.language); |
| bearerData.language = BearerData.LANGUAGE_KOREAN; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.userData.payloadStr, userData.payloadStr); |
| assertEquals(revBearerData.languageIndicatorSet, true); |
| assertEquals(revBearerData.language, bearerData.language); |
| } |
| |
| @SmallTest |
| public void testDisplayMode() throws Exception { |
| String pdu1 = "0003104090010c485f4194dfea34becf61b8400f0100"; |
| BearerData bd1 = BearerData.decode(HexDump.hexStringToByteArray(pdu1)); |
| //Log.d(LOG_TAG, "bd1 = " + bd1); |
| assertEquals(bd1.displayMode, BearerData.DISPLAY_MODE_IMMEDIATE); |
| String pdu2 = "0003104090010c485f4194dfea34becf61b8400f0140"; |
| BearerData bd2 = BearerData.decode(HexDump.hexStringToByteArray(pdu2)); |
| assertEquals(bd2.displayMode, BearerData.DISPLAY_MODE_DEFAULT); |
| String pdu3 = "0003104090010c485f4194dfea34becf61b8400f0180"; |
| BearerData bd3 = BearerData.decode(HexDump.hexStringToByteArray(pdu3)); |
| assertEquals(bd3.displayMode, BearerData.DISPLAY_MODE_USER); |
| } |
| |
| @SmallTest |
| public void testDisplayModeFeedback() throws Exception { |
| BearerData bearerData = new BearerData(); |
| bearerData.messageType = BearerData.MESSAGE_TYPE_DELIVER; |
| bearerData.messageId = 0; |
| bearerData.hasUserDataHeader = false; |
| UserData userData = new UserData(); |
| userData.payloadStr = "test display mode"; |
| bearerData.userData = userData; |
| bearerData.displayMode = BearerData.DISPLAY_MODE_IMMEDIATE; |
| bearerData.displayModeSet = true; |
| byte []encodedSms = BearerData.encode(bearerData); |
| BearerData revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.userData.payloadStr, userData.payloadStr); |
| assertEquals(revBearerData.displayModeSet, true); |
| assertEquals(revBearerData.displayMode, bearerData.displayMode); |
| bearerData.displayMode = BearerData.DISPLAY_MODE_USER; |
| encodedSms = BearerData.encode(bearerData); |
| revBearerData = BearerData.decode(encodedSms); |
| assertEquals(revBearerData.userData.payloadStr, userData.payloadStr); |
| assertEquals(revBearerData.displayModeSet, true); |
| assertEquals(revBearerData.displayMode, bearerData.displayMode); |
| } |
| } |