Merge "Update logic for checking NetworkSpecifier" am: eef8bc2050 am: 22bda590b7

Change-Id: If4ff3a3afc0385aed66ac954340b7d19f8396ccf
This commit is contained in:
Treehugger Robot
2020-04-22 16:36:52 +00:00
committed by Automerger Merge Worker

View File

@@ -29,9 +29,11 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import android.net.MacAddress; import android.net.MacAddress;
import android.net.MatchAllNetworkSpecifier;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.net.NetworkRequest; import android.net.NetworkRequest;
import android.net.NetworkSpecifier; import android.net.NetworkSpecifier;
import android.net.TelephonyNetworkSpecifier;
import android.net.wifi.WifiNetworkSpecifier; import android.net.wifi.WifiNetworkSpecifier;
import android.os.Build; import android.os.Build;
import android.os.Process; import android.os.Process;
@@ -127,39 +129,54 @@ public class NetworkRequestTest {
@Test @Test
@IgnoreUpTo(Build.VERSION_CODES.Q) @IgnoreUpTo(Build.VERSION_CODES.Q)
public void testCanBeSatisfiedBy() { public void testCanBeSatisfiedBy() {
final WifiNetworkSpecifier specifier1 = new WifiNetworkSpecifier.Builder() final TelephonyNetworkSpecifier specifier1 = new TelephonyNetworkSpecifier.Builder()
.setSsidPattern(new PatternMatcher(TEST_SSID, PatternMatcher.PATTERN_LITERAL)) .setSubscriptionId(1234 /* subId */)
.setBssidPattern(ARBITRARY_ADDRESS, ARBITRARY_ADDRESS)
.build(); .build();
final WifiNetworkSpecifier specifier2 = new WifiNetworkSpecifier.Builder() final TelephonyNetworkSpecifier specifier2 = new TelephonyNetworkSpecifier.Builder()
.setSsidPattern(new PatternMatcher(OTHER_SSID, PatternMatcher.PATTERN_LITERAL)) .setSubscriptionId(5678 /* subId */)
.setBssidPattern(ARBITRARY_ADDRESS, ARBITRARY_ADDRESS)
.build(); .build();
final NetworkCapabilities cap = new NetworkCapabilities() final NetworkCapabilities cap = new NetworkCapabilities()
.addTransportType(TRANSPORT_WIFI)
.addCapability(NET_CAPABILITY_INTERNET);
final NetworkCapabilities capWithSp =
new NetworkCapabilities(cap).setNetworkSpecifier(specifier1);
final NetworkCapabilities cellCap = new NetworkCapabilities()
.addTransportType(TRANSPORT_CELLULAR) .addTransportType(TRANSPORT_CELLULAR)
.addCapability(NET_CAPABILITY_MMS) .addCapability(NET_CAPABILITY_MMS)
.addCapability(NET_CAPABILITY_INTERNET); .addCapability(NET_CAPABILITY_INTERNET);
final NetworkRequest request = new NetworkRequest.Builder() final NetworkCapabilities capDualTransport = new NetworkCapabilities(cap)
.addTransportType(TRANSPORT_WIFI) .addTransportType(TRANSPORT_VPN);
final NetworkCapabilities capWithSpecifier1 =
new NetworkCapabilities(cap).setNetworkSpecifier(specifier1);
final NetworkCapabilities capDiffTransportWithSpecifier1 = new NetworkCapabilities()
.addCapability(NET_CAPABILITY_INTERNET)
.addTransportType(TRANSPORT_VPN)
.setNetworkSpecifier(specifier1);
final NetworkRequest requestWithSpecifier1 = new NetworkRequest.Builder()
.addTransportType(TRANSPORT_CELLULAR)
.addCapability(NET_CAPABILITY_INTERNET) .addCapability(NET_CAPABILITY_INTERNET)
.setNetworkSpecifier(specifier1) .setNetworkSpecifier(specifier1)
.build(); .build();
assertFalse(request.canBeSatisfiedBy(null)); assertFalse(requestWithSpecifier1.canBeSatisfiedBy(null));
assertFalse(request.canBeSatisfiedBy(new NetworkCapabilities())); assertFalse(requestWithSpecifier1.canBeSatisfiedBy(new NetworkCapabilities()));
assertTrue(request.canBeSatisfiedBy(cap)); assertTrue(requestWithSpecifier1.canBeSatisfiedBy(new NetworkCapabilities(cap)
assertTrue(request.canBeSatisfiedBy( .setNetworkSpecifier(new MatchAllNetworkSpecifier())));
new NetworkCapabilities(cap).addTransportType(TRANSPORT_VPN))); assertTrue(requestWithSpecifier1.canBeSatisfiedBy(cap));
assertTrue(request.canBeSatisfiedBy(capWithSp)); assertTrue(requestWithSpecifier1.canBeSatisfiedBy(capWithSpecifier1));
assertFalse(request.canBeSatisfiedBy( assertTrue(requestWithSpecifier1.canBeSatisfiedBy(capDualTransport));
assertFalse(requestWithSpecifier1.canBeSatisfiedBy(
new NetworkCapabilities(cap).setNetworkSpecifier(specifier2))); new NetworkCapabilities(cap).setNetworkSpecifier(specifier2)));
assertFalse(request.canBeSatisfiedBy(cellCap));
assertEquals(request.canBeSatisfiedBy(capWithSp), final NetworkRequest request = new NetworkRequest.Builder()
new NetworkCapabilities(capWithSp).satisfiedByNetworkCapabilities(capWithSp)); .addTransportType(TRANSPORT_CELLULAR)
.addCapability(NET_CAPABILITY_INTERNET)
.build();
assertTrue(request.canBeSatisfiedBy(cap));
assertTrue(request.canBeSatisfiedBy(capWithSpecifier1));
assertTrue(request.canBeSatisfiedBy(
new NetworkCapabilities(cap).setNetworkSpecifier(specifier2)));
assertFalse(request.canBeSatisfiedBy(capDiffTransportWithSpecifier1));
assertTrue(request.canBeSatisfiedBy(capDualTransport));
assertEquals(requestWithSpecifier1.canBeSatisfiedBy(capWithSpecifier1),
new NetworkCapabilities(capWithSpecifier1)
.satisfiedByNetworkCapabilities(capWithSpecifier1));
} }
@Test @IgnoreUpTo(Build.VERSION_CODES.Q) @Test @IgnoreUpTo(Build.VERSION_CODES.Q)