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

Commit 153077e0 authored by Amit Mahajan's avatar Amit Mahajan
Browse files

Update voicemail number related unit test.

Bug: 25691379
Change-Id: Ia80a455c99a21f50348d9ca3ef2b3e69179c93e7
parent 78867803
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ import static com.android.internal.telephony.uicc.IccConstants.EF_PCSCF;
/**
 * {@hide}
 */
public final class IsimUiccRecords extends IccRecords implements IsimRecords {
public class IsimUiccRecords extends IccRecords implements IsimRecords {
    protected static final String LOG_TAG = "IsimUiccRecords";

    private static final boolean DBG = true;
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ import com.android.internal.util.BitwiseInputStream;
/**
 * {@hide}
 */
public final class RuimRecords extends IccRecords {
public class RuimRecords extends IccRecords {
    static final String LOG_TAG = "RuimRecords";

    private boolean  mOtaCommited=false;
+6 −11
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.os.IInterface;
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.provider.Telephony;
import android.telephony.CarrierConfigManager;
@@ -344,7 +345,6 @@ public class ContextFixture implements TestFixture<Context> {
    // when(...) logic to be used to add specific little responses where needed.

    private final Resources mResources = mock(Resources.class);
    private final Configuration mConfiguration = new Configuration();
    private final PackageManager mPackageManager = mock(PackageManager.class);
    private final TelephonyManager mTelephonyManager = mock(TelephonyManager.class);
    private final AppOpsManager mAppOpsManager = mock(AppOpsManager.class);
@@ -354,8 +354,12 @@ public class ContextFixture implements TestFixture<Context> {
    private final SubscriptionManager mSubscriptionManager = mock(SubscriptionManager.class);
    private final AlarmManager mAlarmManager = mock(AlarmManager.class);
    private final WifiManager mWifiManager = mock(WifiManager.class);

    private final ContentProvider mContentProvider = spy(new FakeContentProvider());
    private final SharedPreferences mSharedPreferences = mock(SharedPreferences.class);

    private final Configuration mConfiguration = new Configuration();
    private final SharedPreferences mSharedPreferences = PreferenceManager.
            getDefaultSharedPreferences(TestApplication.getAppContext());
    private final MockContentResolver mContentResolver = new MockContentResolver();
    private final PersistableBundle mBundle = new PersistableBundle();

@@ -380,15 +384,6 @@ public class ContextFixture implements TestFixture<Context> {
            }
        }).when(mPackageManager).queryIntentServicesAsUser((Intent) any(), anyInt(), anyInt());

        // return default value unless overridden by test
        doAnswer(new Answer() {
            @Override
            public Object answer(InvocationOnMock invocation) throws Throwable {
                Object[] args = invocation.getArguments();
                return args[1];
            }
        }).when(mSharedPreferences).getBoolean(anyString(), anyBoolean());

        doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());

        mConfiguration.locale = Locale.US;
+85 −30
Original line number Diff line number Diff line
@@ -29,12 +29,16 @@ import android.telephony.cdma.CdmaCellLocation;
import android.telephony.gsm.GsmCellLocation;
import android.test.suitebuilder.annotation.SmallTest;

import com.android.internal.telephony.uicc.IccException;

import static com.android.internal.telephony.TelephonyTestUtils.waitForMs;
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;

public class GsmCdmaPhoneTest extends TelephonyTest {
    //mPhoneUnderTest
@@ -59,8 +63,8 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        mPhoneUT.sendMessage(mPhoneUT.obtainMessage(GsmCdmaPhone.EVENT_VOICE_RADIO_TECH_CHANGED,
                new AsyncResult(null, new int[]{ServiceState.RIL_RADIO_TECHNOLOGY_GSM}, null)));
        //wait for voice RAT to be updated
        TelephonyTestUtils.waitForMs(50);
        assertTrue(PhoneConstants.PHONE_TYPE_GSM == mPhoneUT.getPhoneType());
        waitForMs(50);
        assertEquals(PhoneConstants.PHONE_TYPE_GSM, mPhoneUT.getPhoneType());
    }

    private void switchToCdma() {
@@ -68,8 +72,8 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        mPhoneUT.sendMessage(mPhoneUT.obtainMessage(GsmCdmaPhone.EVENT_VOICE_RADIO_TECH_CHANGED,
                new AsyncResult(null, new int[]{ServiceState.RIL_RADIO_TECHNOLOGY_IS95A}, null)));
        //wait for voice RAT to be updated
        TelephonyTestUtils.waitForMs(50);
        assertTrue(PhoneConstants.PHONE_TYPE_CDMA == mPhoneUT.getPhoneType());
        waitForMs(50);
        assertEquals(PhoneConstants.PHONE_TYPE_CDMA, mPhoneUT.getPhoneType());
    }

