Snap for 6396429 from 7e96fc80873dddf0f9ce6db2ea986ac5b5bf5b4c to rvc-release
Change-Id: I6c44c8dedfc8e8370eb200c3e560a495ad554d9a
This commit is contained in:
@@ -25,12 +25,14 @@ import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.ConditionVariable;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.Messenger;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.util.AsyncChannel;
|
||||
import com.android.internal.util.Protocol;
|
||||
|
||||
@@ -571,6 +573,37 @@ public abstract class NetworkAgent {
|
||||
return mNetwork;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register this network agent with a testing harness.
|
||||
*
|
||||
* The returned Messenger sends messages to the Handler. This allows a test to send
|
||||
* this object {@code CMD_*} messages as if they came from ConnectivityService, which
|
||||
* is useful for testing the behavior.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public Messenger registerForTest(final Network network) {
|
||||
log("Registering NetworkAgent for test");
|
||||
synchronized (mRegisterLock) {
|
||||
mNetwork = network;
|
||||
mInitialConfiguration = null;
|
||||
}
|
||||
return new Messenger(mHandler);
|
||||
}
|
||||
|
||||
/**
|
||||
* Waits for the handler to be idle.
|
||||
* This is useful for testing, and has smaller scope than an accessor to mHandler.
|
||||
* TODO : move the implementation in common library with the tests
|
||||
* @hide
|
||||
*/
|
||||
@VisibleForTesting
|
||||
public boolean waitForIdle(final long timeoutMs) {
|
||||
final ConditionVariable cv = new ConditionVariable(false);
|
||||
mHandler.post(cv::open);
|
||||
return cv.block(timeoutMs);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The Network associated with this agent, or null if it's not registered yet.
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -16,17 +16,22 @@
|
||||
|
||||
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.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
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)
|
||||
@@ -63,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()
|
||||
|
||||
Reference in New Issue
Block a user