Migrate framework-connectivity internal resources
Use ServiceConnectivityResources instead. Start by creating resources in the ServiceConnectivityResources package to match the internal configuration, and common overlays. Bug: 182125649 Test: device boots, has connectivity Change-Id: I77a3efca2cd644f9828db1ed5d3cae8070fb8363 Merged-In: I77a3efca2cd644f9828db1ed5d3cae8070fb8363
This commit is contained in:
committed by
Lorenzo Colitti
parent
0f91b7a19a
commit
8e12782094
@@ -18,6 +18,7 @@ package android.net.util
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Resources
|
||||
import android.net.ConnectivityResources
|
||||
import android.net.NetworkCapabilities
|
||||
import android.net.NetworkCapabilities.MAX_TRANSPORT
|
||||
import android.net.NetworkCapabilities.TRANSPORT_CELLULAR
|
||||
@@ -26,13 +27,15 @@ import android.net.NetworkCapabilities.TRANSPORT_VPN
|
||||
import android.net.NetworkCapabilities.TRANSPORT_WIFI
|
||||
import androidx.test.filters.SmallTest
|
||||
import com.android.internal.R
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertArrayEquals
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.fail
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.junit.runners.JUnit4
|
||||
import org.mockito.ArgumentMatchers
|
||||
import org.mockito.ArgumentMatchers.eq
|
||||
import org.mockito.Mockito.any
|
||||
import org.mockito.Mockito.doReturn
|
||||
import org.mockito.Mockito.mock
|
||||
|
||||
@@ -47,21 +50,33 @@ import org.mockito.Mockito.mock
|
||||
class KeepaliveUtilsTest {
|
||||
|
||||
// Prepare mocked context with given resource strings.
|
||||
private fun getMockedContextWithStringArrayRes(id: Int, res: Array<out String?>?): Context {
|
||||
private fun getMockedContextWithStringArrayRes(
|
||||
id: Int,
|
||||
name: String,
|
||||
res: Array<out String?>?
|
||||
): Context {
|
||||
val mockRes = mock(Resources::class.java)
|
||||
doReturn(res).`when`(mockRes).getStringArray(ArgumentMatchers.eq(id))
|
||||
doReturn(res).`when`(mockRes).getStringArray(eq(id))
|
||||
doReturn(id).`when`(mockRes).getIdentifier(eq(name), any(), any())
|
||||
|
||||
return mock(Context::class.java).apply {
|
||||
doReturn(mockRes).`when`(this).getResources()
|
||||
ConnectivityResources.setResourcesContextForTest(this)
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
ConnectivityResources.setResourcesContextForTest(null)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetSupportedKeepalives() {
|
||||
fun assertRunWithException(res: Array<out String?>?) {
|
||||
try {
|
||||
val mockContext = getMockedContextWithStringArrayRes(
|
||||
R.array.config_networkSupportedKeepaliveCount, res)
|
||||
R.array.config_networkSupportedKeepaliveCount,
|
||||
"config_networkSupportedKeepaliveCount", res)
|
||||
KeepaliveUtils.getSupportedKeepalives(mockContext)
|
||||
fail("Expected KeepaliveDeviceConfigurationException")
|
||||
} catch (expected: KeepaliveUtils.KeepaliveDeviceConfigurationException) {
|
||||
@@ -89,7 +104,8 @@ class KeepaliveUtilsTest {
|
||||
val expectedValidRes = intArrayOf(3, 0, 0, 0, 4, 0, 0, 0)
|
||||
|
||||
val mockContext = getMockedContextWithStringArrayRes(
|
||||
R.array.config_networkSupportedKeepaliveCount, validRes)
|
||||
R.array.config_networkSupportedKeepaliveCount,
|
||||
"config_networkSupportedKeepaliveCount", validRes)
|
||||
val actual = KeepaliveUtils.getSupportedKeepalives(mockContext)
|
||||
assertArrayEquals(expectedValidRes, actual)
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.content.res.Resources
|
||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_HANDOVER
|
||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_PERFORMANCE
|
||||
import android.net.ConnectivityManager.MULTIPATH_PREFERENCE_RELIABILITY
|
||||
import android.net.ConnectivityResources
|
||||
import android.net.ConnectivitySettingsManager.NETWORK_AVOID_BAD_WIFI
|
||||
import android.net.ConnectivitySettingsManager.NETWORK_METERED_MULTIPATH_PREFERENCE
|
||||
import android.net.util.MultinetworkPolicyTracker.ActiveDataSubscriptionIdListener
|
||||
@@ -31,8 +32,9 @@ import android.telephony.TelephonyManager
|
||||
import android.test.mock.MockContentResolver
|
||||
import androidx.test.filters.SmallTest
|
||||
import androidx.test.runner.AndroidJUnit4
|
||||
import com.android.internal.R
|
||||
import com.android.connectivity.resources.R
|
||||
import com.android.internal.util.test.FakeSettingsProvider
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
@@ -41,6 +43,7 @@ import org.junit.runner.RunWith
|
||||
import org.mockito.ArgumentCaptor
|
||||
import org.mockito.ArgumentMatchers.anyInt
|
||||
import org.mockito.ArgumentMatchers.argThat
|
||||
import org.mockito.ArgumentMatchers.eq
|
||||
import org.mockito.Mockito.any
|
||||
import org.mockito.Mockito.doReturn
|
||||
import org.mockito.Mockito.mock
|
||||
@@ -57,6 +60,8 @@ import org.mockito.Mockito.verify
|
||||
@SmallTest
|
||||
class MultinetworkPolicyTrackerTest {
|
||||
private val resources = mock(Resources::class.java).also {
|
||||
doReturn(R.integer.config_networkAvoidBadWifi).`when`(it).getIdentifier(
|
||||
eq("config_networkAvoidBadWifi"), eq("integer"), any())
|
||||
doReturn(0).`when`(it).getInteger(R.integer.config_networkAvoidBadWifi)
|
||||
}
|
||||
private val telephonyManager = mock(TelephonyManager::class.java)
|
||||
@@ -75,6 +80,7 @@ class MultinetworkPolicyTrackerTest {
|
||||
doReturn(resources).`when`(it).resources
|
||||
doReturn(it).`when`(it).createConfigurationContext(any())
|
||||
Settings.Global.putString(resolver, NETWORK_AVOID_BAD_WIFI, "1")
|
||||
ConnectivityResources.setResourcesContextForTest(it)
|
||||
}
|
||||
private val tracker = MultinetworkPolicyTracker(context, null /* handler */)
|
||||
|
||||
@@ -85,6 +91,11 @@ class MultinetworkPolicyTrackerTest {
|
||||
assertEquals(preference, tracker.meteredMultipathPreference)
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
ConnectivityResources.setResourcesContextForTest(null)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testUpdateMeteredMultipathPreference() {
|
||||
assertMultipathPreference(MULTIPATH_PREFERENCE_HANDOVER)
|
||||
|
||||
@@ -179,6 +179,7 @@ import android.net.ConnectivityManager.NetworkCallback;
|
||||
import android.net.ConnectivityManager.PacketKeepalive;
|
||||
import android.net.ConnectivityManager.PacketKeepaliveCallback;
|
||||
import android.net.ConnectivityManager.TooManyRequestsException;
|
||||
import android.net.ConnectivityResources;
|
||||
import android.net.ConnectivitySettingsManager;
|
||||
import android.net.ConnectivityThread;
|
||||
import android.net.DataStallReportParcelable;
|
||||
@@ -282,7 +283,6 @@ import com.android.internal.util.test.FakeSettingsProvider;
|
||||
import com.android.net.module.util.ArrayTrackRecord;
|
||||
import com.android.server.ConnectivityService.ConnectivityDiagnosticsCallbackInfo;
|
||||
import com.android.server.connectivity.ConnectivityConstants;
|
||||
import com.android.server.connectivity.ConnectivityResources;
|
||||
import com.android.server.connectivity.MockableSystemProperties;
|
||||
import com.android.server.connectivity.Nat464Xlat;
|
||||
import com.android.server.connectivity.NetworkAgentInfo;
|
||||
@@ -1570,11 +1570,19 @@ public class ConnectivityServiceTest {
|
||||
com.android.connectivity.resources.R.string.config_networkCaptivePortalServerUrl);
|
||||
doReturn(new String[]{ WIFI_WOL_IFNAME }).when(mResources).getStringArray(
|
||||
com.android.connectivity.resources.R.array.config_wakeonlan_supported_interfaces);
|
||||
final com.android.server.connectivity.ConnectivityResources connRes = mock(
|
||||
ConnectivityResources.class);
|
||||
doReturn(new String[] { "0,1", "1,3" }).when(mResources).getStringArray(
|
||||
com.android.connectivity.resources.R.array.config_networkSupportedKeepaliveCount);
|
||||
doReturn(com.android.connectivity.resources.R.array.config_networkSupportedKeepaliveCount)
|
||||
.when(mResources).getIdentifier(eq("config_networkSupportedKeepaliveCount"),
|
||||
eq("array"), any());
|
||||
final ConnectivityResources connRes = mock(ConnectivityResources.class);
|
||||
doReturn(mResources).when(connRes).get();
|
||||
doReturn(connRes).when(deps).getResources(any());
|
||||
|
||||
final Context mockResContext = mock(Context.class);
|
||||
doReturn(mResources).when(mockResContext).getResources();
|
||||
ConnectivityResources.setResourcesContextForTest(mockResContext);
|
||||
|
||||
return deps;
|
||||
}
|
||||
|
||||
@@ -1630,6 +1638,7 @@ public class ConnectivityServiceTest {
|
||||
waitForIdle();
|
||||
|
||||
FakeSettingsProvider.clearSettingsProvider();
|
||||
ConnectivityResources.setResourcesContextForTest(null);
|
||||
|
||||
mCsHandlerThread.quitSafely();
|
||||
mAlarmManagerThread.quitSafely();
|
||||
|
||||
Reference in New Issue
Block a user