    @Before
@@ -80,7 +84,13 @@ public class GsmCdmaPhoneTest extends TelephonyTest {

        new GsmCdmaPhoneTestHandler(TAG).start();
        waitUntilReady();
        TelephonyTestUtils.waitForMs(50);
        ArgumentCaptor<Integer> integerArgumentCaptor = ArgumentCaptor.forClass(Integer.class);
        verify(mUiccController).registerForIccChanged(eq(mPhoneUT), integerArgumentCaptor.capture(),
                anyObject());
        Message msg = Message.obtain();
        msg.what = integerArgumentCaptor.getValue();
        mPhoneUT.sendMessage(msg);
        waitForMs(50);
    }

    @After
@@ -90,14 +100,16 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        super.tearDown();
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testPhoneTypeSwitch() {
        assertTrue(mPhoneUT.isPhoneTypeGsm());
        switchToCdma();
        assertTrue(mPhoneUT.isPhoneTypeCdmaLte());
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testHandleActionCarrierConfigChanged() {
        // set voice radio tech in RIL to 1xRTT. ACTION_CARRIER_CONFIG_CHANGED should trigger a
        // query and change phone type
@@ -105,18 +117,20 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        assertTrue(mPhoneUT.isPhoneTypeGsm());
        Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
        mContext.sendBroadcast(intent);
        TelephonyTestUtils.waitForMs(50);
        waitForMs(50);
        assertTrue(mPhoneUT.isPhoneTypeCdmaLte());
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testGetServiceState() {
        ServiceState serviceState = new ServiceState();
        mSST.mSS = serviceState;
        assertEquals(serviceState, mPhoneUT.getServiceState());
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testGetCellLocation() {
        // GSM
        CellLocation cellLocation = new GsmCellLocation();
@@ -154,7 +168,8 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
                Settings.Secure.LOCATION_MODE, origValue);
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testGetPhoneType() {
        assertEquals(PhoneConstants.PHONE_TYPE_GSM, mPhoneUT.getPhoneType());

@@ -164,7 +179,8 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        assertEquals(PhoneConstants.PHONE_TYPE_CDMA, mPhoneUT.getPhoneType());
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testGetDataConnectionState() {
        // There are several cases possible. Testing few of them for now.
        // 1. GSM, getCurrentDataConnectionState != STATE_IN_SERVICE, apn != APN_TYPE_EMERGENCY
@@ -195,7 +211,8 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
                PhoneConstants.APN_TYPE_EMERGENCY));
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testHandleInCallMmiCommands() {
        try {
            // Switch to CDMA
@@ -227,7 +244,8 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        }
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testDial() {
        try {
            mSST.mSS = mServiceState;
@@ -245,12 +263,14 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        }
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testHandlePinMmi() {
        assertFalse(mPhoneUT.handlePinMmi("1234567890"));
    }

    @Test @SmallTest
    @Test
    @SmallTest
    public void testSendBurstDtmf() {
        //Should do nothing for GSM
        mPhoneUT.sendBurstDtmf("1234567890", 0, 0, null);
@@ -280,31 +300,66 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        verify(mSimulatedCommandsVerifier).sendBurstDtmf("1234567890", 0, 0, null);
    }

    @Test @SmallTest
    public void testVoiceMailNumber() {
    @Test
    @SmallTest
    public void testVoiceMailNumberGsm() {
        String voiceMailNumber = "1234567890";
        // first test for GSM
        assertEquals(PhoneConstants.PHONE_TYPE_GSM, mPhoneUT.getPhoneType());

        // no resource or sharedPreference set -- should be null
        assertEquals(null, mPhoneUT.getVoiceMailNumber());

        // voicemail number from config
        mContextFixture.putStringArrayResource(
                com.android.internal.R.array.config_default_vm_number,
                new String[]{voiceMailNumber});
        assertEquals(voiceMailNumber, mPhoneUT.getVoiceMailNumber());

        // voicemail number that is explicitly set
        voiceMailNumber = "1234567891";
        mPhoneUT.setVoiceMailNumber("alphaTag", voiceMailNumber, null);
        verify(mIccRecords).setVoiceMailNumber(eq("alphaTag"), voiceMailNumber,
        verify(mSimRecords).setVoiceMailNumber(eq("alphaTag"), eq(voiceMailNumber),
                any(Message.class));

        doReturn(voiceMailNumber).when(mIccRecords).getVoiceMailNumber();
        assertTrue(voiceMailNumber.equals(mPhoneUT.getVoiceMailNumber()));
        doReturn(voiceMailNumber).when(mSimRecords).getVoiceMailNumber();
        assertEquals(voiceMailNumber, mPhoneUT.getVoiceMailNumber());
    }

        // test for CDMA
    @Test
    @SmallTest
    public void testVoiceMailNumberCdma() {
        switchToCdma();
        voiceMailNumber = "9876543210";
        String voiceMailNumber = "1234567890";

        // no resource or sharedPreference set -- should be *86
        assertEquals("*86", mPhoneUT.getVoiceMailNumber());

        // config_telephony_use_own_number_for_voicemail
        mContextFixture.putBooleanResource(
                com.android.internal.R.bool.config_telephony_use_own_number_for_voicemail, true);
        doReturn(voiceMailNumber).when(mSimRecords).getMsisdnNumber();
        assertEquals(voiceMailNumber, mPhoneUT.getVoiceMailNumber());

        // voicemail number from config
        voiceMailNumber = "1234567891";
        mContextFixture.putStringArrayResource(
                com.android.internal.R.array.config_default_vm_number,
                new String[]{voiceMailNumber});
        assertEquals(voiceMailNumber, mPhoneUT.getVoiceMailNumber());

        // voicemail number from sharedPreference
        mPhoneUT.setVoiceMailNumber("alphaTag", voiceMailNumber, null);
        verify(mIccRecords).setVoiceMailNumber(eq("alphaTag"), voiceMailNumber,
                any(Message.class));
        ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
        verify(mRuimRecords).setVoiceMailNumber(eq("alphaTag"), eq(voiceMailNumber),
                messageArgumentCaptor.capture());

        // todo: trigger code that writes to shared preference
        SharedPreferences sharedPreferences = mContext.getSharedPreferences(null, 0);
        doReturn(voiceMailNumber).when(sharedPreferences).getString(anyString(), anyString());
        Message msg = messageArgumentCaptor.getValue();
        AsyncResult.forMessage(msg).exception =
                new IccException("setVoiceMailNumber not implemented");
        msg.sendToTarget();
        waitForMs(50);

        assertTrue(voiceMailNumber.equals(mPhoneUT.getVoiceMailNumber()));
        assertEquals(voiceMailNumber, mPhoneUT.getVoiceMailNumber());
    }
}
 No newline at end of file
+2 −8
Original line number Diff line number Diff line
@@ -70,10 +70,6 @@ public class ServiceStateTrackerTest extends TelephonyTest {
    private static final String AMERICA_LA_TIME_ZONE = "America/Los_Angeles";
    private static final String KEY_TIME_ZONE = "time-zone";

    @Mock
    private UiccCardApplication m3GPPUiccApp;
    @Mock
    private SIMRecords mSimRecords;
    @Mock
    private DcTracker mDct;
    @Mock
@@ -107,9 +103,6 @@ public class ServiceStateTrackerTest extends TelephonyTest {

        doReturn(true).when(mPhone).isPhoneTypeGsm();
        doReturn(true).when(mDct).isDisconnected();
        doReturn(m3GPPUiccApp).when(mUiccController).getUiccCardApplication(
                anyInt(), eq(UiccController.APP_FAM_3GPP));
        doReturn(mSimRecords).when(m3GPPUiccApp).getIccRecords();
        mPhone.mDcTracker = mDct;
        mTelephonyManager = (TelephonyManager) mContextFixture.getTestDouble().
                getSystemService(Context.TELEPHONY_SERVICE);
@@ -166,7 +159,8 @@ public class ServiceStateTrackerTest extends TelephonyTest {
    @MediumTest
    public void testSpnUpdateShowPlmnOnly() {
        doReturn(0x02).when(mSimRecords).getDisplayRule(anyString());
        doReturn(IccCardApplicationStatus.AppState.APPSTATE_UNKNOWN).when(m3GPPUiccApp).getState();
        doReturn(IccCardApplicationStatus.AppState.APPSTATE_UNKNOWN).
                when(mUiccCardApplication3gpp).getState();

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

Loading