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

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

Added cell info unit tests.

am: e2507b53

* commit 'e2507b53':
  Added cell info unit tests.
parents c33ffc6d e2507b53
Loading
Loading
Loading
Loading
+9 −1
Original line number Original line Diff line number Diff line
@@ -20,6 +20,9 @@ import android.os.AsyncResult;
import android.os.HandlerThread;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Looper;
import android.os.Message;
import android.os.Message;
import android.os.Parcel;
import android.telephony.CellInfo;
import android.telephony.CellInfoGsm;
import android.telephony.Rlog;
import android.telephony.Rlog;
import android.telephony.SignalStrength;
import android.telephony.SignalStrength;


@@ -1697,7 +1700,12 @@ public class SimulatedCommands extends BaseCommands


    @Override
    @Override
    public void getCellInfoList(Message response) {
    public void getCellInfoList(Message response) {
        unimplemented(response);
        resultSuccess(response, SimulatedCommandsVerifier.getInstance().getCellInfoList());
    }

    @Override
    public int getRilVersion() {
        return 11;
    }
    }


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


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


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


import java.util.List;

public class SimulatedCommandsVerifier implements CommandsInterface {
public class SimulatedCommandsVerifier implements CommandsInterface {
    private static SimulatedCommandsVerifier sInstance;
    private static SimulatedCommandsVerifier sInstance;


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


    }
    }


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

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


+48 −8
Original line number Original line Diff line number Diff line
@@ -22,8 +22,11 @@ import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Bundle;
import android.os.HandlerThread;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.IBinder;
import android.os.Parcel;
import android.os.ServiceManager;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.UserHandle;
import android.telephony.CellInfo;
import android.telephony.CellInfoGsm;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager;
import android.test.suitebuilder.annotation.SmallTest;
import android.test.suitebuilder.annotation.SmallTest;
import android.util.Log;
import android.util.Log;
@@ -31,6 +34,7 @@ import android.util.SparseArray;


import com.android.internal.telephony.dataconnection.DcTracker;
import com.android.internal.telephony.dataconnection.DcTracker;
import com.android.internal.telephony.test.SimulatedCommands;
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.IccCardApplicationStatus;
import com.android.internal.telephony.uicc.SIMRecords;
import com.android.internal.telephony.uicc.SIMRecords;
import com.android.internal.telephony.uicc.UiccCardApplication;
import com.android.internal.telephony.uicc.UiccCardApplication;
@@ -48,7 +52,9 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoAnnotations;


import java.lang.reflect.Field;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashMap;
import java.util.List;


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


    private SimulatedCommands simulatedCommands;
    private SimulatedCommands mSimulatedCommands;
    private ContextFixture mContextFixture;
    private ContextFixture mContextFixture;
    private ServiceStateTracker sst;
    private ServiceStateTracker sst;


@@ -94,7 +102,7 @@ public class ServiceStateTrackerTest {


        @Override
        @Override
        public void onLooperPrepared() {
        public void onLooperPrepared() {
            sst = new ServiceStateTracker(mPhone, simulatedCommands);
            sst = new ServiceStateTracker(mPhone, mSimulatedCommands);
            synchronized (mLock) {
            synchronized (mLock) {
                mReady = true;
                mReady = true;
            }
            }
@@ -117,7 +125,7 @@ public class ServiceStateTrackerTest {
        logd("ServiceStateTrackerTest +Setup!");
        logd("ServiceStateTrackerTest +Setup!");
        MockitoAnnotations.initMocks(this);
        MockitoAnnotations.initMocks(this);
        mContextFixture = new ContextFixture();
        mContextFixture = new ContextFixture();
        simulatedCommands = new SimulatedCommands();
        mSimulatedCommands = new SimulatedCommands();


        doReturn(mContextFixture.getTestDouble()).when(mPhone).getContext();
        doReturn(mContextFixture.getTestDouble()).when(mPhone).getContext();
        doReturn(true).when(mPhone).getUnitTestMode();
        doReturn(true).when(mPhone).getUnitTestMode();
@@ -156,6 +164,10 @@ public class ServiceStateTrackerTest {
        field.setAccessible(true);
        field.setAccessible(true);
        field.set(null, mProxyController);
        field.set(null, mProxyController);


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

        mContextFixture.putStringArrayResource(
        mContextFixture.putStringArrayResource(
                com.android.internal.R.array.config_sameNamedOperatorConsideredRoaming,
                com.android.internal.R.array.config_sameNamedOperatorConsideredRoaming,
                new String[]{"123456"});
                new String[]{"123456"});
@@ -182,10 +194,10 @@ public class ServiceStateTrackerTest {
    public void testSetRadioPower() {
    public void testSetRadioPower() {
        waitUntilReady();
        waitUntilReady();


        boolean oldState = simulatedCommands.getRadioState().isOn();
        boolean oldState = mSimulatedCommands.getRadioState().isOn();
        sst.setRadioPower(!oldState);
        sst.setRadioPower(!oldState);
        waitForMs(100);
        waitForMs(100);
        assertTrue(oldState != simulatedCommands.getRadioState().isOn());
        assertTrue(oldState != mSimulatedCommands.getRadioState().isOn());
    }
    }


    @Test
    @Test
@@ -198,7 +210,7 @@ public class ServiceStateTrackerTest {


        sst.sendMessage(sst.obtainMessage(ServiceStateTracker.EVENT_NETWORK_STATE_CHANGED, null));
        sst.sendMessage(sst.obtainMessage(ServiceStateTracker.EVENT_NETWORK_STATE_CHANGED, null));


        waitForMs(100);
        waitForMs(500);


        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
        verify(mContextFixture.getTestDouble(), times(1)).
        verify(mContextFixture.getTestDouble(), times(1)).
@@ -225,7 +237,6 @@ public class ServiceStateTrackerTest {
        assertEquals(SimulatedCommands.FAKE_LONG_NAME, b.getString(TelephonyIntents.EXTRA_PLMN));
        assertEquals(SimulatedCommands.FAKE_LONG_NAME, b.getString(TelephonyIntents.EXTRA_PLMN));
    }
    }



    @Test
    @Test
    @SmallTest
    @SmallTest
    public void testNITZupdate() {
    public void testNITZupdate() {
@@ -237,7 +248,7 @@ public class ServiceStateTrackerTest {
                new AsyncResult(null,
                new AsyncResult(null,
                        new Object[]{"16/01/22,23:24:44-32,00", Long.valueOf(41824)}, null)));
                        new Object[]{"16/01/22,23:24:44-32,00", Long.valueOf(41824)}, null)));


        waitForMs(100);
        waitForMs(500);


        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
        verify(mContextFixture.getTestDouble(), atLeast(1)).
        verify(mContextFixture.getTestDouble(), atLeast(1)).
@@ -254,6 +265,35 @@ public class ServiceStateTrackerTest {
        assertTrue(receivedExpectedIntent);
        assertTrue(receivedExpectedIntent);
    }
    }


    @Test
    @SmallTest
    public void testCellInfoList() {
        waitUntilReady();
        waitForMs(100);

        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> list = new ArrayList();
        list.add(cellInfo);

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

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

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