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

Commit 0c436655 authored by Chen Xu's avatar Chen Xu Committed by Android (Google) Code Review
Browse files

Merge "Add tests for CdmaSmsDispatcher with code cleanup" into nyc-dev

parents b15af5a8 6ba18ef5
Loading
Loading
Loading
Loading
+2 −19
Original line number Diff line number Diff line
@@ -22,18 +22,14 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.isNull;
import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.times;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.HandlerThread;
import android.os.Message;
import android.telephony.TelephonyManager;
import android.test.suitebuilder.annotation.SmallTest;

import static com.android.internal.telephony.TelephonyTestUtils.waitForMs;
@@ -45,17 +41,10 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;

public class ImsSMSDispatcherTest extends TelephonyTest {
    @Mock
    private SmsStorageMonitor mSmsStorageMonitor;
    @Mock
    private SmsUsageMonitor mSmsUsageMonitor;
    @Mock
    private PackageInfo mPackageInfo;
    @Mock
    private SMSDispatcher.SmsTracker mTracker;

    private ImsSMSDispatcher mImsSmsDispatcher;
    private TelephonyManager mTelephonyManager;

    private class ImsSmsDispatcherTestHandler extends HandlerThread {

@@ -76,12 +65,7 @@ public class ImsSMSDispatcherTest extends TelephonyTest {
    @Before
    public void setUp() throws Exception {
        super.setUp(getClass().getSimpleName());
        mTelephonyManager = TelephonyManager.from(mContextFixture.getTestDouble());
        doReturn(true).when(mTelephonyManager).getSmsSendCapableForPhone(anyInt(), anyBoolean());
        PackageManager mockPackageManager = mContextFixture.getTestDouble().getPackageManager();
        doReturn(new String[]{TAG}).when(mockPackageManager).getPackagesForUid(anyInt());
        doReturn(mPackageInfo).when(mockPackageManager).getPackageInfo(eq(TAG), anyInt());
        doReturn(true).when(mSmsUsageMonitor).check(anyString(), anyInt());
        setupMockPackagePermissionChecks();

        new ImsSmsDispatcherTestHandler(getClass().getSimpleName()).start();
        waitUntilReady();
@@ -128,7 +112,6 @@ public class ImsSMSDispatcherTest extends TelephonyTest {

    @Test @SmallTest
    public void testSendImsCdmaTest() throws Exception {
        ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
        switchImsSmsFormat(PhoneConstants.PHONE_TYPE_CDMA);
        mImsSmsDispatcher.sendText("111"/* desAddr*/, "222" /*scAddr*/, TAG,
                null, null, null, null, false);
@@ -139,7 +122,7 @@ public class ImsSMSDispatcherTest extends TelephonyTest {
    @Test @SmallTest
    public void testSendRetrySmsCdmaTest() throws Exception {
        // newFormat will be based on voice technology
        ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);;
        ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
        switchImsSmsFormat(PhoneConstants.PHONE_TYPE_CDMA);
        replaceInstance(SMSDispatcher.SmsTracker.class, "mFormat", mTracker,
                SmsConstants.FORMAT_3GPP2);
+22 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ import android.content.Context;
import android.content.IIntentSender;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -157,6 +159,12 @@ public abstract class TelephonyTest {
    protected IIntentSender mIIntentSender;
    @Mock
    protected IBinder mIBinder;
    @Mock
    protected SmsStorageMonitor mSmsStorageMonitor;
    @Mock
    protected SmsUsageMonitor mSmsUsageMonitor;
    @Mock
    protected PackageInfo mPackageInfo;

    protected SimulatedCommands mSimulatedCommands;
    protected ContextFixture mContextFixture;
@@ -364,6 +372,14 @@ public abstract class TelephonyTest {
            }
        }).when(mIccCardProxy).getIccRecords();

        //SMS
        doReturn(true).when(mSmsStorageMonitor).isStorageAvailable();
        doReturn(true).when(mSmsUsageMonitor).check(anyString(), anyInt());
        TelephonyManager mTelephonyManager = TelephonyManager.from(mContextFixture.getTestDouble());
        doReturn(true).when(mTelephonyManager).getSmsReceiveCapableForPhone(anyInt(), anyBoolean());
        doReturn(true).when(mTelephonyManager).getSmsSendCapableForPhone(
                anyInt(), anyBoolean());

        //Misc
        doReturn(ServiceState.RIL_RADIO_TECHNOLOGY_UMTS).when(mServiceState).
                getRilDataRadioTechnology();
@@ -415,4 +431,10 @@ public abstract class TelephonyTest {
            return null;
        }
    }

    protected void setupMockPackagePermissionChecks() throws Exception {
        PackageManager mockPackageManager = mContext.getPackageManager();
        doReturn(new String[]{TAG}).when(mockPackageManager).getPackagesForUid(anyInt());
        doReturn(mPackageInfo).when(mockPackageManager).getPackageInfo(eq(TAG), anyInt());
    }
}
+17 −15
Original line number Diff line number Diff line
@@ -18,30 +18,20 @@ package com.android.internal.telephony.cdma;

import android.os.HandlerThread;
import android.os.Message;
import android.telephony.*;
import android.test.suitebuilder.annotation.SmallTest;

import com.android.internal.telephony.ImsSMSDispatcher;
import com.android.internal.telephony.SMSDispatcher;
import com.android.internal.telephony.SmsStorageMonitor;
import com.android.internal.telephony.SmsUsageMonitor;
import com.android.internal.telephony.TelephonyTest;

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.Spy;

public class CdmaSmsDispatcherTest extends TelephonyTest {
    @Mock
    private SmsStorageMonitor mSmsStorageMonitor;
    @Mock
    private SmsUsageMonitor mSmsUsageMonitor;
    @Mock
    private android.telephony.SmsMessage mSmsMessage;
    @Mock
@@ -52,7 +42,6 @@ public class CdmaSmsDispatcherTest extends TelephonyTest {
    private SMSDispatcher.SmsTracker mSmsTracker;

    private CdmaSMSDispatcher mCdmaSmsDispatcher;
    private TelephonyManager mTelephonyManager;

    private class CdmaSmsDispatcherTestHandler extends HandlerThread {

@@ -70,11 +59,9 @@ public class CdmaSmsDispatcherTest extends TelephonyTest {

    @Before
    public void setUp() throws Exception {
        super.setUp("CdmaSmsDispatcherTest");
        super.setUp(this.getClass().getSimpleName());

        mTelephonyManager = TelephonyManager.from(mContext);
        doReturn(true).when(mTelephonyManager).getSmsReceiveCapableForPhone(anyInt(), anyBoolean());
        doReturn(true).when(mSmsStorageMonitor).isStorageAvailable();
        setupMockPackagePermissionChecks();

        new CdmaSmsDispatcherTestHandler(TAG).start();
        waitUntilReady();
@@ -92,4 +79,19 @@ public class CdmaSmsDispatcherTest extends TelephonyTest {
        mCdmaSmsDispatcher.sendSms(mSmsTracker);
        verify(mSimulatedCommandsVerifier).sendCdmaSms(any(byte[].class), any(Message.class));
    }

    @Test @SmallTest
    public void testSendText() {
        mCdmaSmsDispatcher.sendText("111"/* desAddr*/, "222" /*scAddr*/, TAG,
                null, null, null, null, false);
        verify(mSimulatedCommandsVerifier).sendCdmaSms(any(byte[].class), any(Message.class));
    }

    @Test @SmallTest
    public void testSendTextWithOutDesAddr() {
        mCdmaSmsDispatcher.sendText(null, "222" /*scAddr*/, TAG,
                null, null, null, null, false);
        verify(mSimulatedCommandsVerifier, times(0)).sendImsGsmSms(anyString(), anyString(),
                anyInt(), anyInt(), any(Message.class));
    }
}
+2 −30
Original line number Diff line number Diff line
@@ -19,15 +19,10 @@ package com.android.internal.telephony.gsm;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.location.Country;
import android.location.CountryDetector;
import android.os.HandlerThread;
@@ -36,14 +31,11 @@ import android.os.Message;
import android.os.ServiceManager;
import android.os.SystemProperties;
import android.provider.Telephony;
import android.telephony.TelephonyManager;
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.SmallTest;

import com.android.internal.telephony.ISub;
import com.android.internal.telephony.ImsSMSDispatcher;
import com.android.internal.telephony.SmsStorageMonitor;
import com.android.internal.telephony.SmsUsageMonitor;
import com.android.internal.telephony.TelephonyTest;
import com.android.internal.telephony.TelephonyTestUtils;

@@ -55,10 +47,6 @@ import org.mockito.Mock;
import java.util.HashMap;

public class GsmSmsDispatcherTest extends TelephonyTest {
    @Mock
    private SmsStorageMonitor mSmsStorageMonitor;
    @Mock
    private SmsUsageMonitor mSmsUsageMonitor;
    @Mock
    private android.telephony.SmsMessage mSmsMessage;
    @Mock
@@ -72,8 +60,6 @@ public class GsmSmsDispatcherTest extends TelephonyTest {
    @Mock
    private ISub.Stub mISubStub;

    private TelephonyManager mTelephonyManager;

    private GsmSMSDispatcher mGsmSmsDispatcher;

    private HashMap<String, IBinder> mServiceManagerMockedServices = new HashMap<>();
@@ -102,12 +88,6 @@ public class GsmSmsDispatcherTest extends TelephonyTest {
        replaceInstance(ServiceManager.class, "sCache", null, mServiceManagerMockedServices);
        mServiceManagerMockedServices.put("isub", mISubStub);

        mTelephonyManager = TelephonyManager.from(mContextFixture.getTestDouble());
        doReturn(true).when(mTelephonyManager).getSmsReceiveCapableForPhone(anyInt(), anyBoolean());
        doReturn(true).when(mTelephonyManager).getSmsSendCapableForPhone(
                anyInt(), anyBoolean());
        doReturn(true).when(mSmsStorageMonitor).isStorageAvailable();

        new GsmSmsDispatcherTestHandler(getClass().getSimpleName()).start();
        waitUntilReady();
    }
@@ -128,7 +108,7 @@ public class GsmSmsDispatcherTest extends TelephonyTest {

    @Test @MediumTest
    public void testSendSmsToRegularNumber_doesNotNotifyblockedNumberProvider() throws Exception {
        setupMockPermissionChecks();
        setupMockPackagePermissionChecks();

        mContextFixture.setSystemService(Context.COUNTRY_DETECTOR, mCountryDetector);
        when(mCountryDetector.detectCountry())
@@ -145,7 +125,7 @@ public class GsmSmsDispatcherTest extends TelephonyTest {

    @Test @MediumTest
    public void testSendSmsToEmergencyNumber_notifiesBlockedNumberProvider() throws Exception {
        setupMockPermissionChecks();
        setupMockPackagePermissionChecks();

        mContextFixture.setSystemService(Context.COUNTRY_DETECTOR, mCountryDetector);
        when(mCountryDetector.detectCountry())
@@ -161,14 +141,6 @@ public class GsmSmsDispatcherTest extends TelephonyTest {
        assertEquals(1, mFakeBlockedNumberContentProvider.mNumEmergencyContactNotifications);
    }

    private void setupMockPermissionChecks() throws Exception {
        PackageManager mockPackageManager = mContextFixture.getTestDouble().getPackageManager();
        when(mockPackageManager.getPackagesForUid(anyInt())).thenReturn(new String[]{"foobar"});
        when(mockPackageManager.getPackageInfo(anyString(), anyInt()))
                .thenReturn(new PackageInfo());
        when(mSmsUsageMonitor.check(anyString(), anyInt())).thenReturn(true);
    }

    private String getEmergencyNumberFromSystemPropertiesOrDefault() {
        String systemEmergencyNumbers = SystemProperties.get("ril.ecclist");
        if (systemEmergencyNumbers == null) {