From 3acd429ba38322873ea82e04a02a92ea55cd0029 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Mon, 13 Apr 2020 09:33:03 +0000 Subject: [PATCH 1/3] Move CaptivePortalDataTest to common test to support cts Commit has to on top of aosp/1281921 to skip whole test in Q device since CaptivePortalData class is introduced in R. Result in Q will be: [1/1] android.net.CaptivePortalDataTest#skippedClassForDevSdkMismatch: IGNORED Bug: 152280218 Bug: 150640683 Test: atest CtsNetTestCasesLatestSdk:CaptivePortalDataTest on both Q and R device Merged-In: Iddd00e1c85abe767b1a41a1761d3266ba322dba6 Change-Id: Iddd00e1c85abe767b1a41a1761d3266ba322dba6 --- .../{ => common}/java/android/net/CaptivePortalDataTest.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) rename tests/net/{ => common}/java/android/net/CaptivePortalDataTest.kt (93%) diff --git a/tests/net/java/android/net/CaptivePortalDataTest.kt b/tests/net/common/java/android/net/CaptivePortalDataTest.kt similarity index 93% rename from tests/net/java/android/net/CaptivePortalDataTest.kt rename to tests/net/common/java/android/net/CaptivePortalDataTest.kt index 0071438268..51068c2c57 100644 --- a/tests/net/java/android/net/CaptivePortalDataTest.kt +++ b/tests/net/common/java/android/net/CaptivePortalDataTest.kt @@ -16,17 +16,20 @@ package android.net +import android.os.Build import androidx.test.filters.SmallTest -import androidx.test.runner.AndroidJUnit4 import com.android.testutils.assertParcelSane import com.android.testutils.assertParcelingIsLossless +import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo +import com.android.testutils.DevSdkIgnoreRunner import org.junit.Test import org.junit.runner.RunWith import kotlin.test.assertEquals import kotlin.test.assertNotEquals @SmallTest -@RunWith(AndroidJUnit4::class) +@RunWith(DevSdkIgnoreRunner::class) +@IgnoreUpTo(Build.VERSION_CODES.Q) class CaptivePortalDataTest { private val data = CaptivePortalData.Builder() .setRefreshTime(123L) From 424cced078624b53faafca3baf72f0c107b21405 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Mon, 13 Apr 2020 10:57:24 +0000 Subject: [PATCH 2/3] Add more tests for CaptivePortalData Add missing tests to cover all system APIs Bug: 152280218 Bug: 150640683 Test: atest CtsNetTestCasesLatestSdk:CaptivePortalDataTest on both Q and R device Change-Id: I6d3826922f16816d5b18ed3540266442a0ed3e49 Merged-In: I6d3826922f16816d5b18ed3540266442a0ed3e49 (cherry picked from commit d9f9bf34637f699608fa3b919b3c85f3d5514a83) --- .../java/android/net/CaptivePortalDataTest.kt | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/tests/net/common/java/android/net/CaptivePortalDataTest.kt b/tests/net/common/java/android/net/CaptivePortalDataTest.kt index 51068c2c57..bd1847b7c4 100644 --- a/tests/net/common/java/android/net/CaptivePortalDataTest.kt +++ b/tests/net/common/java/android/net/CaptivePortalDataTest.kt @@ -22,6 +22,8 @@ import com.android.testutils.assertParcelSane import com.android.testutils.assertParcelingIsLossless import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo import com.android.testutils.DevSdkIgnoreRunner +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue import org.junit.Test import org.junit.runner.RunWith import kotlin.test.assertEquals @@ -66,6 +68,46 @@ class CaptivePortalDataTest { assertNotEqualsAfterChange { it.setCaptive(false) } } + @Test + fun testUserPortalUrl() { + assertEquals(Uri.parse("https://portal.example.com/test"), data.userPortalUrl) + } + + @Test + fun testVenueInfoUrl() { + assertEquals(Uri.parse("https://venue.example.com/test"), data.venueInfoUrl) + } + + @Test + fun testIsSessionExtendable() { + assertTrue(data.isSessionExtendable) + } + + @Test + fun testByteLimit() { + assertEquals(456L, data.byteLimit) + // Test byteLimit unset. + assertEquals(-1L, CaptivePortalData.Builder(null).build().byteLimit) + } + + @Test + fun testRefreshTimeMillis() { + assertEquals(123L, data.refreshTimeMillis) + } + + @Test + fun testExpiryTimeMillis() { + assertEquals(789L, data.expiryTimeMillis) + // Test expiryTimeMillis unset. + assertEquals(-1L, CaptivePortalData.Builder(null).build().expiryTimeMillis) + } + + @Test + fun testIsCaptive() { + assertTrue(data.isCaptive) + assertFalse(makeBuilder().setCaptive(false).build().isCaptive) + } + private fun CaptivePortalData.mutate(mutator: (CaptivePortalData.Builder) -> Unit) = CaptivePortalData.Builder(this).apply { mutator(this) }.build() From 0e9a7738d0cd961c853f9ca1cc85334c9caa7458 Mon Sep 17 00:00:00 2001 From: Chalard Jean Date: Mon, 13 Apr 2020 19:10:13 +0000 Subject: [PATCH 3/3] Allow testing of signal strength - Let any process with NETWORK_SETTINGS register for signal strength wakeup. - Allow agents registering test networks to assign them a signal strength. Test: NetworkAgentTest Bug: 139268426 Change-Id: Iebfeb9316bcbd8472459c517abb16f1f9d879871 Merged-In: I2b4b89be3e69f4853fd6978d2c8f5c8eb4271f21 (cherry picked from commit 5cc7b18fe7fa94ce2e30572c476df445ed337741, aosp/1284585) --- core/java/android/net/NetworkCapabilities.java | 2 ++ services/core/java/com/android/server/ConnectivityService.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index 73c6b3daf2..52d6fdfbd5 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -680,11 +680,13 @@ public final class NetworkCapabilities implements Parcelable { public void restrictCapabilitesForTestNetwork() { final long originalCapabilities = mNetworkCapabilities; final NetworkSpecifier originalSpecifier = mNetworkSpecifier; + final int originalSignalStrength = mSignalStrength; clearAll(); // Reset the transports to only contain TRANSPORT_TEST. mTransportTypes = (1 << TRANSPORT_TEST); mNetworkCapabilities = originalCapabilities & TEST_NETWORKS_ALLOWED_CAPABILITIES; mNetworkSpecifier = originalSpecifier; + mSignalStrength = originalSignalStrength; } /** diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 51427c191a..1a58d6047b 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2151,7 +2151,8 @@ public class ConnectivityService extends IConnectivityManager.Stub private boolean checkNetworkSignalStrengthWakeupPermission(int pid, int uid) { return checkAnyPermissionOf(pid, uid, android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP, - NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, + android.Manifest.permission.NETWORK_SETTINGS); } private void enforceConnectivityRestrictedNetworksPermission() {