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

Commit 09bbb51d authored by lucaslin's avatar lucaslin Committed by Lucas Lin
Browse files

Replace the hidden API to public API or other alternatives

Some of connectivity related files are going to be a part of
mainline module, so the external callers cannot call its hidden
API.
Replace the hidden API to public API or other alternatives from
the callers side.

Bug: 182859030
Test: 1. Remove "framework-connectivity.impl"
      2. atest SettingsUnitTests:InternetUpdaterTest
      3. atest SettingsUnitTests:ProviderModelSliceHelperTest
      4. atest SettingsUnitTests:MobileNetworkUtilsTest
      5. make RunSettingsRoboTests \
         ROBOTEST_FILTER=AppDataUsagePreferenceControllerTest
      6. make RunSettingsRoboTests \
         ROBOTEST_FILTER=TetherPreferenceControllerTest
      7. make RunSettingsRoboTests \
         ROBOTEST_FILTER=WifiDetailPreferenceController2Test
      8. make RunSettingsRoboTests \
         ROBOTEST_FILTER=ContextualWifiSliceTest
Change-Id: Idd1ca57d8f2790070e9c401936c5af2a05bcfe9d
parent 44000386
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
@@ -31,9 +30,11 @@ import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.net.ConnectivityManager;
import android.os.Bundle;

import androidx.loader.app.LoaderManager;
import androidx.preference.Preference;

import com.android.settings.core.BasePreferenceController;
import com.android.settings.datausage.AppDataUsage;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
@@ -42,14 +43,10 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;

import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;

import androidx.loader.app.LoaderManager;
import androidx.preference.Preference;

@RunWith(RobolectricTestRunner.class)
public class AppDataUsagePreferenceControllerTest {

@@ -98,10 +95,6 @@ public class AppDataUsagePreferenceControllerTest {

    @Test
    public void onResume_isAvailable_shouldRestartDataLoader() {
        final ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
        when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
                .thenReturn(connectivityManager);
        when(connectivityManager.isNetworkSupported(anyInt())).thenReturn(true);
        doReturn(mLoaderManager).when(mFragment).getLoaderManager();
        doReturn(BasePreferenceController.AVAILABLE).when(mController).getAvailabilityStatus();
        final AppEntry appEntry = mock(AppEntry.class);
+1 −2
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.provider.Settings;

@@ -198,7 +197,7 @@ public class TetherPreferenceControllerTest {
        ReflectionHelpers.setField(mController, "mContext", context);
        mController.onResume();

        context.sendBroadcast(new Intent(ConnectivityManager.ACTION_TETHER_STATE_CHANGED));
        context.sendBroadcast(new Intent(TetheringManager.ACTION_TETHER_STATE_CHANGED));

        verify(mController).updateSummary();
    }
+24 −14
Original line number Diff line number Diff line
@@ -246,8 +246,9 @@ public class WifiDetailPreferenceController2Test {

                final Inet4Address any4 = (Inet4Address) InetAddress.getByName("0.0.0.0");
                IpPrefix subnet = new IpPrefix(IPV4_ADDR.getAddress(), IPV4_PREFIXLEN);
                IPV4_SUBNET = new RouteInfo(subnet, any4);
                IPV4_DEFAULT = new RouteInfo(new IpPrefix(any4, 0), IPV4_GATEWAY);
                IPV4_SUBNET = new RouteInfo(subnet, any4, null /* iface */, RouteInfo.RTN_UNICAST);
                IPV4_DEFAULT = new RouteInfo(new IpPrefix(any4, 0), IPV4_GATEWAY, null /* iface */,
                        RouteInfo.RTN_UNICAST);

                IPV6_LINKLOCAL = ipv6LinkAddress("fe80::211:25ff:fef8:7cb2%1");
                IPV6_GLOBAL1 = ipv6LinkAddress("2001:db8:1::211:25ff:fef8:7cb2");
@@ -1047,9 +1048,10 @@ public class WifiDetailPreferenceController2Test {
    }

    private NetworkCapabilities makeNetworkCapabilities() {
        NetworkCapabilities nc = new NetworkCapabilities();
        nc.clearAll();
        nc.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
        final NetworkCapabilities nc = new NetworkCapabilities.Builder()
                .clearAll()
                .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
                .build();
        return nc;
    }

@@ -1141,7 +1143,8 @@ public class WifiDetailPreferenceController2Test {
        inOrder.verify(mMockHeaderController, never()).setSummary(any(CharSequence.class));

        // ... but that if the network validates, then we do refresh.
        nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
        nc = new NetworkCapabilities.Builder(nc)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED).build();
        updateNetworkCapabilities(nc);
        inOrder.verify(mMockHeaderController).setSummary(summary);

@@ -1153,27 +1156,31 @@ public class WifiDetailPreferenceController2Test {
        inOrder.verify(mMockHeaderController, never()).setSummary(any(CharSequence.class));

        // ... but if the network is no longer validated, then we display "connected, no Internet".
        nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
        nc = new NetworkCapabilities.Builder(nc)
                .removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED).build();
        updateNetworkCapabilities(nc);
        inOrder.verify(mMockHeaderController).setSummary(summary);

        // UI will be refreshed when private DNS is broken.
        summary = "Private DNS server cannot be accessed";
        when(mMockWifiEntry.getSummary()).thenReturn(summary);
        nc.setPrivateDnsBroken(true);
        updateNetworkCapabilities(nc);
        NetworkCapabilities mockNc = mock(NetworkCapabilities.class);
        when(mockNc.isPrivateDnsBroken()).thenReturn(true);
        mCallbackCaptor.getValue().onCapabilitiesChanged(mMockNetwork, mockNc);
        inOrder.verify(mMockHeaderController).setSummary(summary);

        // UI will be refreshed when device connects to a partial connectivity network.
        summary = "Limited connection";
        when(mMockWifiEntry.getSummary()).thenReturn(summary);
        nc.addCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY);
        nc = new NetworkCapabilities.Builder(nc)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY).build();
        updateNetworkCapabilities(nc);
        inOrder.verify(mMockHeaderController).setSummary(summary);

        // Although UI will be refreshed when network become validated. The Settings should
        // continue to display "Limited connection" if network still provides partial connectivity.
        nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
        nc = new NetworkCapabilities.Builder(nc)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED).build();
        updateNetworkCapabilities(nc);
        inOrder.verify(mMockHeaderController).setSummary(summary);
    }
