Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27f47164 authored by Amit Mahajan's avatar Amit Mahajan
Browse files

New unit tests for InboundSmsHandler.

Bug: 25691379
Change-Id: I5fcbc95467cc7bd75f3f8a7da42c3814c1d2dac8
parent b456cd0d
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ import android.telephony.TelephonyManager;
import android.text.TextUtils;

import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.uicc.UiccCard;
import com.android.internal.telephony.uicc.UiccController;
import com.android.internal.util.HexDump;
@@ -658,17 +659,19 @@ public abstract class InboundSmsHandler extends StateMachine {
                if (DBG) log("destination port: " + destPort);
            }

            tracker = new InboundSmsTracker(sms.getPdu(), sms.getTimestampMillis(), destPort,
                    is3gpp2(), false, sms.getDisplayOriginatingAddress());
            tracker = TelephonyComponentFactory.getInstance().makeInboundSmsTracker(sms.getPdu(),
                    sms.getTimestampMillis(), destPort, is3gpp2(), false,
                    sms.getDisplayOriginatingAddress());
        } else {
            // Create a tracker for this message segment.
            SmsHeader.ConcatRef concatRef = smsHeader.concatRef;
            SmsHeader.PortAddrs portAddrs = smsHeader.portAddrs;
            int destPort = (portAddrs != null ? portAddrs.destPort : -1);

            tracker = new InboundSmsTracker(sms.getPdu(), sms.getTimestampMillis(), destPort,
                    is3gpp2(), sms.getDisplayOriginatingAddress(), concatRef.refNumber,
                    concatRef.seqNumber, concatRef.msgCount, false);
            tracker = TelephonyComponentFactory.getInstance().makeInboundSmsTracker(sms.getPdu(),
                    sms.getTimestampMillis(), destPort, is3gpp2(),
                    sms.getDisplayOriginatingAddress(), concatRef.refNumber, concatRef.seqNumber,
                    concatRef.msgCount, false);
        }

        if (VDBG) log("created tracker: " + tracker);
