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

Commit 57ba5192 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Fix non isolated tests.

Add proper injection of services into NetworkControllerImpl and
WifiSignalController so they can be mocked in tests.

Test: atest com.android.systemui.statusbar.policy
Fixes: 152669740
Change-Id: I8f69ebd46ddc9caa8beb5f0203a29f4bbceff232
parent b69f2bc1
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -37,6 +37,8 @@ import android.content.res.Resources;
import android.hardware.SensorPrivacyManager;
import android.media.AudioManager;
import android.net.ConnectivityManager;
import android.net.NetworkScoreManager;
import android.net.wifi.WifiManager;
import android.os.BatteryStats;
import android.os.Handler;
import android.os.PowerManager;
@@ -193,6 +195,12 @@ public class SystemServicesModule {
        return LocalBluetoothManager.create(context, bgHandler, UserHandle.ALL);
    }

    @Provides
    @Singleton
    static NetworkScoreManager provideNetworkScoreManager(Context context) {
        return context.getSystemService(NetworkScoreManager.class);
    }

    @Singleton
    @Provides
    static NotificationManager provideNotificationManager(Context context) {
@@ -273,6 +281,12 @@ public class SystemServicesModule {
        return (WallpaperManager) context.getSystemService(Context.WALLPAPER_SERVICE);
    }

    @Provides
    @Singleton
    static WifiManager provideWifiManager(Context context) {
        return context.getSystemService(WifiManager.class);
    }

    @Singleton
    @Provides
    static WindowManager provideWindowManager(Context context) {
+10 −5
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkScoreManager;
import android.net.wifi.WifiManager;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -173,10 +174,13 @@ public class NetworkControllerImpl extends BroadcastReceiver
    @Inject
    public NetworkControllerImpl(Context context, @Background Looper bgLooper,
            DeviceProvisionedController deviceProvisionedController,
            BroadcastDispatcher broadcastDispatcher) {
        this(context, (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE),
                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE),
                (WifiManager) context.getSystemService(Context.WIFI_SERVICE),
            BroadcastDispatcher broadcastDispatcher, ConnectivityManager connectivityManager,
            TelephonyManager telephonyManager, WifiManager wifiManager,
            NetworkScoreManager networkScoreManager) {
        this(context, connectivityManager,
                telephonyManager,
                wifiManager,
                networkScoreManager,
                SubscriptionManager.from(context), Config.readConfig(context), bgLooper,
                new CallbackHandler(),
                new AccessPointControllerImpl(context),
@@ -190,6 +194,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
    @VisibleForTesting
    NetworkControllerImpl(Context context, ConnectivityManager connectivityManager,
            TelephonyManager telephonyManager, WifiManager wifiManager,
            NetworkScoreManager networkScoreManager,
            SubscriptionManager subManager, Config config, Looper bgLooper,
            CallbackHandler callbackHandler,
            AccessPointControllerImpl accessPointController,
@@ -229,7 +234,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
            }
        });
        mWifiSignalController = new WifiSignalController(mContext, mHasMobileDataFeature,
                mCallbackHandler, this, mWifiManager);
                mCallbackHandler, this, mWifiManager, mConnectivityManager, networkScoreManager);

        mEthernetSignalController = new EthernetSignalController(mContext, mCallbackHandler, this);

+2 −5
Original line number Diff line number Diff line
@@ -42,13 +42,10 @@ public class WifiSignalController extends

    public WifiSignalController(Context context, boolean hasMobileDataFeature,
            CallbackHandler callbackHandler, NetworkControllerImpl networkController,
            WifiManager wifiManager) {
            WifiManager wifiManager, ConnectivityManager connectivityManager,
            NetworkScoreManager networkScoreManager) {
        super("WifiSignalController", context, NetworkCapabilities.TRANSPORT_WIFI,
                callbackHandler, networkController);
        NetworkScoreManager networkScoreManager =
                context.getSystemService(NetworkScoreManager.class);
        ConnectivityManager connectivityManager =
                context.getSystemService(ConnectivityManager.class);
        mWifiTracker = new WifiStatusTracker(mContext, wifiManager, networkScoreManager,
                connectivityManager, this::handleStatusUpdated);
        mWifiTracker.setListening(true);
+10 −8
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkScoreManager;
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.provider.Settings;
@@ -101,6 +102,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
    protected NetworkRegistrationInfo mFakeRegInfo;
    protected ConnectivityManager mMockCm;
    protected WifiManager mMockWm;
    protected NetworkScoreManager mMockNsm;
    protected SubscriptionManager mMockSm;
    protected TelephonyManager mMockTm;
    protected BroadcastDispatcher mMockBd;
@@ -148,6 +150,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        mMockSm = mock(SubscriptionManager.class);
        mMockCm = mock(ConnectivityManager.class);
        mMockBd = mock(BroadcastDispatcher.class);
        mMockNsm = mock(NetworkScoreManager.class);
        mMockSubDefaults = mock(SubscriptionDefaults.class);
        mNetCapabilities = new NetworkCapabilities();
        when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true);
@@ -196,8 +199,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
            return null;
        }).when(mMockProvisionController).addCallback(any());

        mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm,
                mConfig, TestableLooper.get(this).getLooper(), mCallbackHandler,
        mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm,
                mMockNsm, mMockSm, mConfig, TestableLooper.get(this).getLooper(), mCallbackHandler,
                mock(AccessPointControllerImpl.class), mock(DataUsageController.class),
                mMockSubDefaults, mMockProvisionController, mMockBd);
        setupNetworkController();
@@ -245,8 +248,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase {

    protected NetworkControllerImpl setUpNoMobileData() {
        when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false);
      NetworkControllerImpl networkControllerNoMobile
              = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm,
        NetworkControllerImpl networkControllerNoMobile =
                new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockNsm, mMockSm,
                        mConfig, TestableLooper.get(this).getLooper(), mCallbackHandler,
                        mock(AccessPointControllerImpl.class),
                        mock(DataUsageController.class), mMockSubDefaults,
@@ -255,7 +258,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
        setupNetworkController();

        return networkControllerNoMobile;

    }

    // 2 Bars 3G GSM.
+2 −2
Original line number Diff line number Diff line
@@ -102,8 +102,8 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
    public void test4gDataIcon() {
        // Switch to showing 4g icon and re-initialize the NetworkController.
        mConfig.show4gForLte = true;
        mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm,
                mConfig, Looper.getMainLooper(), mCallbackHandler,
        mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm,
                mMockNsm, mMockSm, mConfig, Looper.getMainLooper(), mCallbackHandler,
                mock(AccessPointControllerImpl.class),
                mock(DataUsageController.class), mMockSubDefaults,
                mock(DeviceProvisionedController.class), mMockBd);
Loading