@@ -1389,14 +1396,16 @@ public class WifiDetailPreferenceController2Test {
        inOrder.verify(mMockButtonsPref).setButton2Visible(false);

        when(mMockWifiEntry.canSignIn()).thenReturn(true);
        nc.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
        nc = new NetworkCapabilities.Builder(nc)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL).build();
        updateNetworkCapabilities(nc);

        inOrder.verify(mMockButtonsPref).setButton2Text(R.string.wifi_sign_in_button_text);
        inOrder.verify(mMockButtonsPref).setButton2Visible(true);

        when(mMockWifiEntry.canSignIn()).thenReturn(false);
        nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
        nc = new NetworkCapabilities.Builder(nc)
                .removeCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL).build();
        updateNetworkCapabilities(nc);

        inOrder.verify(mMockButtonsPref).setButton2Visible(false);
@@ -1448,7 +1457,8 @@ public class WifiDetailPreferenceController2Test {
    public void testSignInButton_shouldHideSignInButtonForDisconnectedNetwork() {
        setUpForDisconnectedNetwork();
        NetworkCapabilities nc = makeNetworkCapabilities();
        nc.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
        nc = new NetworkCapabilities.Builder()
                .addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL).build();
        when(mMockConnectivityManager.getNetworkCapabilities(mMockNetwork))
                .thenReturn(new NetworkCapabilities(nc));

+5 −4
Original line number Diff line number Diff line
@@ -144,10 +144,11 @@ public class ContextualWifiSliceTest {
    }

    private NetworkCapabilities makeValidatedNetworkCapabilities() {
        final NetworkCapabilities nc = new NetworkCapabilities();
        nc.clearAll();
        nc.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
        nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
        final NetworkCapabilities nc = new NetworkCapabilities.Builder()
                .clearAll()
                .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
                .build();
        return nc;
    }

+9 −7
Original line number Diff line number Diff line
@@ -109,9 +109,10 @@ public class InternetUpdaterTest {

    @Test
    public void updateInternetAvailable_wifiConnectedAndNoValidated_internetUnavailable() {
        final NetworkCapabilities networkCapabilities = new NetworkCapabilities();
        networkCapabilities.addTransportType(TRANSPORT_WIFI);
        networkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
        final NetworkCapabilities networkCapabilities = new NetworkCapabilities.Builder()
                .addTransportType(TRANSPORT_WIFI)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                .build();

        mInternetUpdater.updateInternetAvailable(networkCapabilities);

@@ -120,10 +121,11 @@ public class InternetUpdaterTest {

    @Test
    public void updateInternetAvailable_wifiConnectedAndValidated_internetAvailable() {
        final NetworkCapabilities networkCapabilities = new NetworkCapabilities();
        networkCapabilities.addTransportType(TRANSPORT_WIFI);
        networkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
        networkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
        final NetworkCapabilities networkCapabilities = new NetworkCapabilities.Builder()
                .addTransportType(TRANSPORT_WIFI)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
                .build();

        mInternetUpdater.updateInternetAvailable(networkCapabilities);

Loading