@@ -793,8 +796,7 @@ public abstract class InboundSmsHandler extends StateMachine {
            }
        }

        if (BlockChecker.isBlocked(mContext,
                tracker.getAddress())) {
        if (BlockChecker.isBlocked(mContext, tracker.getAddress())) {
            deleteFromRawTable(tracker.getDeleteWhere(), tracker.getDeleteWhereArgs());
            return false;
        }
@@ -1442,4 +1444,14 @@ public abstract class InboundSmsHandler extends StateMachine {
    private static String replaceFormFeeds(String s) {
        return s == null ? "" : s.replace('\f', '\n');
    }

    @VisibleForTesting
    public PowerManager.WakeLock getWakeLock() {
        return mWakeLock;
    }

    @VisibleForTesting
    public int getWakeLockTimeout() {
        return WAKELOCK_TIMEOUT;
    }
}
+18 −0
Original line number Diff line number Diff line
@@ -83,6 +83,24 @@ public class TelephonyComponentFactory {
        return new WspTypeDecoder(pdu);
    }

    /**
     * Create a tracker for a single-part SMS.
     */
    public InboundSmsTracker makeInboundSmsTracker(byte[] pdu, long timestamp, int destPort,
            boolean is3gpp2, boolean is3gpp2WapPdu, String address) {
        return new InboundSmsTracker(pdu, timestamp, destPort, is3gpp2, is3gpp2WapPdu, address);
    }

    /**
     * Create a tracker for a multi-part SMS.
     */
    public InboundSmsTracker makeInboundSmsTracker(byte[] pdu, long timestamp, int destPort,
            boolean is3gpp2, String address, int referenceNumber, int sequenceNumber,
            int messageCount, boolean is3gpp2WapPdu) {
        return new InboundSmsTracker(pdu, timestamp, destPort, is3gpp2, address, referenceNumber,
                sequenceNumber, messageCount, is3gpp2WapPdu);
    }

    public CdmaSubscriptionSourceManager
    getCdmaSubscriptionSourceManagerInstance(Context context, CommandsInterface ci, Handler h,
                                             int what, Object obj) {
+4 −2
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.internal.telephony.Phone;
import com.android.internal.telephony.SmsConstants;
import com.android.internal.telephony.SmsMessageBase;
import com.android.internal.telephony.SmsStorageMonitor;
import com.android.internal.telephony.TelephonyComponentFactory;
import com.android.internal.telephony.TelephonyProperties;
import com.android.internal.telephony.WspTypeDecoder;
import com.android.internal.telephony.cdma.sms.SmsEnvelope;
@@ -299,8 +300,9 @@ public class CdmaInboundSmsHandler extends InboundSmsHandler {
        byte[] userData = new byte[pdu.length - index];
        System.arraycopy(pdu, index, userData, 0, pdu.length - index);

        InboundSmsTracker tracker = new InboundSmsTracker(userData, timestamp, destinationPort,
                true, address, referenceNumber, segment, totalSegments, true);
        InboundSmsTracker tracker = TelephonyComponentFactory.getInstance().makeInboundSmsTracker(
                userData, timestamp, destinationPort, true, address, referenceNumber, segment,
                totalSegments, true);

        return addTrackerToRawTableAndSendMessage(tracker);
    }
+0 −4
Original line number Diff line number Diff line
@@ -99,9 +99,6 @@ public class ContextFixture implements TestFixture<Context> {

        @Override
        public Uri insert(Uri uri, ContentValues values) {
            if (uri.compareTo(Uri.withAppendedPath(Telephony.Sms.CONTENT_URI, "raw")) == 0) {
                return Uri.withAppendedPath(uri, "1");
            }
            return null;
        }

@@ -398,7 +395,6 @@ public class ContextFixture implements TestFixture<Context> {
        mConfiguration.locale = Locale.US;
        doReturn(mConfiguration).when(mResources).getConfiguration();

        mContentResolver.addProvider(Telephony.Sms.CONTENT_URI.getAuthority(), mContentProvider);
        mContentResolver.addProvider(Settings.System.CONTENT_URI.getAuthority(), mContentProvider);
    }

+13 −3
Original line number Diff line number Diff line
@@ -56,6 +56,9 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;

import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
@@ -137,7 +140,8 @@ public abstract class TelephonyTest {
    protected Singleton<IActivityManager> mIActivityManagerSingleton;
    @Mock
    protected IActivityManager mIActivityManager;

    @Mock
    protected InboundSmsTracker mInboundSmsTracker;

    protected SimulatedCommands mSimulatedCommands;
    protected ContextFixture mContextFixture;
@@ -272,14 +276,20 @@ public abstract class TelephonyTest {
                .makeIccPhoneBookInterfaceManager(any(Phone.class));
        doReturn(mDcTracker).when(mTelephonyComponentFactory)
                .makeDcTracker(any(Phone.class));
        doReturn(mIDeviceIdleController).when(mTelephonyComponentFactory)
                .getIDeviceIdleController();
        doReturn(mWspTypeDecoder).when(mTelephonyComponentFactory)
                .makeWspTypeDecoder(any(byte[].class));
        doReturn(mInboundSmsTracker).when(mTelephonyComponentFactory)
                .makeInboundSmsTracker(any(byte[].class), anyLong(), anyInt(), anyBoolean(),
                        anyBoolean(), anyString());
        doReturn(mInboundSmsTracker).when(mTelephonyComponentFactory)
                .makeInboundSmsTracker(any(byte[].class), anyLong(), anyInt(), anyBoolean(),
                        anyString(), anyInt(), anyInt(), anyInt(), anyBoolean());
        doReturn(mCdmaSSM).when(mTelephonyComponentFactory)
                .getCdmaSubscriptionSourceManagerInstance(any(Context.class),
                        any(CommandsInterface.class), any(Handler.class),
                        anyInt(), any(Object.class));
        doReturn(mIDeviceIdleController).when(mTelephonyComponentFactory)
                .getIDeviceIdleController();

        //mPhone
        doReturn(mContext).when(mPhone).getContext();
Loading