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

Commit 89b9ae10 authored by Jack Yu's avatar Jack Yu Committed by android-build-merger
Browse files

Merge "Added few more unit tests for ServiceStateTracker" into mm-wireless-dev

am: 8472a8b0

* commit '8472a8b0':
  Added few more unit tests for ServiceStateTracker
parents 9f69a420 8472a8b0
Loading
Loading
Loading
Loading
+48 −6
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
import com.android.internal.telephony.gsm.SuppServiceNotification;

import java.util.ArrayList;
import java.util.List;

public class SimulatedCommands extends BaseCommands
        implements CommandsInterface, SimulatedRadioControl {
@@ -85,6 +86,9 @@ public class SimulatedCommands extends BaseCommands
    String mPin2Code;
    boolean mSsnNotifyOn = false;
    int mVoiceRadioTech;
    private SignalStrength mSignalStrength;
    private List<CellInfo> mCellInfoList;
    private int[] mImsRegState;

    int mPausedResponseCount;
    ArrayList<Message> mPausedResponses = new ArrayList<Message>();
@@ -797,10 +801,15 @@ public class SimulatedCommands extends BaseCommands
    @Override
    public void getMute (Message result) {unimplemented(result);}

    public void setSignalStrength(SignalStrength signalStrength) {
        mSignalStrength = signalStrength;
    }

    @Override
    public void getSignalStrength (Message result) {

        SignalStrength ss = new SignalStrength(
        if (mSignalStrength == null) {
            mSignalStrength = new SignalStrength(
                20, // gsmSignalStrength
                0,  // gsmBitErrorRate
                -1, // cdmaDbm
@@ -816,8 +825,9 @@ public class SimulatedCommands extends BaseCommands
                SignalStrength.INVALID,     // tdScdmaRscp
                true                        // gsmFlag
            );
        }

        resultSuccess(result, ss);
        resultSuccess(result, mSignalStrength);
    }

     /**
@@ -1699,9 +1709,33 @@ public class SimulatedCommands extends BaseCommands
        resultSuccess(response, ret);
    }

    public void setCellInfoList(List<CellInfo> list) {
        mCellInfoList = list;
    }

    @Override
    public void getCellInfoList(Message response) {
        resultSuccess(response, SimulatedCommandsVerifier.getInstance().getCellInfoList());
        if (mCellInfoList == null) {
            Parcel p = Parcel.obtain();
            p.writeInt(1);
            p.writeInt(1);
            p.writeInt(2);
            p.writeLong(1453510289108L);
            p.writeInt(310);
            p.writeInt(260);
            p.writeInt(123);
            p.writeInt(456);
            p.writeInt(99);
            p.writeInt(3);
            p.setDataPosition(0);

            CellInfoGsm cellInfo = CellInfoGsm.CREATOR.createFromParcel(p);

            ArrayList<CellInfo> mCellInfoList = new ArrayList();
            mCellInfoList.add(cellInfo);
        }

        resultSuccess(response, mCellInfoList);
    }

    @Override
@@ -1723,9 +1757,17 @@ public class SimulatedCommands extends BaseCommands
    public void setDataProfile(DataProfile[] dps, Message result) {
    }

    public void setImsRegistrationState(int[] regState) {
        mImsRegState = regState;
    }

    @Override
    public void getImsRegistrationState(Message response) {
        unimplemented(response);
        if (mImsRegState == null) {
            mImsRegState = new int[]{1};
        }

        resultSuccess(response, mImsRegState);
    }

    @Override
+0 −7
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.internal.telephony.test;

import android.os.Handler;
import android.os.Message;
import android.telephony.CellInfo;

import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.RadioCapability;
@@ -27,8 +26,6 @@ import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
import com.android.internal.telephony.dataconnection.DataProfile;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;

import java.util.List;

public class SimulatedCommandsVerifier implements CommandsInterface {
    private static SimulatedCommandsVerifier sInstance;

@@ -1205,10 +1202,6 @@ public class SimulatedCommandsVerifier implements CommandsInterface {

    }

    public List<CellInfo> getCellInfoList() {
        return null;
    }

    @Override
    public void setCellInfoListRate(int rateInMillis, Message response) {

+56 −13
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.os.ServiceManager;
import android.os.UserHandle;
import android.telephony.CellInfo;
import android.telephony.CellInfoGsm;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionManager;
import android.test.suitebuilder.annotation.SmallTest;
import android.util.Log;
@@ -34,7 +35,6 @@ import android.util.SparseArray;

import com.android.internal.telephony.dataconnection.DcTracker;
import com.android.internal.telephony.test.SimulatedCommands;
import com.android.internal.telephony.test.SimulatedCommandsVerifier;
import com.android.internal.telephony.uicc.IccCardApplicationStatus;
import com.android.internal.telephony.uicc.SIMRecords;
import com.android.internal.telephony.uicc.UiccCardApplication;
@@ -42,7 +42,14 @@ import com.android.internal.telephony.uicc.UiccController;

import static com.android.internal.telephony.TelephonyTestUtils.waitForMs;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

import org.junit.After;
import org.junit.Before;
@@ -54,7 +61,6 @@ import org.mockito.MockitoAnnotations;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class ServiceStateTrackerTest {
    private static final String TAG = "ServiceStateTrackerTest";
@@ -84,8 +90,6 @@ public class ServiceStateTrackerTest {
    HashMap<String, IBinder> mServiceCache;
    @Mock
    IBinder mBinder;
    @Mock
    SimulatedCommandsVerifier mSimulatedCommandsVerifier;

    private SimulatedCommands mSimulatedCommands;
    private ContextFixture mContextFixture;
@@ -164,10 +168,6 @@ public class ServiceStateTrackerTest {
        field.setAccessible(true);
        field.set(null, mProxyController);

        field = SimulatedCommandsVerifier.class.getDeclaredField("sInstance");
        field.setAccessible(true);
        field.set(null, mSimulatedCommandsVerifier);

        mContextFixture.putStringArrayResource(
                com.android.internal.R.array.config_sameNamedOperatorConsideredRoaming,
                new String[]{"123456"});
@@ -263,8 +263,6 @@ public class ServiceStateTrackerTest {
    @Test
    @SmallTest
    public void testCellInfoList() {
        waitForMs(100);

        Parcel p = Parcel.obtain();
        p.writeInt(1);
        p.writeInt(1);
@@ -282,12 +280,57 @@ public class ServiceStateTrackerTest {

        ArrayList<CellInfo> list = new ArrayList();
        list.add(cellInfo);

        doReturn(list).when(mSimulatedCommandsVerifier).getCellInfoList();
        mSimulatedCommands.setCellInfoList(list);

        assertEquals(sst.getAllCellInfo(), list);
    }

    @Test
    @SmallTest
    public void testImsRegState() {
        // Simulate IMS registered
        mSimulatedCommands.setImsRegistrationState(new int[]{1});

        sst.sendMessage(sst.obtainMessage(ServiceStateTracker.EVENT_IMS_STATE_CHANGED, null));
        waitForMs(200);

        assertTrue(sst.isImsRegistered());

        // Simulate IMS unregistered
        mSimulatedCommands.setImsRegistrationState(new int[]{0});

        sst.sendMessage(sst.obtainMessage(ServiceStateTracker.EVENT_IMS_STATE_CHANGED, null));
        waitForMs(200);

        assertFalse(sst.isImsRegistered());
    }

    @Test
    @SmallTest
    public void testSignalStrength() {
        SignalStrength ss = new SignalStrength(
                30, // gsmSignalStrength
                0,  // gsmBitErrorRate
                -1, // cdmaDbm
                -1, // cdmaEcio
                -1, // evdoDbm
                -1, // evdoEcio
                -1, // evdoSnr
                99, // lteSignalStrength
                SignalStrength.INVALID,     // lteRsrp
                SignalStrength.INVALID,     // lteRsrq
                SignalStrength.INVALID,     // lteRssnr
                SignalStrength.INVALID,     // lteCqi
                SignalStrength.INVALID,     // tdScdmaRscp
                true                        // gsmFlag
        );

        sst.sendMessage(sst.obtainMessage(ServiceStateTracker.EVENT_SIGNAL_STRENGTH_UPDATE,
                new AsyncResult(null, ss, null)));
        waitForMs(200);
        assertEquals(sst.getSignalStrength(), ss);
    }

    private static void logd(String s) {
        Log.d(TAG, s);
    }