17640caaf912a7eefacc3e2108c5afd70f7b072a4noda/* 27640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Copyright (C) 2010 The Android Open Source Project 37640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 47640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Licensed under the Apache License, Version 2.0 (the "License"); 57640caaf912a7eefacc3e2108c5afd70f7b072a4noda * you may not use this file except in compliance with the License. 67640caaf912a7eefacc3e2108c5afd70f7b072a4noda * You may obtain a copy of the License at 77640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 87640caaf912a7eefacc3e2108c5afd70f7b072a4noda * http://www.apache.org/licenses/LICENSE-2.0 97640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 107640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Unless required by applicable law or agreed to in writing, software 117640caaf912a7eefacc3e2108c5afd70f7b072a4noda * distributed under the License is distributed on an "AS IS" BASIS, 127640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137640caaf912a7eefacc3e2108c5afd70f7b072a4noda * See the License for the specific language governing permissions and 147640caaf912a7eefacc3e2108c5afd70f7b072a4noda * limitations under the License. 157640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 167640caaf912a7eefacc3e2108c5afd70f7b072a4noda 177640caaf912a7eefacc3e2108c5afd70f7b072a4nodapackage com.android.smspush.unitTests; 187640caaf912a7eefacc3e2108c5afd70f7b072a4noda 197640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.app.Activity; 207640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.content.ComponentName; 217640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.content.Context; 227640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.content.Intent; 237640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.content.ServiceConnection; 247640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.os.IBinder; 257640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.os.RemoteException; 267640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.provider.Telephony.Sms.Intents; 277640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.test.ServiceTestCase; 287640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport android.util.Log; 297640caaf912a7eefacc3e2108c5afd70f7b072a4noda 307640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport com.android.internal.telephony.IccUtils; 317640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport com.android.internal.telephony.IWapPushManager; 327640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport com.android.internal.telephony.WapPushManagerParams; 337640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport com.android.internal.telephony.WspTypeDecoder; 347640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport com.android.internal.util.HexDump; 357640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport com.android.smspush.WapPushManager; 367640caaf912a7eefacc3e2108c5afd70f7b072a4noda 377640caaf912a7eefacc3e2108c5afd70f7b072a4nodaimport java.util.Random; 387640caaf912a7eefacc3e2108c5afd70f7b072a4noda 397640caaf912a7eefacc3e2108c5afd70f7b072a4noda/** 407640caaf912a7eefacc3e2108c5afd70f7b072a4noda * This is a simple framework for a test of a Service. See {@link android.test.ServiceTestCase 417640caaf912a7eefacc3e2108c5afd70f7b072a4noda * ServiceTestCase} for more information on how to write and extend service tests. 427640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 437640caaf912a7eefacc3e2108c5afd70f7b072a4noda * To run this test, you can type: 447640caaf912a7eefacc3e2108c5afd70f7b072a4noda * adb shell am instrument -w \ 457640caaf912a7eefacc3e2108c5afd70f7b072a4noda * -e class com.android.smspush.unitTests.WapPushTest \ 467640caaf912a7eefacc3e2108c5afd70f7b072a4noda * com.android.smspush.unitTests/android.test.InstrumentationTestRunner 477640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 487640caaf912a7eefacc3e2108c5afd70f7b072a4nodapublic class WapPushTest extends ServiceTestCase<WapPushManager> { 497640caaf912a7eefacc3e2108c5afd70f7b072a4noda private static final String LOG_TAG = "WAP PUSH"; 507640caaf912a7eefacc3e2108c5afd70f7b072a4noda private static final boolean LOCAL_LOGV = false; 517640caaf912a7eefacc3e2108c5afd70f7b072a4noda private static final int TIME_WAIT = 100; 527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 537640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected int mAppIdValue = 0x8002; 547640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected String mAppIdName = "x-wap-application:*"; 557640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected int mContentTypeValue = 0x030a; 567640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected String mContentTypeName = "application/vnd.wap.sic"; 577640caaf912a7eefacc3e2108c5afd70f7b072a4noda 587640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected String mPackageName; 597640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected String mClassName; 607640caaf912a7eefacc3e2108c5afd70f7b072a4noda 617640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected byte[] mGsmHeader = { 627640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, // sc address 637640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x40, // TP-MTI 647640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x04, // sender address length? 657640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x81, (byte) 0x55, (byte) 0x45, // sender address? 667640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, // data schema 677640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, // proto ID 687640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x01, (byte) 0x60, (byte) 0x12, (byte) 0x31, 697640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x74, (byte) 0x34, (byte) 0x63 // time stamp 707640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 717640caaf912a7eefacc3e2108c5afd70f7b072a4noda 727640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected byte[] mUserDataHeader = { 737640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x07, // UDH len 747640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x06, // header len 757640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x05, // port addressing type? 767640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, // dummy 777640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x0B, (byte) 0x84, // dest port 787640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x23, (byte) 0xF0 // src port 797640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 817640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected byte[] mWspHeader; 827640caaf912a7eefacc3e2108c5afd70f7b072a4noda 837640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected byte[] mMessageBody = { 847640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, 857640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x01, 867640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x02, 877640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x03, 887640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x04, 897640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x05, 907640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x06, 917640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x07, 927640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x08, 937640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x09, 947640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x0a, 957640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x0b, 967640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x0c, 977640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x0d, 987640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x0e, 997640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x0f 1007640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 1017640caaf912a7eefacc3e2108c5afd70f7b072a4noda 1027640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected int mWspHeaderStart; 1037640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected int mWspHeaderLen; 1047640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected int mWspContentTypeStart; 1057640caaf912a7eefacc3e2108c5afd70f7b072a4noda 1067640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 1077640caaf912a7eefacc3e2108c5afd70f7b072a4noda * OMA application ID in binary form 1087640caaf912a7eefacc3e2108c5afd70f7b072a4noda * http://www.openmobilealliance.org/tech/omna/omna-push-app-id.aspx 1097640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 1107640caaf912a7eefacc3e2108c5afd70f7b072a4noda final int[] OMA_APPLICATION_ID_VALUES = new int[] { 1117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x00, 1127640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x01, 1137640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x02, 1147640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x03, 1157640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x04, 1167640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x05, 1177640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x06, 1187640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x07, 1197640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x08, 1207640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x09, 1217640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0A, 1227640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8000, 1237640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8001, 1247640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8002, 1257640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8003, 1267640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8004, 1277640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8005, 1287640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8006, 1297640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8007, 1307640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8008, 1317640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8009, 1327640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x800B, 1337640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x8010 1347640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 1357640caaf912a7eefacc3e2108c5afd70f7b072a4noda 1367640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 1377640caaf912a7eefacc3e2108c5afd70f7b072a4noda * OMA application ID in string form 1387640caaf912a7eefacc3e2108c5afd70f7b072a4noda * http://www.openmobilealliance.org/tech/omna/omna-push-app-id.aspx 1397640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 1407640caaf912a7eefacc3e2108c5afd70f7b072a4noda final String[] OMA_APPLICATION_ID_NAMES = new String[] { 1417640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:*", 1427640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:push.sia", 1437640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:wml.ua", 1447640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:wta.ua", 1457640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:mms.ua", 1467640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:push.syncml", 1477640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:loc.ua", 1487640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:syncml.dm", 1497640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:drm.ua", 1507640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:emn.ua", 1517640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-application:wv.ua", 1527640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-microsoft:localcontent.ua", 1537640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-microsoft:IMclient.ua", 1547640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-docomo:imode.mail.ua", 1557640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-docomo:imode.mr.ua", 1567640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-docomo:imode.mf.ua", 1577640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-motorola:location.ua", 1587640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-motorola:now.ua", 1597640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-motorola:otaprov.ua", 1607640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-motorola:browser.ua", 1617640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-motorola:splash.ua", 1627640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-nai:mvsw.command", 1637640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap-openwave:iota.ua" 1647640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 1657640caaf912a7eefacc3e2108c5afd70f7b072a4noda 1667640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 1677640caaf912a7eefacc3e2108c5afd70f7b072a4noda * OMA content type in binary form 1687640caaf912a7eefacc3e2108c5afd70f7b072a4noda * http://www.openmobilealliance.org/tech/omna/omna-wsp-content-type.aspx 1697640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 1707640caaf912a7eefacc3e2108c5afd70f7b072a4noda final int[] OMA_CONTENT_TYPE_VALUES = new int[] { 1717640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x00, 1727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x01, 1737640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x02, 1747640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x03, 1757640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x04, 1767640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x05, 1777640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x06, 1787640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x07, 1797640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x08, 1807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x09, 1817640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0A, 1827640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0B, 1837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0C, 1847640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0D, 1857640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0E, 1867640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0F, 1877640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x10, 1887640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x11, 1897640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x12, 1907640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x13, 1917640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x14, 1927640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x15, 1937640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x16, 1947640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x17, 1957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x18, 1967640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x19, 1977640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x1A, 1987640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x1B, 1997640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x1C, 2007640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x1D, 2017640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x1E, 2027640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x1F, 2037640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x20, 2047640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x21, 2057640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x22, 2067640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x23, 2077640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x24, 2087640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x25, 2097640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x26, 2107640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x27, 2117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x28, 2127640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x29, 2137640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x2A, 2147640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x2B, 2157640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x2C, 2167640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x2D, 2177640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x2E, 2187640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x2F, 2197640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x30, 2207640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x31, 2217640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x32, 2227640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x33, 2237640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x34, 2247640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x35, 2257640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x36, 2267640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x37, 2277640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x38, 2287640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x39, 2297640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x3A, 2307640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x3B, 2317640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x3C, 2327640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x3D, 2337640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x3E, 2347640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x3F, 2357640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x40, 2367640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x41, 2377640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x42, 2387640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x43, 2397640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x44, 2407640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x45, 2417640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x46, 2427640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x47, 2437640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x48, 2447640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x49, 2457640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x4A, 2467640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x4B, 2477640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x4C, 2487640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x4D, 2497640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x4E, 2507640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x4F, 2517640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x50, 2527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x51, 2537640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x52, 2547640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x53, 2557640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x54, 2567640caaf912a7eefacc3e2108c5afd70f7b072a4noda// 0x55, 2577640caaf912a7eefacc3e2108c5afd70f7b072a4noda// 0x56, 2587640caaf912a7eefacc3e2108c5afd70f7b072a4noda// 0x57, 2597640caaf912a7eefacc3e2108c5afd70f7b072a4noda// 0x58, 2607640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0201, 2617640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0202, 2627640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0203, 2637640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0204, 2647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0205, 2657640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0206, 2667640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0207, 2677640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0208, 2687640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0209, 2697640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x020A, 2707640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x020B, 2717640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x020C, 2727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0300, 2737640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0301, 2747640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0302, 2757640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0303, 2767640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0304, 2777640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0305, 2787640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0306, 2797640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0307, 2807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0308, 2817640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0309, 2827640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x030A, 2837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x030B, 2847640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x030C, 2857640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x030D, 2867640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x030E, 2877640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x030F, 2887640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0310, 2897640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0311, 2907640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0312, 2917640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0313, 2927640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0314, 2937640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0315, 2947640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0316, 2957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0317, 2967640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0318, 2977640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x0319, 2987640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x031A, 2997640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x031B 3007640caaf912a7eefacc3e2108c5afd70f7b072a4noda /*0x031C, 3017640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0x031D*/ 3027640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 3037640caaf912a7eefacc3e2108c5afd70f7b072a4noda 3047640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 3057640caaf912a7eefacc3e2108c5afd70f7b072a4noda * OMA content type in string form 3067640caaf912a7eefacc3e2108c5afd70f7b072a4noda * http://www.openmobilealliance.org/tech/omna/omna-wsp-content-type.aspx 3077640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 3087640caaf912a7eefacc3e2108c5afd70f7b072a4noda final String[] OMA_CONTENT_TYPE_NAMES = new String[] { 3097640caaf912a7eefacc3e2108c5afd70f7b072a4noda "*/*", 3107640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/*", 3117640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/html", 3127640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/plain", 3137640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/x-hdml", 3147640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/x-ttml", 3157640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/x-vCalendar", 3167640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/x-vCard", 3177640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.wml", 3187640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.wmlscript", 3197640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.wta-event", 3207640caaf912a7eefacc3e2108c5afd70f7b072a4noda "multipart/*", 3217640caaf912a7eefacc3e2108c5afd70f7b072a4noda "multipart/mixed", 3227640caaf912a7eefacc3e2108c5afd70f7b072a4noda "multipart/form-data", 3237640caaf912a7eefacc3e2108c5afd70f7b072a4noda "multipart/byterantes", 3247640caaf912a7eefacc3e2108c5afd70f7b072a4noda "multipart/alternative", 3257640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/*", 3267640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/java-vm", 3277640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/x-www-form-urlencoded", 3287640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/x-hdmlc", 3297640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.wmlc", 3307640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.wmlscriptc", 3317640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.wta-eventc", 3327640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.uaprof", 3337640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.wtls-ca-certificate", 3347640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.wtls-user-certificate", 3357640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/x-x509-ca-cert", 3367640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/x-x509-user-cert", 3377640caaf912a7eefacc3e2108c5afd70f7b072a4noda "image/*", 3387640caaf912a7eefacc3e2108c5afd70f7b072a4noda "image/gif", 3397640caaf912a7eefacc3e2108c5afd70f7b072a4noda "image/jpeg", 3407640caaf912a7eefacc3e2108c5afd70f7b072a4noda "image/tiff", 3417640caaf912a7eefacc3e2108c5afd70f7b072a4noda "image/png", 3427640caaf912a7eefacc3e2108c5afd70f7b072a4noda "image/vnd.wap.wbmp", 3437640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.multipart.*", 3447640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.multipart.mixed", 3457640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.multipart.form-data", 3467640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.multipart.byteranges", 3477640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.multipart.alternative", 3487640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/xml", 3497640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/xml", 3507640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.wbxml", 3517640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/x-x968-cross-cert", 3527640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/x-x968-ca-cert", 3537640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/x-x968-user-cert", 3547640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.si", 3557640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.sic", 3567640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.sl", 3577640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.slc", 3587640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.co", 3597640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.coc", 3607640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.multipart.related", 3617640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.sia", 3627640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.connectivity-xml", 3637640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.connectivity-wbxml", 3647640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/pkcs7-mime", 3657640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.hashed-certificate", 3667640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.signed-certificate", 3677640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.cert-response", 3687640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/xhtml+xml", 3697640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/wml+xml", 3707640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/css", 3717640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.mms-message", 3727640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.rollover-certificate", 3737640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.locc+wbxml", 3747640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.loc+xml", 3757640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.syncml.dm+wbxml", 3767640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.syncml.dm+xml", 3777640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.syncml.notification", 3787640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.xhtml+xml", 3797640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wv.csp.cir", 3807640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.dd+xml", 3817640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.drm.message", 3827640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.drm.content", 3837640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.drm.rights+xml", 3847640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.drm.rights+wbxml", 3857640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wv.csp+xml", 3867640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wv.csp+wbxml", 3877640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.syncml.ds.notification", 3887640caaf912a7eefacc3e2108c5afd70f7b072a4noda "audio/*", 3897640caaf912a7eefacc3e2108c5afd70f7b072a4noda "video/*", 3907640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.dd2+xml", 3917640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/mikey", 3927640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.dcd", 3937640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.dcdc", 3947640caaf912a7eefacc3e2108c5afd70f7b072a4noda// "text/x-vMessage", 3957640caaf912a7eefacc3e2108c5afd70f7b072a4noda// "application/vnd.omads-email+wbxml", 3967640caaf912a7eefacc3e2108c5afd70f7b072a4noda// "text/x-vBookmark", 3977640caaf912a7eefacc3e2108c5afd70f7b072a4noda// "application/vnd.syncml.dm.notification", 3987640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.cacheop-wbxml", 3997640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.signal", 4007640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.alert-wbxml", 4017640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.list-wbxml", 4027640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.listcmd-wbxml", 4037640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.channel-wbxml", 4047640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.provisioning-status-uri", 4057640caaf912a7eefacc3e2108c5afd70f7b072a4noda "x-wap.multipart/vnd.uplanet.header-set", 4067640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.uplanet.bearer-choice-wbxml", 4077640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.phonecom.mmc-wbxml", 4087640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.nokia.syncset+wbxml", 4097640caaf912a7eefacc3e2108c5afd70f7b072a4noda "image/x-up-wpng", 4107640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/iota.mmc-wbxml", 4117640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/iota.mmc-xml", 4127640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.syncml+xml", 4137640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.syncml+wbxml", 4147640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/vnd.wap.emn+xml", 4157640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/calendar", 4167640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.omads-email+xml", 4177640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.omads-file+xml", 4187640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.omads-folder+xml", 4197640caaf912a7eefacc3e2108c5afd70f7b072a4noda "text/directory;profile=vCard", 4207640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wap.emn+wbxml", 4217640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.nokia.ipdc-purchase-response", 4227640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.motorola.screen3+xml", 4237640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.motorola.screen3+gzip", 4247640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.cmcc.setting+wbxml", 4257640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.cmcc.bombing+wbxml", 4267640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.docomo.pf", 4277640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.docomo.ub", 4287640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.omaloc-supl-init", 4297640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.group-usage-list+xml", 4307640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/oma-directory+xml", 4317640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.docomo.pf2", 4327640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.drm.roap-trigger+wbxml", 4337640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.sbm.mid2", 4347640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.wmf.bootstrap", 4357640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnc.cmcc.dcd+xml", 4367640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.sbm.cid", 4377640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.bcast.provisioningtrigger", 4387640caaf912a7eefacc3e2108c5afd70f7b072a4noda /*"application/vnd.docomo.dm", 4397640caaf912a7eefacc3e2108c5afd70f7b072a4noda "application/vnd.oma.scidm.messages+xml"*/ 4407640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 4417640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4427640caaf912a7eefacc3e2108c5afd70f7b072a4noda private IDataVerify mIVerify = null; 4437640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4447640caaf912a7eefacc3e2108c5afd70f7b072a4noda ServiceConnection mConn = new ServiceConnection() { 4457640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void onServiceConnected(ComponentName name, IBinder service) { 4467640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.v(LOG_TAG, "data verify interface connected."); 4477640caaf912a7eefacc3e2108c5afd70f7b072a4noda mIVerify = IDataVerify.Stub.asInterface(service); 4487640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 4497640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void onServiceDisconnected(ComponentName name) { 4507640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 4517640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 4527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4537640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 4547640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Main WapPushManager test module constructor 4557640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 4567640caaf912a7eefacc3e2108c5afd70f7b072a4noda public WapPushTest() { 4577640caaf912a7eefacc3e2108c5afd70f7b072a4noda super(WapPushManager.class); 4587640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = this.getClass().getName(); 4597640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = this.getClass().getPackage().getName(); 4607640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 4617640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4627640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 4637640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Initialize the verifier 4647640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 4657640caaf912a7eefacc3e2108c5afd70f7b072a4noda @Override 4667640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void setUp() { 4677640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 4687640caaf912a7eefacc3e2108c5afd70f7b072a4noda super.setUp(); 4697640caaf912a7eefacc3e2108c5afd70f7b072a4noda // get verifier 4707640caaf912a7eefacc3e2108c5afd70f7b072a4noda getContext().bindService(new Intent(IDataVerify.class.getName()), 4717640caaf912a7eefacc3e2108c5afd70f7b072a4noda mConn, Context.BIND_AUTO_CREATE); 4727640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (Exception e) { 4737640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.w(LOG_TAG, "super exception"); 4747640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 4757640caaf912a7eefacc3e2108c5afd70f7b072a4noda // Log.d(LOG_TAG, "test setup"); 4767640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 4777640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4787640caaf912a7eefacc3e2108c5afd70f7b072a4noda private IWapPushManager mWapPush = null; 4797640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager getInterface() { 4807640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (mWapPush != null) return mWapPush; 4817640caaf912a7eefacc3e2108c5afd70f7b072a4noda Intent startIntent = new Intent(); 4827640caaf912a7eefacc3e2108c5afd70f7b072a4noda startIntent.setClass(getContext(), WapPushManager.class); 4837640caaf912a7eefacc3e2108c5afd70f7b072a4noda IBinder service = bindService(startIntent); 4847640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4857640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWapPush = IWapPushManager.Stub.asInterface(service); 4867640caaf912a7eefacc3e2108c5afd70f7b072a4noda return mWapPush; 4877640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 4887640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4897640caaf912a7eefacc3e2108c5afd70f7b072a4noda /* 4907640caaf912a7eefacc3e2108c5afd70f7b072a4noda * All methods need to start with 'test'. 4917640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Use various assert methods to pass/fail the test case. 4927640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 4937640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected void utAddPackage(boolean need_sig, boolean more_proc) { 4947640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 4957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 4967640caaf912a7eefacc3e2108c5afd70f7b072a4noda // insert new data 4977640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 4987640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(iwapman.addPackage( 4997640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 5007640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 5017640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName, 5027640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, need_sig, more_proc)); 5037640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 5047640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 5057640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 5067640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5077640caaf912a7eefacc3e2108c5afd70f7b072a4noda // verify the data 5087640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManager wpman = getService(); 5097640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(wpman.verifyData(Integer.toString(mAppIdValue), 5107640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 5117640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName, 5127640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, need_sig, more_proc)); 5137640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 5147640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5157640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 5167640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Add package test 5177640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 5187640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testAddPackage1() { 5197640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 5207640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 5217640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5227640caaf912a7eefacc3e2108c5afd70f7b072a4noda utAddPackage(true, true); 5237640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue += 10; 5247640caaf912a7eefacc3e2108c5afd70f7b072a4noda utAddPackage(true, false); 5257640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 5267640caaf912a7eefacc3e2108c5afd70f7b072a4noda utAddPackage(false, true); 5277640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 5287640caaf912a7eefacc3e2108c5afd70f7b072a4noda utAddPackage(false, false); 5297640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5307640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 5317640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 5327640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5337640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 5347640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 5357640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 5367640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 5377640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 5387640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue += 10; 5397640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 5407640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 5417640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 5427640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 5437640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 5447640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 5457640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 5467640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 5477640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 5487640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 5497640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 5507640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 5517640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 5527640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 5537640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5547640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 5557640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Add duprecated package test. 5567640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 5577640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testAddPackage2() { 5587640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 5597640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 5607640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5617640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 5627640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 5637640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 0, 5647640caaf912a7eefacc3e2108c5afd70f7b072a4noda false, false); 5657640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue + 10), 5667640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 0, 5677640caaf912a7eefacc3e2108c5afd70f7b072a4noda false, false); 5687640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 5697640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue + 10), mPackageName, mClassName, 0, 5707640caaf912a7eefacc3e2108c5afd70f7b072a4noda false, false); 5717640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5727640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.addPackage(Integer.toString(mAppIdValue), 5737640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 0, 5747640caaf912a7eefacc3e2108c5afd70f7b072a4noda false, false)); 5757640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.addPackage(Integer.toString(mAppIdValue + 10), 5767640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 0, 5777640caaf912a7eefacc3e2108c5afd70f7b072a4noda false, false)); 5787640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.addPackage(Integer.toString(mAppIdValue), 5797640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue + 10), mPackageName, mClassName, 0, 5807640caaf912a7eefacc3e2108c5afd70f7b072a4noda false, false)); 5817640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5827640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 5837640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 5847640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 5857640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue + 10), 5867640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 5877640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 5887640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue + 10), mPackageName, mClassName); 5897640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 5907640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 5917640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 5927640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 5937640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5947640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected void utUpdatePackage(boolean need_sig, boolean more_proc) { 5957640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 5967640caaf912a7eefacc3e2108c5afd70f7b072a4noda 5977640caaf912a7eefacc3e2108c5afd70f7b072a4noda // insert new data 5987640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 5997640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(iwapman.updatePackage( 6007640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 6017640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 6027640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName, 6037640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, need_sig, more_proc)); 6047640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 6057640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 6067640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 6077640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6087640caaf912a7eefacc3e2108c5afd70f7b072a4noda // verify the data 6097640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManager wpman = getService(); 6107640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(wpman.verifyData( 6117640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 6127640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 6137640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName, 6147640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, need_sig, more_proc)); 6157640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 6167640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6177640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 6187640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Updating package test 6197640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 6207640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testUpdatePackage1() { 6217640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 6227640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 6237640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6247640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 6257640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 6267640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 6277640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6287640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 6297640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 6307640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 6317640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue += 10; 6327640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 6337640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 6347640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 6357640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 6367640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 6377640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 6387640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 6397640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 6407640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 6417640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 6427640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 6437640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 6447640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 6457640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 6467640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6477640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 6487640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 6497640caaf912a7eefacc3e2108c5afd70f7b072a4noda utUpdatePackage(false, false); 6507640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue += 10; 6517640caaf912a7eefacc3e2108c5afd70f7b072a4noda utUpdatePackage(false, true); 6527640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 6537640caaf912a7eefacc3e2108c5afd70f7b072a4noda utUpdatePackage(true, false); 6547640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 6557640caaf912a7eefacc3e2108c5afd70f7b072a4noda utUpdatePackage(true, true); 6567640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6577640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 6587640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 6597640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6607640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 6617640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 6627640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 6637640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6647640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 6657640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 6667640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue += 10; 6677640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 6687640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 6697640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 6707640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 6717640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 6727640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 6737640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 6747640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 6757640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 6767640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 6777640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 6787640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 6797640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 6807640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 6817640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6827640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 6837640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Updating invalid package test 6847640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 6857640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testUpdatePackage2() { 6867640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 6877640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 6887640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6897640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 6907640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 6917640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 6927640caaf912a7eefacc3e2108c5afd70f7b072a4noda 6937640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 6947640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 6957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 6967640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.updatePackage( 6977640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue + 10), 6987640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 6997640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName, 0, false, false)); 7007640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.updatePackage( 7017640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 7027640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue + 10), 7037640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName, 0, false, false)); 7047640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(iwapman.updatePackage( 7057640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 7067640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 7077640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName + "dummy_data", mClassName, 0, false, false)); 7087640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(iwapman.updatePackage( 7097640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 7107640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 7117640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName + "dummy_data", 0, false, false)); 7127640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 7137640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 7147640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 7157640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 7167640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, 7177640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName + "dummy_data"); 7187640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 7197640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 7207640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 7217640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 7227640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7237640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected void utDeletePackage() { 7247640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 7257640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7267640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 7277640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(iwapman.deletePackage( 7287640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 7297640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 7307640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName)); 7317640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 7327640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 7337640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 7347640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7357640caaf912a7eefacc3e2108c5afd70f7b072a4noda // verify the data 7367640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManager wpman = getService(); 7377640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(!wpman.isDataExist( 7387640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 7397640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 7407640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName, mClassName)); 7417640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 7427640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7437640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 7447640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Deleting package test 7457640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 7467640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDeletePackage1() { 7477640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 7487640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 7497640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7507640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 7517640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 7527640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 7537640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7547640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 7557640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 7567640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 7577640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue += 10; 7587640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 7597640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 7607640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 7617640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 7627640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 7637640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 7647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 7657640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 7667640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 7677640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 7687640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 7697640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 7707640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 7717640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 7727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7737640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 7747640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 7757640caaf912a7eefacc3e2108c5afd70f7b072a4noda utDeletePackage(); 7767640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue += 10; 7777640caaf912a7eefacc3e2108c5afd70f7b072a4noda utDeletePackage(); 7787640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 7797640caaf912a7eefacc3e2108c5afd70f7b072a4noda utDeletePackage(); 7807640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue += 20; 7817640caaf912a7eefacc3e2108c5afd70f7b072a4noda utDeletePackage(); 7827640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7837640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 7847640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 7857640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 7867640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7877640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 7887640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Deleting invalid package test 7897640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 7907640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDeletePackage2() { 7917640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 7927640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 7937640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7947640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 7957640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 7967640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 7977640caaf912a7eefacc3e2108c5afd70f7b072a4noda 7987640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 7997640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 8007640caaf912a7eefacc3e2108c5afd70f7b072a4noda 0, false, false); 8017640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8027640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.deletePackage(Integer.toString(mAppIdValue + 10), 8037640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName)); 8047640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.deletePackage(Integer.toString(mAppIdValue), 8057640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue + 20), mPackageName, mClassName)); 8067640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(iwapman.deletePackage(Integer.toString(mAppIdValue + 10), 8077640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue + 20), mPackageName, mClassName)); 8087640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8097640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 8107640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 8117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8127640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 8137640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 8147640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 8157640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 8167640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8177640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8187640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected int encodeUint32(int uint32Val, byte[] arr, int start) { 8197640caaf912a7eefacc3e2108c5afd70f7b072a4noda int bit = 1; 8207640caaf912a7eefacc3e2108c5afd70f7b072a4noda int topbit = 0; 8217640caaf912a7eefacc3e2108c5afd70f7b072a4noda int encodeLen; 8227640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tmpVal; 8237640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8247640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(uint32Val >= 0); 8257640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < 31; i++) { 8267640caaf912a7eefacc3e2108c5afd70f7b072a4noda if ((bit & uint32Val) > 0) topbit = i; 8277640caaf912a7eefacc3e2108c5afd70f7b072a4noda bit = (bit << 1); 8287640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 8297640caaf912a7eefacc3e2108c5afd70f7b072a4noda encodeLen = topbit/7 + 1; 8307640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (arr == null) return encodeLen; 8317640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8327640caaf912a7eefacc3e2108c5afd70f7b072a4noda //Log.d(LOG_TAG, "uint32Val = " + Integer.toHexString(uint32Val) + ", topbit = " 8337640caaf912a7eefacc3e2108c5afd70f7b072a4noda // + topbit + ", encodeLen = " + encodeLen); 8347640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8357640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = uint32Val; 8367640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = encodeLen - 1; i >= 0; i--) { 8377640caaf912a7eefacc3e2108c5afd70f7b072a4noda long val = 0; 8387640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (i < encodeLen - 1) val = 0x80; 8397640caaf912a7eefacc3e2108c5afd70f7b072a4noda val |= tmpVal & 0x7f; 8407640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[start + i] = (byte) (val & 0xFF); 8417640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = (tmpVal >> 7); 8427640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 8437640caaf912a7eefacc3e2108c5afd70f7b072a4noda return encodeLen; 8447640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 8457640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8467640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected int encodeShortInt(int sintVal, byte[] arr, int start) { 8477640caaf912a7eefacc3e2108c5afd70f7b072a4noda int encodeLen = 0; 8487640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8497640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (sintVal >= 0x80) return encodeLen; 8507640caaf912a7eefacc3e2108c5afd70f7b072a4noda encodeLen = 1; 8517640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[start] = (byte) (sintVal | 0x80); 8527640caaf912a7eefacc3e2108c5afd70f7b072a4noda return encodeLen; 8537640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 8547640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8557640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8567640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 8577640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Generate Random WSP header with integer application ID 8587640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 8597640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected void createRandomWspHeader(byte[] arr, Random rd, int headerStart, 8607640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean noAppId) { 8617640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8627640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean appIdAdded = false; 8637640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8647640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "headerStart = " + headerStart + ", appId = " + mAppIdValue 8657640caaf912a7eefacc3e2108c5afd70f7b072a4noda + "(" + Integer.toHexString(mAppIdValue) + ")"); 8667640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "random arr length:" + arr.length); 8677640caaf912a7eefacc3e2108c5afd70f7b072a4noda String typename[] = new String[] { "short int", "long int", "string", "uint32"}; 8687640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8697640caaf912a7eefacc3e2108c5afd70f7b072a4noda while (!appIdAdded) { 8707640caaf912a7eefacc3e2108c5afd70f7b072a4noda int type; 8717640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = headerStart; 8727640caaf912a7eefacc3e2108c5afd70f7b072a4noda int len = arr.length; 8737640caaf912a7eefacc3e2108c5afd70f7b072a4noda int i; 8747640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean addAppid = false; 8757640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tmpVal = 0; 8767640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tmpVal2 = 0; 8777640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8787640caaf912a7eefacc3e2108c5afd70f7b072a4noda while (true) { 8797640caaf912a7eefacc3e2108c5afd70f7b072a4noda int add; 8807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 8817640caaf912a7eefacc3e2108c5afd70f7b072a4noda /* 8827640caaf912a7eefacc3e2108c5afd70f7b072a4noda * field name 8837640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 0: short int 8847640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 1: long int 8857640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 2: text 8867640caaf912a7eefacc3e2108c5afd70f7b072a4noda * (no uint for param value) 8877640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 8887640caaf912a7eefacc3e2108c5afd70f7b072a4noda type = rd.nextInt(3); 8897640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 8907640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short integer 8917640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (index > 100 && !appIdAdded) addAppid = true; 8927640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1; 8937640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 8947640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 8957640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1 + rd.nextInt(29); 8967640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 8977640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // header string 8987640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 2 + rd.nextInt(10); 8997640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 9007640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9017640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (index + add >= len) break; 9027640caaf912a7eefacc3e2108c5afd70f7b072a4noda 9037640caaf912a7eefacc3e2108c5afd70f7b072a4noda // fill header name 9047640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 9057640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short integer 9067640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (!addAppid) { 9077640caaf912a7eefacc3e2108c5afd70f7b072a4noda do { 9087640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (0x80 | rd.nextInt(128)); 9097640caaf912a7eefacc3e2108c5afd70f7b072a4noda } while (arr[index] == (byte) 0xaf); 9107640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 9117640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "appId added."); 9127640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) 0xaf; 9137640caaf912a7eefacc3e2108c5afd70f7b072a4noda // if noAppId case, appId fld must be decieved. 9147640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (noAppId) arr[index]++; 9157640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9167640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 9177640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 9187640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (add - 1); 9197640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal2 = 0; 9207640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 1; i < add; i++) { 9217640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(255); 9227640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal2 = (tmpVal2 << 8) | tmpVal; 9237640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) tmpVal; 9247640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9257640caaf912a7eefacc3e2108c5afd70f7b072a4noda // don't set application id 9267640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (tmpVal2 == 0x2f) arr[index + 1]++; 9277640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 9287640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // header string 9297640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < add - 1; i++) { 9307640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(127); 9317640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (tmpVal < 32) tmpVal= (32 + tmpVal); 9327640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) tmpVal; 9337640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9347640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) 0x0; 9357640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 9367640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9377640caaf912a7eefacc3e2108c5afd70f7b072a4noda 9387640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (LOCAL_LOGV) { 9397640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "field name index:" + index); 9407640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "type:" + typename[type] + ", add:" + add); 9417640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (type != 2) { 9427640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = index; i< index + add; i++) { 9437640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[i])); 9447640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 9457640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9467640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 9477640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[index])); 9487640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 9497640caaf912a7eefacc3e2108c5afd70f7b072a4noda String str = new String(arr, index + 1, add - 2); 9507640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < str.length(); i++) { 9517640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(str.charAt(i)); 9527640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 9537640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9547640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9557640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print('\n'); 9567640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9577640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += add; 9587640caaf912a7eefacc3e2108c5afd70f7b072a4noda 9597640caaf912a7eefacc3e2108c5afd70f7b072a4noda 9607640caaf912a7eefacc3e2108c5afd70f7b072a4noda /* 9617640caaf912a7eefacc3e2108c5afd70f7b072a4noda * field value 9627640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 0: short int 9637640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 1: long int 9647640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 2: text 9657640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 3: uint 9667640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 9677640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (addAppid) { 9687640caaf912a7eefacc3e2108c5afd70f7b072a4noda type = 1; 9697640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 9707640caaf912a7eefacc3e2108c5afd70f7b072a4noda type = rd.nextInt(4); 9717640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9727640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 9737640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short integer 9747640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1; 9757640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 9767640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 9777640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (addAppid) { 9787640caaf912a7eefacc3e2108c5afd70f7b072a4noda int bit = 1; 9797640caaf912a7eefacc3e2108c5afd70f7b072a4noda int topBit = 0; 9807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 9817640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < 31; i++) { 9827640caaf912a7eefacc3e2108c5afd70f7b072a4noda if ((mAppIdValue & bit) > 0) topBit = i; 9837640caaf912a7eefacc3e2108c5afd70f7b072a4noda bit = (bit << 1); 9847640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9857640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 2 + topBit/8; 9867640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 9877640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1 + rd.nextInt(29); 9887640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9897640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 9907640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 2: // header string 9917640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 2 + rd.nextInt(10); 9927640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 9937640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // uint32 9947640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 6; 9957640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 9967640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (index + add >= len) break; 9977640caaf912a7eefacc3e2108c5afd70f7b072a4noda 9987640caaf912a7eefacc3e2108c5afd70f7b072a4noda // fill field value 9997640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 10007640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short int 10017640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (0x80 | rd.nextInt(128)); 10027640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 10037640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 10047640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (addAppid) { 10057640caaf912a7eefacc3e2108c5afd70f7b072a4noda addAppid = false; 10067640caaf912a7eefacc3e2108c5afd70f7b072a4noda appIdAdded = true; 10077640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10087640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (add - 1); 10097640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = mAppIdValue; 10107640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = add; i > 1; i--) { 10117640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i - 1] = (byte) (tmpVal & 0xff); 10127640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = (tmpVal >> 8); 10137640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10147640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 10157640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (add - 1); 10167640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 1; i < add; i++) { 10177640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) rd.nextInt(255); 10187640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10197640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10207640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 10217640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 2:// header string 10227640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < add - 1; i++) { 10237640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(127); 10247640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (tmpVal < 32) tmpVal= (32 + tmpVal); 10257640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) tmpVal; 10267640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10277640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) 0x0; 10287640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 10297640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // header uvarint 10307640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) 31; 10317640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(0x0FFFFFFF); 10327640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1 + encodeUint32(tmpVal, null, index + 1); 10337640caaf912a7eefacc3e2108c5afd70f7b072a4noda encodeUint32(tmpVal, arr, index + 1); 10347640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 10357640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10367640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10377640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10387640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (LOCAL_LOGV) { 10397640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "field value index:" + index); 10407640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "type:" + typename[type] + ", add:" + add); 10417640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (type != 2) { 10427640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = index; i< index + add; i++) { 10437640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[i])); 10447640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 10457640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10467640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 10477640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[index])); 10487640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 10497640caaf912a7eefacc3e2108c5afd70f7b072a4noda String str = new String(arr, index + 1, add - 2); 10507640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < str.length(); i++) { 10517640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(str.charAt(i)); 10527640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 10537640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10547640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10557640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print('\n'); 10567640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10577640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += add; 10587640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10597640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (noAppId) break; 10607640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10617640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10627640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, HexDump.dumpHexString(arr)); 10637640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 10647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10657640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 10667640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Generate Random WSP header with string application ID 10677640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 10687640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected void createRandomWspHeaderStrAppId(byte[] arr, Random rd, int headerStart, 10697640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean randomStr) { 10707640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10717640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean appIdAdded = false; 10727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10737640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "random arr length:" + arr.length); 10747640caaf912a7eefacc3e2108c5afd70f7b072a4noda String typename[] = new String[] { "short int", "long int", "string", "uint32"}; 10757640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10767640caaf912a7eefacc3e2108c5afd70f7b072a4noda while (!appIdAdded) { 10777640caaf912a7eefacc3e2108c5afd70f7b072a4noda int type; 10787640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = headerStart; 10797640caaf912a7eefacc3e2108c5afd70f7b072a4noda int len = arr.length; 10807640caaf912a7eefacc3e2108c5afd70f7b072a4noda int i; 10817640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean addAppid = false; 10827640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tmpVal = 0; 10837640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tmpVal2 = 0; 10847640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10857640caaf912a7eefacc3e2108c5afd70f7b072a4noda while (true) { 10867640caaf912a7eefacc3e2108c5afd70f7b072a4noda int add; 10877640caaf912a7eefacc3e2108c5afd70f7b072a4noda 10887640caaf912a7eefacc3e2108c5afd70f7b072a4noda /* 10897640caaf912a7eefacc3e2108c5afd70f7b072a4noda * field name 10907640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 0: short int 10917640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 1: long int 10927640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 2: text 10937640caaf912a7eefacc3e2108c5afd70f7b072a4noda * (no uint for param value) 10947640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 10957640caaf912a7eefacc3e2108c5afd70f7b072a4noda type = rd.nextInt(3); 10967640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 10977640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short integer 10987640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (index > 100 && !appIdAdded) addAppid = true; 10997640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1; 11007640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11017640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 11027640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1 + rd.nextInt(29); 11037640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11047640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // header string 11057640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 2 + rd.nextInt(10); 11067640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11077640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11087640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (index + add >= len) break; 11097640caaf912a7eefacc3e2108c5afd70f7b072a4noda 11107640caaf912a7eefacc3e2108c5afd70f7b072a4noda // fill header name 11117640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 11127640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short integer 11137640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (!addAppid) { 11147640caaf912a7eefacc3e2108c5afd70f7b072a4noda do { 11157640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (0x80 | rd.nextInt(128)); 11167640caaf912a7eefacc3e2108c5afd70f7b072a4noda } while (arr[index] == (byte) 0xaf); 11177640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 11187640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "appId added."); 11197640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) 0xaf; 11207640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11217640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11227640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 11237640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (add - 1); 11247640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal2 = 0; 11257640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 1; i < add; i++) { 11267640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(255); 11277640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal2 = (tmpVal2 << 8) | tmpVal; 11287640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) tmpVal; 11297640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11307640caaf912a7eefacc3e2108c5afd70f7b072a4noda // don't set application id 11317640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (tmpVal2 == 0x2f) arr[index + 1]++; 11327640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11337640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // header string 11347640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < add - 1; i++) { 11357640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(127); 11367640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (tmpVal < 32) tmpVal= (32 + tmpVal); 11377640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) tmpVal; 11387640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11397640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) 0x0; 11407640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11417640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11427640caaf912a7eefacc3e2108c5afd70f7b072a4noda 11437640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (LOCAL_LOGV) { 11447640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "field name index:" + index); 11457640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "type:" + typename[type] + ", add:" + add); 11467640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (type != 2) { 11477640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = index; i < index + add; i++) { 11487640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[i])); 11497640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 11507640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11517640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 11527640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[index])); 11537640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 11547640caaf912a7eefacc3e2108c5afd70f7b072a4noda String str = new String(arr, index + 1, add - 2); 11557640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < str.length(); i++) { 11567640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(str.charAt(i)); 11577640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 11587640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11597640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11607640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print('\n'); 11617640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11627640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += add; 11637640caaf912a7eefacc3e2108c5afd70f7b072a4noda 11647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 11657640caaf912a7eefacc3e2108c5afd70f7b072a4noda /* 11667640caaf912a7eefacc3e2108c5afd70f7b072a4noda * field value 11677640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 0: short int 11687640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 1: long int 11697640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 2: text 11707640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 3: uint 11717640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 11727640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (addAppid) { 11737640caaf912a7eefacc3e2108c5afd70f7b072a4noda type = 2; 11747640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 11757640caaf912a7eefacc3e2108c5afd70f7b072a4noda type = rd.nextInt(4); 11767640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11777640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 11787640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short integer 11797640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1; 11807640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11817640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 11827640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1 + rd.nextInt(29); 11837640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 11847640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 2: // header string 11857640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (addAppid) { 11867640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (randomStr) { 11877640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1 + rd.nextInt(10); 11887640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] randStr= new byte[add]; 11897640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < add; i++) { 11907640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(127); 11917640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (tmpVal < 32) tmpVal= (32 + tmpVal); 11927640caaf912a7eefacc3e2108c5afd70f7b072a4noda randStr[i] = (byte) tmpVal; 11937640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11947640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = new String(randStr); 11957640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 11967640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = mAppIdName.length() + 1; 11977640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 11987640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 2 + rd.nextInt(10); 11997640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12007640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 12017640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // uint32 12027640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 6; 12037640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12047640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (index + add >= len) break; 12057640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12067640caaf912a7eefacc3e2108c5afd70f7b072a4noda // fill field value 12077640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (type) { 12087640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 0: // header short int 12097640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (0x80 | rd.nextInt(128)); 12107640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 12117640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: // header long int 12127640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) (add - 1); 12137640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 1; i < add; i++) 12147640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) rd.nextInt(255); 12157640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 12167640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 2:// header string 12177640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (addAppid) { 12187640caaf912a7eefacc3e2108c5afd70f7b072a4noda addAppid = false; 12197640caaf912a7eefacc3e2108c5afd70f7b072a4noda appIdAdded = true; 12207640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < add - 1; i++) { 12217640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) (mAppIdName.charAt(i)); 12227640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12237640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mAppIdName added [" + mAppIdName + "]"); 12247640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 12257640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < add - 1; i++) { 12267640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(127); 12277640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (tmpVal < 32) tmpVal= (32 + tmpVal); 12287640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) tmpVal; 12297640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12307640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12317640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index + i] = (byte) 0x0; 12327640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 12337640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: // header uvarint 12347640caaf912a7eefacc3e2108c5afd70f7b072a4noda arr[index] = (byte) 31; 12357640caaf912a7eefacc3e2108c5afd70f7b072a4noda tmpVal = rd.nextInt(0x0FFFFFFF); 12367640caaf912a7eefacc3e2108c5afd70f7b072a4noda add = 1 + encodeUint32(tmpVal, null, index + 1); 12377640caaf912a7eefacc3e2108c5afd70f7b072a4noda encodeUint32(tmpVal, arr, index + 1); 12387640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 12397640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12407640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12417640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12427640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (LOCAL_LOGV) { 12437640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "field value index:" + index); 12447640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "type:" + typename[type] + ", add:" + add); 12457640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (type != 2) { 12467640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = index; i < index + add; i++) { 12477640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[i])); 12487640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 12497640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12507640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 12517640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(Integer.toHexString(0xff & arr[index])); 12527640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 12537640caaf912a7eefacc3e2108c5afd70f7b072a4noda String str = new String(arr, index + 1, add - 2); 12547640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < str.length(); i++) { 12557640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(str.charAt(i)); 12567640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print(' '); 12577640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12587640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12597640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.out.print('\n'); 12607640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12617640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += add; 12627640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12637640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12657640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "headerStart = " + headerStart + ", mAppIdName = " + mAppIdName); 12667640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, HexDump.dumpHexString(arr)); 12677640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 12687640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12697640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected byte[] createPDU(int testNum) { 12707640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] array = null; 12717640caaf912a7eefacc3e2108c5afd70f7b072a4noda // byte[] wsp = null; 12727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12737640caaf912a7eefacc3e2108c5afd70f7b072a4noda switch (testNum) { 12747640caaf912a7eefacc3e2108c5afd70f7b072a4noda // sample pdu 12757640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 1: 12767640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] array1 = { 12777640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, // TID 12787640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x06, // Type = wap push 12797640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, // Length to be set later. 12807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12817640caaf912a7eefacc3e2108c5afd70f7b072a4noda // Content-Type 12827640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x03, (byte) 0x02, 12837640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) ((mContentTypeValue >> 8) & 0xff), 12847640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) (mContentTypeValue & 0xff), 12857640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12867640caaf912a7eefacc3e2108c5afd70f7b072a4noda // Application-id 12877640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xaf, (byte) 0x02, 12887640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) ((mAppIdValue >> 8) & 0xff), 12897640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) (mAppIdValue& 0xff) 12907640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 12917640caaf912a7eefacc3e2108c5afd70f7b072a4noda array1[2] = (byte) (array1.length - 3); 12927640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array1; 12937640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length + 7; 12947640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array1.length; 12957640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 12967640caaf912a7eefacc3e2108c5afd70f7b072a4noda 12977640caaf912a7eefacc3e2108c5afd70f7b072a4noda // invalid wsp header 12987640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 2: 12997640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] array2 = { 13007640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x00, // invalid data 13017640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 13027640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array2; 13037640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length; 13047640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array2.length; 13057640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 13067640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13077640caaf912a7eefacc3e2108c5afd70f7b072a4noda // random wsp header 13087640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 3: 13097640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 13107640caaf912a7eefacc3e2108c5afd70f7b072a4noda int arrSize = 150 + rd.nextInt(100); 13117640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] array3 = new byte[arrSize]; 13127640caaf912a7eefacc3e2108c5afd70f7b072a4noda int hdrEncodeLen; 13137640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13147640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[0] = (byte) 0x0; 13157640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[1] = (byte) 0x6; 13167640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length, null, 2); 13177640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length - hdrEncodeLen - 2, array3, 2); 13187640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 2] = (byte) 0x3; 13197640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 3] = (byte) 0x2; 13207640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 4] = (byte) ((mContentTypeValue >> 8) & 0xff); 13217640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 5] = (byte) (mContentTypeValue & 0xff); 13227640caaf912a7eefacc3e2108c5afd70f7b072a4noda createRandomWspHeader(array3, rd, hdrEncodeLen + 6, false); 13237640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length + hdrEncodeLen + 6; 13247640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array3.length; 13257640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13267640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeValue = " + mContentTypeValue 13277640caaf912a7eefacc3e2108c5afd70f7b072a4noda + "(" + Integer.toHexString(mContentTypeValue) + ")"); 13287640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13297640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array3; 13307640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 13317640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13327640caaf912a7eefacc3e2108c5afd70f7b072a4noda // random wsp header w/o appid 13337640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 4: 13347640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd = new Random(); 13357640caaf912a7eefacc3e2108c5afd70f7b072a4noda arrSize = 150 + rd.nextInt(100); 13367640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3 = new byte[arrSize]; 13377640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13387640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[0] = (byte) 0x0; 13397640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[1] = (byte) 0x6; 13407640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length, null, 2); 13417640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length - hdrEncodeLen - 2, array3, 2); 13427640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 2] = (byte) 0x3; 13437640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 3] = (byte) 0x2; 13447640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 4] = (byte) ((mContentTypeValue >> 8) & 0xff); 13457640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 5] = (byte) (mContentTypeValue & 0xff); 13467640caaf912a7eefacc3e2108c5afd70f7b072a4noda createRandomWspHeader(array3, rd, hdrEncodeLen + 6, true); 13477640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length + hdrEncodeLen + 6; 13487640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array3.length; 13497640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13507640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeValue = " + mContentTypeValue 13517640caaf912a7eefacc3e2108c5afd70f7b072a4noda + "(" + Integer.toHexString(mContentTypeValue) + ")"); 13527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13537640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array3; 13547640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 13557640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13567640caaf912a7eefacc3e2108c5afd70f7b072a4noda // random wsp header w/ random appid string 13577640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 5: 13587640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd = new Random(); 13597640caaf912a7eefacc3e2108c5afd70f7b072a4noda arrSize = 150 + rd.nextInt(100); 13607640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3 = new byte[arrSize]; 13617640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13627640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[0] = (byte) 0x0; 13637640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[1] = (byte) 0x6; 13647640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length, null, 2); 13657640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length - hdrEncodeLen - 2, array3, 2); 13667640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 2] = (byte) 0x3; 13677640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 3] = (byte) 0x2; 13687640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 4] = (byte) ((mContentTypeValue >> 8) & 0xff); 13697640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 5] = (byte) (mContentTypeValue & 0xff); 13707640caaf912a7eefacc3e2108c5afd70f7b072a4noda createRandomWspHeaderStrAppId(array3, rd, hdrEncodeLen + 6, true); 13717640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length + hdrEncodeLen + 6; 13727640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array3.length; 13737640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13747640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeValue = " + mContentTypeValue 13757640caaf912a7eefacc3e2108c5afd70f7b072a4noda + "(" + Integer.toHexString(mContentTypeValue) + ")"); 13767640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13777640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array3; 13787640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 13797640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13807640caaf912a7eefacc3e2108c5afd70f7b072a4noda // random wsp header w/ OMA appid string 13817640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 6: 13827640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd = new Random(); 13837640caaf912a7eefacc3e2108c5afd70f7b072a4noda arrSize = 150 + rd.nextInt(100); 13847640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3 = new byte[arrSize]; 13857640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13867640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[0] = (byte) 0x0; 13877640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[1] = (byte) 0x6; 13887640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length, null, 2); 13897640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length - hdrEncodeLen - 2, array3, 2); 13907640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 2] = (byte) 0x3; 13917640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 3] = (byte) 0x2; 13927640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 4] = (byte) ((mContentTypeValue >> 8) & 0xff); 13937640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[hdrEncodeLen + 5] = (byte) (mContentTypeValue & 0xff); 13947640caaf912a7eefacc3e2108c5afd70f7b072a4noda createRandomWspHeaderStrAppId(array3, rd, hdrEncodeLen + 6, false); 13957640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length + hdrEncodeLen + 6; 13967640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array3.length; 13977640caaf912a7eefacc3e2108c5afd70f7b072a4noda 13987640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeValue = " + mContentTypeValue 13997640caaf912a7eefacc3e2108c5afd70f7b072a4noda + "(" + Integer.toHexString(mContentTypeValue) + ")"); 14007640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14017640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array3; 14027640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 14037640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14047640caaf912a7eefacc3e2108c5afd70f7b072a4noda // random wsp header w/ OMA content type 14057640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 7: 14067640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd = new Random(); 14077640caaf912a7eefacc3e2108c5afd70f7b072a4noda arrSize = 150 + rd.nextInt(100); 14087640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3 = new byte[arrSize]; 14097640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14107640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[0] = (byte) 0x0; 14117640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[1] = (byte) 0x6; 14127640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length, null, 2); 14137640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length - hdrEncodeLen - 2, array3, 2); 14147640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14157640caaf912a7eefacc3e2108c5afd70f7b072a4noda // encode content type 14167640caaf912a7eefacc3e2108c5afd70f7b072a4noda int contentLen = mContentTypeName.length(); 14177640caaf912a7eefacc3e2108c5afd70f7b072a4noda int next = 2 + hdrEncodeLen; 14187640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspContentTypeStart = mGsmHeader.length + mUserDataHeader.length + next; 14197640caaf912a7eefacc3e2108c5afd70f7b072a4noda // next += encodeUint32(contentLen, array3, next); 14207640caaf912a7eefacc3e2108c5afd70f7b072a4noda int i; 14217640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeName = " + mContentTypeName 14227640caaf912a7eefacc3e2108c5afd70f7b072a4noda + ", contentLen = " + contentLen); 14237640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14247640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < contentLen; i++) { 14257640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[next + i] = (byte) mContentTypeName.charAt(i); 14267640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 14277640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[next + i] = (byte) 0x0; 14287640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14297640caaf912a7eefacc3e2108c5afd70f7b072a4noda createRandomWspHeader(array3, rd, next + contentLen + 1, false); 14307640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length 14317640caaf912a7eefacc3e2108c5afd70f7b072a4noda + next + contentLen + 1; 14327640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array3.length; 14337640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14347640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array3; 14357640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 14367640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14377640caaf912a7eefacc3e2108c5afd70f7b072a4noda // random wsp header w/ OMA content type, OMA app ID 14387640caaf912a7eefacc3e2108c5afd70f7b072a4noda case 8: 14397640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd = new Random(); 14407640caaf912a7eefacc3e2108c5afd70f7b072a4noda arrSize = 150 + rd.nextInt(100); 14417640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3 = new byte[arrSize]; 14427640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14437640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[0] = (byte) 0x0; 14447640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[1] = (byte) 0x6; 14457640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length, null, 2); 14467640caaf912a7eefacc3e2108c5afd70f7b072a4noda hdrEncodeLen = encodeUint32(array3.length - hdrEncodeLen - 2, array3, 2); 14477640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14487640caaf912a7eefacc3e2108c5afd70f7b072a4noda // encode content type 14497640caaf912a7eefacc3e2108c5afd70f7b072a4noda contentLen = mContentTypeName.length(); 14507640caaf912a7eefacc3e2108c5afd70f7b072a4noda next = 2 + hdrEncodeLen; 14517640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspContentTypeStart = mGsmHeader.length + mUserDataHeader.length + next; 14527640caaf912a7eefacc3e2108c5afd70f7b072a4noda // next += encodeUint32(contentLen, array3, next); 14537640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeName = " + mContentTypeName 14547640caaf912a7eefacc3e2108c5afd70f7b072a4noda + ", contentLen = " + contentLen); 14557640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14567640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < contentLen; i++) { 14577640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[next + i] = (byte) mContentTypeName.charAt(i); 14587640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 14597640caaf912a7eefacc3e2108c5afd70f7b072a4noda array3[next + i] = (byte) 0x0; 14607640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14617640caaf912a7eefacc3e2108c5afd70f7b072a4noda createRandomWspHeaderStrAppId(array3, rd, next + contentLen + 1, false); 14627640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart = mGsmHeader.length + mUserDataHeader.length 14637640caaf912a7eefacc3e2108c5afd70f7b072a4noda + next + contentLen + 1; 14647640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderLen = array3.length; 14657640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14667640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeader = array3; 14677640caaf912a7eefacc3e2108c5afd70f7b072a4noda break; 14687640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14697640caaf912a7eefacc3e2108c5afd70f7b072a4noda default: 14707640caaf912a7eefacc3e2108c5afd70f7b072a4noda return null; 14717640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 14727640caaf912a7eefacc3e2108c5afd70f7b072a4noda array = new byte[mGsmHeader.length + mUserDataHeader.length + mWspHeader.length 14737640caaf912a7eefacc3e2108c5afd70f7b072a4noda + mMessageBody.length]; 14747640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(mGsmHeader, 0, array, 0, mGsmHeader.length); 14757640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(mUserDataHeader, 0, array, 14767640caaf912a7eefacc3e2108c5afd70f7b072a4noda mGsmHeader.length, mUserDataHeader.length); 14777640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(mWspHeader, 0, array, 14787640caaf912a7eefacc3e2108c5afd70f7b072a4noda mGsmHeader.length + mUserDataHeader.length, mWspHeader.length); 14797640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(mMessageBody, 0, array, 14807640caaf912a7eefacc3e2108c5afd70f7b072a4noda mGsmHeader.length + mUserDataHeader.length + mWspHeader.length, 14817640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody.length); 14827640caaf912a7eefacc3e2108c5afd70f7b072a4noda return array; 14837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14847640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 14857640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14867640caaf912a7eefacc3e2108c5afd70f7b072a4noda Intent createIntent(int pduType, int tranId) { 14877640caaf912a7eefacc3e2108c5afd70f7b072a4noda Intent intent = new Intent(); 14887640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("transactionId", tranId); 14897640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("pduType", pduType); 14907640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("header", mGsmHeader); 14917640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("data", mMessageBody); 14927640caaf912a7eefacc3e2108c5afd70f7b072a4noda // intent.putExtra("contentTypeParameters", null); 14937640caaf912a7eefacc3e2108c5afd70f7b072a4noda return intent; 14947640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 14957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 14967640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 14977640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Message processing test, start activity 14987640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 14997640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testProcessMsg1() { 15007640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(1); 15017640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerLen = pdu.length - 15027640caaf912a7eefacc3e2108c5afd70f7b072a4noda (mGsmHeader.length + mUserDataHeader.length + mMessageBody.length); 15037640caaf912a7eefacc3e2108c5afd70f7b072a4noda int pduType = 6; 15047640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tranId = 0; 15057640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalPackageName = mPackageName; 15067640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 15077640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15087640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 15097640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15107640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverActivity"; 15117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15127640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 15137640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 15147640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 15157640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 15167640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_ACTIVITY, false, false); 15177640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15187640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue((iwapman.processMessage( 15197640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 15207640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 15217640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)) 15227640caaf912a7eefacc3e2108c5afd70f7b072a4noda & WapPushManagerParams.MESSAGE_HANDLED) == 15237640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.MESSAGE_HANDLED); 15247640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15257640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 15267640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 15277640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 15287640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15297640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 15307640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 15317640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 15327640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15337640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = originalPackageName; 15347640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 15357640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 15367640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15377640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 15387640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Message processing test, start service 15397640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 15407640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testProcessMsg2() { 15417640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(1); 15427640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerLen = pdu.length - (mGsmHeader.length + 15437640caaf912a7eefacc3e2108c5afd70f7b072a4noda mUserDataHeader.length + mMessageBody.length); 15447640caaf912a7eefacc3e2108c5afd70f7b072a4noda int pduType = 6; 15457640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tranId = 0; 15467640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalPackageName = mPackageName; 15477640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 15487640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15497640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 15507640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15517640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverService"; 15527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15537640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 15547640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 15557640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15567640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 15577640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 15587640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, false, false); 15597640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15607640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue((iwapman.processMessage( 15617640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 15627640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 15637640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)) 15647640caaf912a7eefacc3e2108c5afd70f7b072a4noda & WapPushManagerParams.MESSAGE_HANDLED) == 15657640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.MESSAGE_HANDLED); 15667640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15677640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 15687640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 15697640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 15707640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15717640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 15727640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 15737640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 15747640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15757640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = originalPackageName; 15767640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 15777640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 15787640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15797640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 15807640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Message processing test, no signature 15817640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 15827640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testProcessMsg3() { 15837640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(1); 15847640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerLen = pdu.length - 15857640caaf912a7eefacc3e2108c5afd70f7b072a4noda (mGsmHeader.length + mUserDataHeader.length + mMessageBody.length); 15867640caaf912a7eefacc3e2108c5afd70f7b072a4noda int pduType = 6; 15877640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tranId = 0; 15887640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalPackageName = mPackageName; 15897640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 15907640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15917640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 15927640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15937640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = "com.android.development"; 15947640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.development.Development"; 15957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15967640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 15977640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 15987640caaf912a7eefacc3e2108c5afd70f7b072a4noda 15997640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 16007640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 16017640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, true, false); 16027640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16037640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse((iwapman.processMessage( 16047640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 16057640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 16067640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)) 16077640caaf912a7eefacc3e2108c5afd70f7b072a4noda & WapPushManagerParams.MESSAGE_HANDLED) == 16087640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.MESSAGE_HANDLED); 16097640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16107640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 16117640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 16127640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 16137640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16147640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 16157640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 16167640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 16177640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16187640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = originalPackageName; 16197640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 16207640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 16217640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16227640caaf912a7eefacc3e2108c5afd70f7b072a4noda IDataVerify getVerifyInterface() { 16237640caaf912a7eefacc3e2108c5afd70f7b072a4noda while (mIVerify == null) { 16247640caaf912a7eefacc3e2108c5afd70f7b072a4noda // wait for the activity receive data. 16257640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 16267640caaf912a7eefacc3e2108c5afd70f7b072a4noda Thread.sleep(TIME_WAIT); 16277640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (InterruptedException e) {} 16287640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 16297640caaf912a7eefacc3e2108c5afd70f7b072a4noda return mIVerify; 16307640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 16317640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16327640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16337640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 16347640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Message processing test, received body data verification test 16357640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 16367640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testProcessMsg4() { 16377640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] originalMessageBody = mMessageBody; 16387640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = new byte[] { 16397640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xee, 16407640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xff, 16417640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xee, 16427640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xff, 16437640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xee, 16447640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xff, 16457640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xee, 16467640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xff, 16477640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xee, 16487640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xff, 16497640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xee, 16507640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xff, 16517640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 16527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16537640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(1); 16547640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerLen = pdu.length - 16557640caaf912a7eefacc3e2108c5afd70f7b072a4noda (mGsmHeader.length + mUserDataHeader.length + mMessageBody.length); 16567640caaf912a7eefacc3e2108c5afd70f7b072a4noda int pduType = 6; 16577640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tranId = 0; 16587640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalPackageName = mPackageName; 16597640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 16607640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16617640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 16627640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 16637640caaf912a7eefacc3e2108c5afd70f7b072a4noda IDataVerify dataverify = getVerifyInterface(); 16647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16657640caaf912a7eefacc3e2108c5afd70f7b072a4noda dataverify.resetData(); 16667640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16677640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 16687640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverActivity"; 16697640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 16707640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 16717640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_ACTIVITY, false, false); 16727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16737640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.processMessage( 16747640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 16757640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 16767640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)); 16777640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16787640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 16797640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 16807640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 16817640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16827640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(mMessageBody)); 16837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 16847640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 16857640caaf912a7eefacc3e2108c5afd70f7b072a4noda dataverify.resetData(); 16867640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverService"; 16877640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = new byte[] { 16887640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xaa, 16897640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xbb, 16907640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x11, 16917640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x22, 16927640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xaa, 16937640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xbb, 16947640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x11, 16957640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x22, 16967640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xaa, 16977640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xbb, 16987640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x11, 16997640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x22, 17007640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xaa, 17017640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xbb, 17027640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x11, 17037640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x22, 17047640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xaa, 17057640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xbb, 17067640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x11, 17077640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x22, 17087640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xaa, 17097640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0xbb, 17107640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x11, 17117640caaf912a7eefacc3e2108c5afd70f7b072a4noda (byte) 0x22, 17127640caaf912a7eefacc3e2108c5afd70f7b072a4noda }; 17137640caaf912a7eefacc3e2108c5afd70f7b072a4noda pdu = createPDU(1); 17147640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 17157640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 17167640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, false, false); 17177640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17187640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.processMessage( 17197640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 17207640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 17217640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)); 17227640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17237640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 17247640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 17257640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 17267640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17277640caaf912a7eefacc3e2108c5afd70f7b072a4noda // Log.d(LOG_TAG, HexDump.dumpHexString(mMessageBody)); 17287640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(mMessageBody)); 17297640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 17307640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 17317640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 17327640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17337640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = originalPackageName; 17347640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 17357640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = originalMessageBody; 17367640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 17377640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17387640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 17397640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Message processing test, send invalid sms data 17407640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 17417640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testProcessMsg5() { 17427640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(2); 17437640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerLen = pdu.length - 17447640caaf912a7eefacc3e2108c5afd70f7b072a4noda (mGsmHeader.length + mUserDataHeader.length + mMessageBody.length); 17457640caaf912a7eefacc3e2108c5afd70f7b072a4noda int pduType = 6; 17467640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tranId = 0; 17477640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalPackageName = mPackageName; 17487640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 17497640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17507640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 17517640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17527640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverActivity"; 17537640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17547640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 17557640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 17567640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 17577640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 17587640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_ACTIVITY, false, false); 17597640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17607640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue((iwapman.processMessage( 17617640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 17627640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 17637640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)) 17647640caaf912a7eefacc3e2108c5afd70f7b072a4noda & WapPushManagerParams.MESSAGE_HANDLED) == 17657640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.MESSAGE_HANDLED); 17667640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17677640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 17687640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 17697640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 17707640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17717640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 17727640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 17737640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 17747640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17757640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = originalPackageName; 17767640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 17777640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 17787640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17797640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 17807640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Message processing test, no receiver application 17817640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 17827640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testProcessMsg6() { 17837640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(1); 17847640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerLen = pdu.length - 17857640caaf912a7eefacc3e2108c5afd70f7b072a4noda (mGsmHeader.length + mUserDataHeader.length + mMessageBody.length); 17867640caaf912a7eefacc3e2108c5afd70f7b072a4noda int pduType = 6; 17877640caaf912a7eefacc3e2108c5afd70f7b072a4noda int tranId = 0; 17887640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalPackageName = mPackageName; 17897640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 17907640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17917640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 17927640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17937640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.NoReceiver"; 17947640caaf912a7eefacc3e2108c5afd70f7b072a4noda 17957640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 17967640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 17977640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 17987640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 17997640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_ACTIVITY, false, false); 18007640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18017640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse((iwapman.processMessage( 18027640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 18037640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 18047640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)) 18057640caaf912a7eefacc3e2108c5afd70f7b072a4noda & WapPushManagerParams.MESSAGE_HANDLED) == 18067640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.MESSAGE_HANDLED); 18077640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18087640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 18097640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 18107640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 18117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18127640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 18137640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 18147640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName, 18157640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, false, false); 18167640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18177640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse((iwapman.processMessage( 18187640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mAppIdValue), 18197640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), 18207640caaf912a7eefacc3e2108c5afd70f7b072a4noda createIntent(pduType, tranId)) 18217640caaf912a7eefacc3e2108c5afd70f7b072a4noda & WapPushManagerParams.MESSAGE_HANDLED) == 18227640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.MESSAGE_HANDLED); 18237640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18247640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 18257640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 18267640caaf912a7eefacc3e2108c5afd70f7b072a4noda Integer.toString(mContentTypeValue), mPackageName, mClassName); 18277640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18287640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 18297640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(false); 18307640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 18317640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18327640caaf912a7eefacc3e2108c5afd70f7b072a4noda mPackageName = originalPackageName; 18337640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 18347640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 18357640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18367640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 18377640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WspTypeDecoder test, normal pdu 18387640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 18397640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDecoder1() { 18407640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 18417640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 18427640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 18437640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18447640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < 10; i++) { 18457640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = rd.nextInt(0xFFFF); 18467640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(1); 18477640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 18487640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18497640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.seekXWapApplicationId(mWspHeaderStart, 18507640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart + mWspHeaderLen - 1); 18517640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 18527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18537640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = (int) pduDecoder.getValue32(); 18547640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.decodeXWapApplicationId(index); 18557640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 18567640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18577640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mAppIdValue: " + mAppIdValue 18587640caaf912a7eefacc3e2108c5afd70f7b072a4noda + ", val: " + pduDecoder.getValue32()); 18597640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(mAppIdValue == (int) pduDecoder.getValue32()); 18607640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 18617640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18627640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 18637640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 18647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18657640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 18667640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WspTypeDecoder test, no header 18677640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 18687640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDecoder2() { 18697640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 18707640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 18717640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 18727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18737640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = rd.nextInt(0xFFFF); 18747640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(2); 18757640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 18767640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18777640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.seekXWapApplicationId(mWspHeaderStart, 18787640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart + mWspHeaderLen - 1); 18797640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(res); 18807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18817640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 18827640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 18837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18847640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 18857640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WspTypeDecoder test, decode appid test 18867640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 18877640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDecoder3() { 18887640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 18897640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 18907640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 18917640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 18927640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18937640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < 100; i++) { 18947640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = rd.nextInt(0x0FFFFFFF); 18957640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = rd.nextInt(0x0FFF); 18967640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(3); 18977640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 18987640caaf912a7eefacc3e2108c5afd70f7b072a4noda 18997640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.seekXWapApplicationId(mWspHeaderStart, 19007640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart + mWspHeaderLen - 1); 19017640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 19027640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19037640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = (int) pduDecoder.getValue32(); 19047640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.decodeXWapApplicationId(index); 19057640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 19067640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19077640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mAppIdValue: " + mAppIdValue 19087640caaf912a7eefacc3e2108c5afd70f7b072a4noda + ", val: " + pduDecoder.getValue32()); 19097640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(mAppIdValue == (int) pduDecoder.getValue32()); 19107640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 19117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19127640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 19137640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 19147640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 19157640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19167640caaf912a7eefacc3e2108c5afd70f7b072a4noda /* 19177640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testEnc() { 19187640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] arr = new byte[20]; 19197640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = 0; 19207640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += encodeUint32(0x87a5, arr, index); 19217640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += encodeUint32(0x1, arr, index); 19227640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += encodeUint32(0x9b, arr, index); 19237640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += encodeUint32(0x10, arr, index); 19247640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += encodeUint32(0xe0887, arr, index); 19257640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += encodeUint32(0x791a23d0, arr, index); 19267640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19277640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, HexDump.dumpHexString(arr)); 19287640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 19297640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 19307640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19317640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 19327640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WspTypeDecoder test, no appid test 19337640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 19347640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDecoder4() { 19357640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 19367640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 19377640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 19387640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 19397640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19407640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < 100; i++) { 19417640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = rd.nextInt(0x0FFFFFFF); 19427640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = rd.nextInt(0x0FFF); 19437640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(4); 19447640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 19457640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19467640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.seekXWapApplicationId(mWspHeaderStart, 19477640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart + mWspHeaderLen - 1); 19487640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertFalse(res); 19497640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19507640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 19517640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19527640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 19537640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 19547640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 19557640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19567640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 19577640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WspTypeDecoder test, decode string appid test 19587640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 19597640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDecoder5() { 19607640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 19617640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 19627640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 19637640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 19647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19657640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < 10; i++) { 19667640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = rd.nextInt(0x0FFFFFFF); 19677640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = rd.nextInt(0x0FFF); 19687640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(5); 19697640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 19707640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19717640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.seekXWapApplicationId(mWspHeaderStart, 19727640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart + mWspHeaderLen - 1); 19737640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 19747640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19757640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = (int) pduDecoder.getValue32(); 19767640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.decodeXWapApplicationId(index); 19777640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 19787640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19797640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mAppIdValue: [" + mAppIdName + "], val: [" 19807640caaf912a7eefacc3e2108c5afd70f7b072a4noda + pduDecoder.getValueString() + "]"); 19817640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(mAppIdName.equals(pduDecoder.getValueString())); 19827640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 19837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19847640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 19857640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 19867640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 19877640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19887640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 19897640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WspTypeDecoder test, decode string appid test 19907640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 19917640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDecoder6() { 19927640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 19937640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 19947640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 19957640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 19967640caaf912a7eefacc3e2108c5afd70f7b072a4noda 19977640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < OMA_APPLICATION_ID_NAMES.length; i++) { 19987640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = OMA_APPLICATION_ID_NAMES[i]; 19997640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = rd.nextInt(0x0FFF); 20007640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(6); 20017640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 20027640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20037640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.seekXWapApplicationId(mWspHeaderStart, 20047640caaf912a7eefacc3e2108c5afd70f7b072a4noda mWspHeaderStart + mWspHeaderLen - 1); 20057640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 20067640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20077640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = (int) pduDecoder.getValue32(); 20087640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.decodeXWapApplicationId(index); 20097640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 20107640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20117640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mAppIdValue: [" + mAppIdName + "], val: [" 20127640caaf912a7eefacc3e2108c5afd70f7b072a4noda + pduDecoder.getValueString() + "]"); 20137640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(mAppIdName.equals(pduDecoder.getValueString())); 20147640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 20157640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20167640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 20177640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 20187640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 20197640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20207640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 20217640caaf912a7eefacc3e2108c5afd70f7b072a4noda * WspTypeDecoder test, decode OMA content type 20227640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 20237640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testDecoder7() { 20247640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 20257640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 20267640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 20277640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 20287640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20297640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < OMA_CONTENT_TYPE_NAMES.length; i++) { 20307640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = OMA_CONTENT_TYPE_NAMES[i]; 20317640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(7); 20327640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 20337640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20347640caaf912a7eefacc3e2108c5afd70f7b072a4noda res = pduDecoder.decodeContentType(mWspContentTypeStart); 20357640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(res); 20367640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20377640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeName: [" + mContentTypeName + "], val: [" 20387640caaf912a7eefacc3e2108c5afd70f7b072a4noda + pduDecoder.getValueString() + "]"); 20397640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(mContentTypeName.equals(pduDecoder.getValueString())); 20407640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 20417640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20427640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 20437640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 20447640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 20457640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20467640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20477640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 20487640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Copied from WapPushOverSms. 20497640caaf912a7eefacc3e2108c5afd70f7b072a4noda * The code flow is not changed from the original. 20507640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 20517640caaf912a7eefacc3e2108c5afd70f7b072a4noda public int dispatchWapPdu(byte[] pdu, IWapPushManager wapPushMan) { 20527640caaf912a7eefacc3e2108c5afd70f7b072a4noda 205343a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.d(LOG_TAG, "Rx: " + IccUtils.bytesToHexString(pdu)); 20547640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20557640caaf912a7eefacc3e2108c5afd70f7b072a4noda int index = 0; 20567640caaf912a7eefacc3e2108c5afd70f7b072a4noda int transactionId = pdu[index++] & 0xFF; 20577640caaf912a7eefacc3e2108c5afd70f7b072a4noda int pduType = pdu[index++] & 0xFF; 20587640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerLength = 0; 20597640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20607640caaf912a7eefacc3e2108c5afd70f7b072a4noda if ((pduType != WspTypeDecoder.PDU_TYPE_PUSH) && 20617640caaf912a7eefacc3e2108c5afd70f7b072a4noda (pduType != WspTypeDecoder.PDU_TYPE_CONFIRMED_PUSH)) { 206243a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.w(LOG_TAG, "Received non-PUSH WAP PDU. Type = " + pduType); 20637640caaf912a7eefacc3e2108c5afd70f7b072a4noda return Intents.RESULT_SMS_HANDLED; 20647640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 20657640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20667640caaf912a7eefacc3e2108c5afd70f7b072a4noda WspTypeDecoder pduDecoder = new WspTypeDecoder(pdu); 20677640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20687640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 20697640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Parse HeaderLen(unsigned integer). 20707640caaf912a7eefacc3e2108c5afd70f7b072a4noda * From wap-230-wsp-20010705-a section 8.1.2 20717640caaf912a7eefacc3e2108c5afd70f7b072a4noda * The maximum size of a uintvar is 32 bits. 20727640caaf912a7eefacc3e2108c5afd70f7b072a4noda * So it will be encoded in no more than 5 octets. 20737640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 20747640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (pduDecoder.decodeUintvarInteger(index) == false) { 207543a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.w(LOG_TAG, "Received PDU. Header Length error."); 20767640caaf912a7eefacc3e2108c5afd70f7b072a4noda return Intents.RESULT_SMS_GENERIC_ERROR; 20777640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 20787640caaf912a7eefacc3e2108c5afd70f7b072a4noda headerLength = (int) pduDecoder.getValue32(); 20797640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += pduDecoder.getDecodedDataLength(); 20807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20817640caaf912a7eefacc3e2108c5afd70f7b072a4noda int headerStartIndex = index; 20827640caaf912a7eefacc3e2108c5afd70f7b072a4noda 20837640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 20847640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Parse Content-Type. 20857640caaf912a7eefacc3e2108c5afd70f7b072a4noda * From wap-230-wsp-20010705-a section 8.4.2.24 20867640caaf912a7eefacc3e2108c5afd70f7b072a4noda * 20877640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Content-type-value = Constrained-media | Content-general-form 20887640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Content-general-form = Value-length Media-type 20897640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Media-type = (Well-known-media | Extension-Media) *(Parameter) 20907640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Value-length = Short-length | (Length-quote Length) 20917640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Short-length = <Any octet 0-30> (octet <= WAP_PDU_SHORT_LENGTH_MAX) 20927640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Length-quote = <Octet 31> (WAP_PDU_LENGTH_QUOTE) 20937640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Length = Uintvar-integer 20947640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 20957640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (pduDecoder.decodeContentType(index) == false) { 209643a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.w(LOG_TAG, "Received PDU. Header Content-Type error."); 20977640caaf912a7eefacc3e2108c5afd70f7b072a4noda return Intents.RESULT_SMS_GENERIC_ERROR; 20987640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 20997640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21007640caaf912a7eefacc3e2108c5afd70f7b072a4noda String mimeType = pduDecoder.getValueString(); 21017640caaf912a7eefacc3e2108c5afd70f7b072a4noda long binaryContentType = pduDecoder.getValue32(); 21027640caaf912a7eefacc3e2108c5afd70f7b072a4noda index += pduDecoder.getDecodedDataLength(); 21037640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21047640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] header = new byte[headerLength]; 21057640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(pdu, headerStartIndex, header, 0, header.length); 21067640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21077640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] intentData; 21087640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21097640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (mimeType != null && mimeType.equals(WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO)) { 21107640caaf912a7eefacc3e2108c5afd70f7b072a4noda intentData = pdu; 21117640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 21127640caaf912a7eefacc3e2108c5afd70f7b072a4noda int dataIndex = headerStartIndex + headerLength; 21137640caaf912a7eefacc3e2108c5afd70f7b072a4noda intentData = new byte[pdu.length - dataIndex]; 21147640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(pdu, dataIndex, intentData, 0, intentData.length); 21157640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21167640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21177640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 21187640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Seek for application ID field in WSP header. 21197640caaf912a7eefacc3e2108c5afd70f7b072a4noda * If application ID is found, WapPushManager substitute the message 21207640caaf912a7eefacc3e2108c5afd70f7b072a4noda * processing. Since WapPushManager is optional module, if WapPushManager 21217640caaf912a7eefacc3e2108c5afd70f7b072a4noda * is not found, legacy message processing will be continued. 21227640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 21237640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (pduDecoder.seekXWapApplicationId(index, index + headerLength - 1)) { 21247640caaf912a7eefacc3e2108c5afd70f7b072a4noda index = (int) pduDecoder.getValue32(); 21257640caaf912a7eefacc3e2108c5afd70f7b072a4noda pduDecoder.decodeXWapApplicationId(index); 21267640caaf912a7eefacc3e2108c5afd70f7b072a4noda String wapAppId = pduDecoder.getValueString(); 21277640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (wapAppId == null) { 21287640caaf912a7eefacc3e2108c5afd70f7b072a4noda wapAppId = Integer.toString((int) pduDecoder.getValue32()); 21297640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21307640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21317640caaf912a7eefacc3e2108c5afd70f7b072a4noda String contentType = ((mimeType == null) ? 21327640caaf912a7eefacc3e2108c5afd70f7b072a4noda Long.toString(binaryContentType) : mimeType); 213343a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.v(LOG_TAG, "appid found: " + wapAppId + ":" + contentType); 21347640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21357640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 21367640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean processFurther = true; 21377640caaf912a7eefacc3e2108c5afd70f7b072a4noda // IWapPushManager wapPushMan = mWapConn.getWapPushManager(); 21387640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (wapPushMan == null) { 213943a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.w(LOG_TAG, "wap push manager not found!"); 21407640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 21417640caaf912a7eefacc3e2108c5afd70f7b072a4noda Intent intent = new Intent(); 21427640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("transactionId", transactionId); 21437640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("pduType", pduType); 21447640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("header", header); 21457640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("data", intentData); 21467640caaf912a7eefacc3e2108c5afd70f7b072a4noda intent.putExtra("contentTypeParameters", 21477640caaf912a7eefacc3e2108c5afd70f7b072a4noda pduDecoder.getContentParameters()); 21487640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21497640caaf912a7eefacc3e2108c5afd70f7b072a4noda int procRet = wapPushMan.processMessage(wapAppId, contentType, intent); 215043a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.v(LOG_TAG, "procRet:" + procRet); 21517640caaf912a7eefacc3e2108c5afd70f7b072a4noda if ((procRet & WapPushManagerParams.MESSAGE_HANDLED) > 0 21527640caaf912a7eefacc3e2108c5afd70f7b072a4noda && (procRet & WapPushManagerParams.FURTHER_PROCESSING) == 0) { 21537640caaf912a7eefacc3e2108c5afd70f7b072a4noda processFurther = false; 21547640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21557640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21567640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (!processFurther) { 21577640caaf912a7eefacc3e2108c5afd70f7b072a4noda return Intents.RESULT_SMS_HANDLED; 21587640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21597640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 216043a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.w(LOG_TAG, "remote func failed..."); 21617640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21627640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 216343a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) Log.v(LOG_TAG, "fall back to existing handler"); 21647640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21657640caaf912a7eefacc3e2108c5afd70f7b072a4noda return Activity.RESULT_OK; 21667640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21677640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21687640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected byte[] retrieveWspBody() { 21697640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] array = new byte[mWspHeader.length + mMessageBody.length]; 21707640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21717640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(mWspHeader, 0, array, 0, mWspHeader.length); 21727640caaf912a7eefacc3e2108c5afd70f7b072a4noda System.arraycopy(mMessageBody, 0, array, mWspHeader.length, mMessageBody.length); 21737640caaf912a7eefacc3e2108c5afd70f7b072a4noda return array; 21747640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21757640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21767640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected String getContentTypeName(int ctypeVal) { 21777640caaf912a7eefacc3e2108c5afd70f7b072a4noda int i; 21787640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21797640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < OMA_CONTENT_TYPE_VALUES.length; i++) { 21807640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (ctypeVal == OMA_CONTENT_TYPE_VALUES[i]) { 21817640caaf912a7eefacc3e2108c5afd70f7b072a4noda return OMA_CONTENT_TYPE_NAMES[i]; 21827640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21837640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21847640caaf912a7eefacc3e2108c5afd70f7b072a4noda return null; 21857640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21867640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21877640caaf912a7eefacc3e2108c5afd70f7b072a4noda protected boolean isContentTypeMapped(int ctypeVal) { 21887640caaf912a7eefacc3e2108c5afd70f7b072a4noda int i; 21897640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21907640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (i = 0; i < OMA_CONTENT_TYPE_VALUES.length; i++) { 21917640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (ctypeVal == OMA_CONTENT_TYPE_VALUES[i]) return true; 21927640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21937640caaf912a7eefacc3e2108c5afd70f7b072a4noda return false; 21947640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 21957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 21967640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 21977640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Integration test 1, simple case 21987640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 21997640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testIntegration1() { 22007640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 22017640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 22027640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 22037640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 22047640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalContentTypeName = mContentTypeName; 22057640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 22067640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] originalMessageBody = mMessageBody; 22077640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 22087640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22097640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = new byte[100 + rd.nextInt(100)]; 22107640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd.nextBytes(mMessageBody); 22117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22127640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(1); 22137640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] wappushPdu = retrieveWspBody(); 22147640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22157640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22167640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverActivity"; 22177640caaf912a7eefacc3e2108c5afd70f7b072a4noda // Phone dummy = new DummyPhone(getContext()); 22187640caaf912a7eefacc3e2108c5afd70f7b072a4noda // Phone gsm = PhoneFactory.getGsmPhone(); 22197640caaf912a7eefacc3e2108c5afd70f7b072a4noda // GSMPhone gsm = new GSMPhone(getContext(), new SimulatedCommands(), null, true); 22207640caaf912a7eefacc3e2108c5afd70f7b072a4noda // WapPushOverSms dispatcher = new WapPushOverSms(dummy, null); 22217640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22227640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 22237640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 22247640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 22257640caaf912a7eefacc3e2108c5afd70f7b072a4noda IDataVerify dataverify = getVerifyInterface(); 22267640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22277640caaf912a7eefacc3e2108c5afd70f7b072a4noda dataverify.resetData(); 22287640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22297640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (isContentTypeMapped(mContentTypeValue)) { 22307640caaf912a7eefacc3e2108c5afd70f7b072a4noda // content type is mapped 22317640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = getContentTypeName(mContentTypeValue); 22327640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeValue mapping " 22337640caaf912a7eefacc3e2108c5afd70f7b072a4noda + mContentTypeName + ":" + mContentTypeValue); 22347640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 22357640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = Integer.toString(mContentTypeValue); 22367640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 22377640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 22387640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName, 22397640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_ACTIVITY, false, false); 22407640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22417640caaf912a7eefacc3e2108c5afd70f7b072a4noda dispatchWapPdu(wappushPdu, iwapman); 22427640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22437640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 22447640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 22457640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName); 22467640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22477640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(mMessageBody)); 22487640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 22497640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 22507640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22517640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22527640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 22537640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 22547640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = originalContentTypeName; 22557640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 22567640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 22577640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = originalMessageBody; 22587640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 22597640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22607640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 22617640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Integration test 2, random mAppIdValue(int), all OMA content type 22627640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 22637640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testIntegration2() { 22647640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 22657640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 22667640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 22677640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 22687640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalContentTypeName = mContentTypeName; 22697640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 22707640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] originalMessageBody = mMessageBody; 22717640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 22727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22737640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 22747640caaf912a7eefacc3e2108c5afd70f7b072a4noda IDataVerify dataverify = getVerifyInterface(); 22757640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverActivity"; 22767640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22777640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < OMA_CONTENT_TYPE_NAMES.length; i++) { 22787640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = OMA_CONTENT_TYPE_NAMES[i]; 22797640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = rd.nextInt(0x0FFFFFFF); 22807640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22817640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = new byte[100 + rd.nextInt(100)]; 22827640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd.nextBytes(mMessageBody); 22837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22847640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(7); 22857640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] wappushPdu = retrieveWspBody(); 22867640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22877640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 22887640caaf912a7eefacc3e2108c5afd70f7b072a4noda dataverify.resetData(); 22897640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 22907640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 22917640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName, 22927640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_ACTIVITY, false, false); 22937640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22947640caaf912a7eefacc3e2108c5afd70f7b072a4noda dispatchWapPdu(wappushPdu, iwapman); 22957640caaf912a7eefacc3e2108c5afd70f7b072a4noda 22967640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 22977640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 22987640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName); 22997640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23007640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (mContentTypeName.equals(WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO)) { 23017640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(wappushPdu)); 23027640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 23037640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(mMessageBody)); 23047640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23057640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 23067640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23077640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23087640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23097640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23107640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 23117640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 23127640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = originalContentTypeName; 23137640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 23147640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 23157640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = originalMessageBody; 23167640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23177640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23187640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 23197640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Integration test 3, iterate OmaApplication ID, random binary content type 23207640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 23217640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testIntegration3() { 23227640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 23237640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 23247640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 23257640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 23267640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalContentTypeName = mContentTypeName; 23277640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 23287640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] originalMessageBody = mMessageBody; 23297640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 23307640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23317640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 23327640caaf912a7eefacc3e2108c5afd70f7b072a4noda IDataVerify dataverify = getVerifyInterface(); 23337640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverService"; 23347640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23357640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < OMA_APPLICATION_ID_NAMES.length; i++) { 23367640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = OMA_APPLICATION_ID_NAMES[i]; 23377640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = rd.nextInt(0x0FFF); 23387640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23397640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = new byte[100 + rd.nextInt(100)]; 23407640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd.nextBytes(mMessageBody); 23417640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23427640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(6); 23437640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] wappushPdu = retrieveWspBody(); 23447640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23457640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 23467640caaf912a7eefacc3e2108c5afd70f7b072a4noda dataverify.resetData(); 23477640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 23487640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (isContentTypeMapped(mContentTypeValue)) { 23497640caaf912a7eefacc3e2108c5afd70f7b072a4noda // content type is mapped to integer value 23507640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = getContentTypeName(mContentTypeValue); 23517640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeValue mapping " 23527640caaf912a7eefacc3e2108c5afd70f7b072a4noda + mContentTypeValue + ":" + mContentTypeName); 23537640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 23547640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = Integer.toString(mContentTypeValue); 23557640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23567640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23577640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(mAppIdName, 23587640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName, 23597640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, false, false); 23607640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23617640caaf912a7eefacc3e2108c5afd70f7b072a4noda dispatchWapPdu(wappushPdu, iwapman); 23627640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23637640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 23647640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(mAppIdName, 23657640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName); 23667640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23677640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (mContentTypeName.equals(WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO)) { 23687640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(wappushPdu)); 23697640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 23707640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(mMessageBody)); 23717640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23727640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 23737640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23747640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23757640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23767640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 23777640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 23787640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = originalContentTypeName; 23797640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 23807640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 23817640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = originalMessageBody; 23827640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 23837640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23847640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 23857640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Integration test 4, iterate OmaApplication ID, Oma content type 23867640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 23877640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testIntegration4() { 23887640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 23897640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 23907640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 23917640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 23927640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalContentTypeName = mContentTypeName; 23937640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 23947640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] originalMessageBody = mMessageBody; 23957640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 23967640caaf912a7eefacc3e2108c5afd70f7b072a4noda 23977640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 23987640caaf912a7eefacc3e2108c5afd70f7b072a4noda IDataVerify dataverify = getVerifyInterface(); 23997640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverService"; 24007640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24017640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < OMA_APPLICATION_ID_NAMES.length 24027640caaf912a7eefacc3e2108c5afd70f7b072a4noda + OMA_CONTENT_TYPE_NAMES.length; i++) { 24037640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = OMA_APPLICATION_ID_NAMES[rd.nextInt(OMA_APPLICATION_ID_NAMES.length)]; 24047640caaf912a7eefacc3e2108c5afd70f7b072a4noda int contIndex = rd.nextInt(OMA_CONTENT_TYPE_NAMES.length); 24057640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = OMA_CONTENT_TYPE_NAMES[contIndex]; 24067640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24077640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = new byte[100 + rd.nextInt(100)]; 24087640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd.nextBytes(mMessageBody); 24097640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24107640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(8); 24117640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] wappushPdu = retrieveWspBody(); 24127640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24137640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 24147640caaf912a7eefacc3e2108c5afd70f7b072a4noda dataverify.resetData(); 24157640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 24167640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(mAppIdName, 24177640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName, 24187640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, false, false); 24197640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24207640caaf912a7eefacc3e2108c5afd70f7b072a4noda dispatchWapPdu(wappushPdu, iwapman); 24217640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24227640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 24237640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(mAppIdName, 24247640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName); 24257640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24267640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (mContentTypeName.equals(WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO)) { 24277640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(wappushPdu)); 24287640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 24297640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(mMessageBody)); 24307640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 24317640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 24327640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 24337640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 24347640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24357640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 24367640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 24377640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = originalContentTypeName; 24387640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 24397640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 24407640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = originalMessageBody; 24417640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 24427640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24437640caaf912a7eefacc3e2108c5afd70f7b072a4noda /** 24447640caaf912a7eefacc3e2108c5afd70f7b072a4noda * Integration test 5, iterate binary OmaApplication ID, Oma binary content type 24457640caaf912a7eefacc3e2108c5afd70f7b072a4noda */ 24467640caaf912a7eefacc3e2108c5afd70f7b072a4noda public void testIntegration5() { 24477640caaf912a7eefacc3e2108c5afd70f7b072a4noda boolean res; 24487640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalAppIdValue = mAppIdValue; 24497640caaf912a7eefacc3e2108c5afd70f7b072a4noda int originalContentTypeValue = mContentTypeValue; 24507640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalAppIdName = mAppIdName; 24517640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalContentTypeName = mContentTypeName; 24527640caaf912a7eefacc3e2108c5afd70f7b072a4noda String originalClassName = mClassName; 24537640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] originalMessageBody = mMessageBody; 24547640caaf912a7eefacc3e2108c5afd70f7b072a4noda Random rd = new Random(); 24557640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24567640caaf912a7eefacc3e2108c5afd70f7b072a4noda IWapPushManager iwapman = getInterface(); 24577640caaf912a7eefacc3e2108c5afd70f7b072a4noda IDataVerify dataverify = getVerifyInterface(); 24587640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = "com.android.smspush.unitTests.ReceiverService"; 24597640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24607640caaf912a7eefacc3e2108c5afd70f7b072a4noda for (int i = 0; i < OMA_APPLICATION_ID_VALUES.length + 24617640caaf912a7eefacc3e2108c5afd70f7b072a4noda OMA_CONTENT_TYPE_VALUES.length; i++) { 24627640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = OMA_APPLICATION_ID_VALUES[rd.nextInt( 24637640caaf912a7eefacc3e2108c5afd70f7b072a4noda OMA_APPLICATION_ID_VALUES.length)]; 24647640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = 24657640caaf912a7eefacc3e2108c5afd70f7b072a4noda OMA_CONTENT_TYPE_VALUES[rd.nextInt(OMA_CONTENT_TYPE_VALUES.length)]; 24667640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24677640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = new byte[100 + rd.nextInt(100)]; 24687640caaf912a7eefacc3e2108c5afd70f7b072a4noda rd.nextBytes(mMessageBody); 24697640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24707640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] pdu = createPDU(3); 24717640caaf912a7eefacc3e2108c5afd70f7b072a4noda byte[] wappushPdu = retrieveWspBody(); 24727640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24737640caaf912a7eefacc3e2108c5afd70f7b072a4noda try { 24747640caaf912a7eefacc3e2108c5afd70f7b072a4noda dataverify.resetData(); 24757640caaf912a7eefacc3e2108c5afd70f7b072a4noda // set up data 24767640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (isContentTypeMapped(mContentTypeValue)) { 24777640caaf912a7eefacc3e2108c5afd70f7b072a4noda // content type is mapped to integer value 24787640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = getContentTypeName(mContentTypeValue); 24797640caaf912a7eefacc3e2108c5afd70f7b072a4noda Log.d(LOG_TAG, "mContentTypeValue mapping " 24807640caaf912a7eefacc3e2108c5afd70f7b072a4noda + mContentTypeValue + ":" + mContentTypeName); 24817640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 24827640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = Integer.toString(mContentTypeValue); 24837640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 24847640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24857640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.addPackage(Integer.toString(mAppIdValue), 24867640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName, 24877640caaf912a7eefacc3e2108c5afd70f7b072a4noda WapPushManagerParams.APP_TYPE_SERVICE, false, false); 24887640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24897640caaf912a7eefacc3e2108c5afd70f7b072a4noda dispatchWapPdu(wappushPdu, iwapman); 24907640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24917640caaf912a7eefacc3e2108c5afd70f7b072a4noda // clean up data 24927640caaf912a7eefacc3e2108c5afd70f7b072a4noda iwapman.deletePackage(Integer.toString(mAppIdValue), 24937640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName, mPackageName, mClassName); 24947640caaf912a7eefacc3e2108c5afd70f7b072a4noda 24957640caaf912a7eefacc3e2108c5afd70f7b072a4noda if (mContentTypeName.equals(WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO)) { 24967640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(wappushPdu)); 24977640caaf912a7eefacc3e2108c5afd70f7b072a4noda } else { 24987640caaf912a7eefacc3e2108c5afd70f7b072a4noda assertTrue(dataverify.verifyData(mMessageBody)); 24997640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 25007640caaf912a7eefacc3e2108c5afd70f7b072a4noda } catch (RemoteException e) { 25017640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 25027640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 25037640caaf912a7eefacc3e2108c5afd70f7b072a4noda 25047640caaf912a7eefacc3e2108c5afd70f7b072a4noda mClassName = originalClassName; 25057640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdName = originalAppIdName; 25067640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeName = originalContentTypeName; 25077640caaf912a7eefacc3e2108c5afd70f7b072a4noda mAppIdValue = originalAppIdValue; 25087640caaf912a7eefacc3e2108c5afd70f7b072a4noda mContentTypeValue = originalContentTypeValue; 25097640caaf912a7eefacc3e2108c5afd70f7b072a4noda mMessageBody = originalMessageBody; 25107640caaf912a7eefacc3e2108c5afd70f7b072a4noda } 25117640caaf912a7eefacc3e2108c5afd70f7b072a4noda 25127640caaf912a7eefacc3e2108c5afd70f7b072a4noda} 2513