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

Commit e41c3cd5 authored by Jack Yu's avatar Jack Yu
Browse files

Fixed DeviceStateMonitor unit tests

Test: unit tests
bug: 32223897
Change-Id: Ia165bebd71816ab505a0f0357eba48b415d72524
parent ef4062e1
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -221,9 +221,6 @@ public class ContextFixture implements TestFixture<Context> {
                    return mUserManager;
                case Context.CARRIER_CONFIG_SERVICE:
                    return mCarrierConfigManager;
                case Context.POWER_SERVICE:
                    // PowerManager is a final class so cannot be mocked, return real service
                    return TestApplication.getAppContext().getSystemService(name);
                case Context.TELEPHONY_SUBSCRIPTION_SERVICE:
                    return mSubscriptionManager;
                case Context.WIFI_SERVICE:
@@ -236,6 +233,11 @@ public class ContextFixture implements TestFixture<Context> {
                    return mUsageStatManager;
                case Context.BATTERY_SERVICE:
                    return mBatteryManager;
                case Context.DISPLAY_SERVICE:
                case Context.POWER_SERVICE:
                    // PowerManager and DisplayManager are final classes so cannot be mocked,
                    // return real services.
                    return TestApplication.getAppContext().getSystemService(name);
                default:
                    return null;
            }
+8 −58
Original line number Diff line number Diff line
@@ -20,13 +20,13 @@ import static android.hardware.radio.V1_0.DeviceStateType.LOW_DATA_EXPECTED;

import static com.android.internal.telephony.TelephonyTestUtils.waitForMs;

import static java.util.Arrays.asList;

import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

import static java.util.Arrays.asList;

import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.BatteryManager;
@@ -69,63 +69,28 @@ public class DeviceStateMonitorTest extends TelephonyTest {

    @After
    public void tearDown() throws Exception {
        mDeviceStateMonitor = null;
        mDeviceStateMonitorTestHandler.quitSafely();
        super.tearDown();
    }

    @Test
    @SmallTest
    public void testScreenOff() throws Exception {
        Intent intent = new Intent(Intent.ACTION_SCREEN_ON);
        mContext.sendBroadcast(intent);
        intent = new Intent(Intent.ACTION_SCREEN_OFF);
        mContext.sendBroadcast(intent);
        waitForMs(100);
        verify(mSimulatedCommandsVerifier, times(1)).setUnsolResponseFilter(eq(0),
                any(Message.class));

        intent = new Intent(Intent.ACTION_SCREEN_ON);
        mContext.sendBroadcast(intent);
        waitForMs(100);
        verify(mSimulatedCommandsVerifier, times(1)).setUnsolResponseFilter(eq(7),
                any(Message.class));
    }

    @Test
    @SmallTest
    public void testTethering() throws Exception {
        // Screen on
        Intent intent = new Intent(Intent.ACTION_SCREEN_ON);
        mContext.sendBroadcast(intent);

        // Turn tethering on
        intent = new Intent(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
        Intent intent = new Intent(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
        intent.putExtra(ConnectivityManager.EXTRA_ACTIVE_TETHER, new ArrayList<>(asList("abc")));
        mContext.sendBroadcast(intent);

        // Screen off
        intent = new Intent(Intent.ACTION_SCREEN_OFF);
        mContext.sendBroadcast(intent);
        waitForMs(100);

        verify(mSimulatedCommandsVerifier, times(1)).setUnsolResponseFilter(eq(6),
                any(Message.class));

        // Screen on
        intent = new Intent(Intent.ACTION_SCREEN_ON);
        mContext.sendBroadcast(intent);
        waitForMs(100);

        verify(mSimulatedCommandsVerifier, times(1)).setUnsolResponseFilter(eq(7),
                any(Message.class));

        // Turn tethering off
        intent = new Intent(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
        intent.putExtra(ConnectivityManager.EXTRA_ACTIVE_TETHER, new ArrayList<>());
        mContext.sendBroadcast(intent);

        // Screen off
        intent = new Intent(Intent.ACTION_SCREEN_OFF);
        mContext.sendBroadcast(intent);
        waitForMs(100);

        verify(mSimulatedCommandsVerifier, times(1)).setUnsolResponseFilter(eq(0),
@@ -138,26 +103,11 @@ public class DeviceStateMonitorTest extends TelephonyTest {
    @Test
    @SmallTest
    public void testCharging() throws Exception {
        // Screen on
        Intent intent = new Intent(Intent.ACTION_SCREEN_ON);
        mContext.sendBroadcast(intent);
        // Screen off
        intent = new Intent(Intent.ACTION_SCREEN_OFF);
        mContext.sendBroadcast(intent);
        // Not charging
        intent = new Intent(BatteryManager.ACTION_DISCHARGING);
        mContext.sendBroadcast(intent);
        // Charging
        intent = new Intent(BatteryManager.ACTION_CHARGING);
        Intent intent = new Intent(BatteryManager.ACTION_CHARGING);
        mContext.sendBroadcast(intent);
        waitForMs(100);

        verify(mSimulatedCommandsVerifier, times(1)).setUnsolResponseFilter(eq(7),
                any(Message.class));

        verify(mSimulatedCommandsVerifier, times(1)).sendDeviceState(eq(LOW_DATA_EXPECTED),
                eq(false), any(Message.class));

        verify(mSimulatedCommandsVerifier, times(1)).sendDeviceState(eq(CHARGING_STATE),
                eq(true), any(Message.class));

@@ -166,10 +116,10 @@ public class DeviceStateMonitorTest extends TelephonyTest {
        mContext.sendBroadcast(intent);
        waitForMs(100);

        verify(mSimulatedCommandsVerifier, times(2)).setUnsolResponseFilter(eq(0),
        verify(mSimulatedCommandsVerifier, times(1)).setUnsolResponseFilter(eq(0),
                any(Message.class));

        verify(mSimulatedCommandsVerifier, times(2)).sendDeviceState(eq(LOW_DATA_EXPECTED),
        verify(mSimulatedCommandsVerifier, times(1)).sendDeviceState(eq(LOW_DATA_EXPECTED),
                eq(true), any(Message.class));

        verify(mSimulatedCommandsVerifier, times(1)).sendDeviceState(eq(CHARGING_STATE),