Loading tests/integration/src/android/net/ip/IpClientIntegrationTest.java +27 −18 Original line number Original line Diff line number Diff line Loading @@ -689,13 +689,12 @@ public class IpClientIntegrationTest { false /* isPreconnectionEnabled */, isDhcpIpConflictDetectEnabled, false /* isPreconnectionEnabled */, isDhcpIpConflictDetectEnabled, isHostnameConfigurationEnabled, hostname, displayName, scanResultInfo); isHostnameConfigurationEnabled, hostname, displayName, scanResultInfo); return handleDhcpPackets(isSuccessLease, leaseTimeSec, shouldReplyRapidCommitAck, mtu, return handleDhcpPackets(isSuccessLease, leaseTimeSec, shouldReplyRapidCommitAck, mtu, isDhcpIpConflictDetectEnabled, captivePortalApiUrl); captivePortalApiUrl); } } private List<DhcpPacket> handleDhcpPackets(final boolean isSuccessLease, private List<DhcpPacket> handleDhcpPackets(final boolean isSuccessLease, final Integer leaseTimeSec, final boolean shouldReplyRapidCommitAck, final int mtu, final Integer leaseTimeSec, final boolean shouldReplyRapidCommitAck, final int mtu, final boolean isDhcpIpConflictDetectEnabled, final String captivePortalApiUrl) final String captivePortalApiUrl) throws Exception { throws Exception { final List<DhcpPacket> packetList = new ArrayList<>(); final List<DhcpPacket> packetList = new ArrayList<>(); DhcpPacket packet; DhcpPacket packet; while ((packet = getNextDhcpPacket()) != null) { while ((packet = getNextDhcpPacket()) != null) { Loading @@ -720,15 +719,6 @@ public class IpClientIntegrationTest { // wait for reply to DHCPOFFER packet if disabling rapid commit option // wait for reply to DHCPOFFER packet if disabling rapid commit option if (shouldReplyRapidCommitAck || !(packet instanceof DhcpDiscoverPacket)) { if (shouldReplyRapidCommitAck || !(packet instanceof DhcpDiscoverPacket)) { if (!isDhcpIpConflictDetectEnabled && isSuccessLease) { // verify IPv4-only provisioning success before exiting loop. // 1. if it's a failure lease, onProvisioningSuccess() won't be called; // 2. if duplicated IPv4 address detection is enabled, verify TIMEOUT // will affect ARP packet capture running in other test cases. ArgumentCaptor<LinkProperties> captor = ArgumentCaptor.forClass(LinkProperties.class); verifyProvisioningSuccess(captor, Collections.singletonList(CLIENT_ADDR)); } return packetList; return packetList; } } } } Loading Loading @@ -790,8 +780,15 @@ public class IpClientIntegrationTest { verify(mCb, timeout(TEST_TIMEOUT_MS)).onLinkPropertiesChange(emptyLp); verify(mCb, timeout(TEST_TIMEOUT_MS)).onLinkPropertiesChange(emptyLp); } } private void verifyProvisioningSuccess(ArgumentCaptor<LinkProperties> captor, // Verify IPv4-only provisioning success. No need to verify IPv4 provisioning when below cases final Collection<InetAddress> addresses) throws Exception { // happen: // 1. if there's a failure lease, onProvisioningSuccess() won't be called; // 2. if duplicated IPv4 address detection is enabled, verify TIMEOUT will affect ARP packets // capture running in other test cases. // 3. if IPv6 is enabled, e.g. withoutIPv6() isn't called when starting provisioning. private void verifyIPv4OnlyProvisioningSuccess(final Collection<InetAddress> addresses) throws Exception { final ArgumentCaptor<LinkProperties> captor = ArgumentCaptor.forClass(LinkProperties.class); verify(mCb, timeout(TEST_TIMEOUT_MS)).onProvisioningSuccess(captor.capture()); verify(mCb, timeout(TEST_TIMEOUT_MS)).onProvisioningSuccess(captor.capture()); LinkProperties lp = captor.getValue(); LinkProperties lp = captor.getValue(); assertNotNull(lp); assertNotNull(lp); Loading @@ -809,6 +806,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, mtu, false /* isDhcpIpConflictDetectEnabled */); mtu, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, mtu); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, mtu); if (shouldChangeMtu) { if (shouldChangeMtu) { Loading Loading @@ -997,8 +995,7 @@ public class IpClientIntegrationTest { assertArpProbe(packetList.get(0)); assertArpProbe(packetList.get(0)); assertArpAnnounce(packetList.get(3)); assertArpAnnounce(packetList.get(3)); ArgumentCaptor<LinkProperties> captor = ArgumentCaptor.forClass(LinkProperties.class); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); verifyProvisioningSuccess(captor, Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); TEST_DEFAULT_MTU); } } Loading Loading @@ -1037,6 +1034,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1056,6 +1054,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, INFINITE_LEASE, performDhcpHandshake(true /* isSuccessLease */, INFINITE_LEASE, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(INFINITE_LEASE, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(INFINITE_LEASE, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1065,6 +1064,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, null /* no lease time */, performDhcpHandshake(true /* isSuccessLease */, null /* no lease time */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(null, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(null, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1073,6 +1073,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, false /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, false /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryNeverStoreNetworkAttributes(); assertIpMemoryNeverStoreNetworkAttributes(); } } Loading @@ -1082,6 +1083,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, true /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, true /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading Loading @@ -1205,6 +1207,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_MIN_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_MIN_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_MIN_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_MIN_MTU); // Pretend that ConnectivityService set the MTU. // Pretend that ConnectivityService set the MTU. Loading @@ -1221,6 +1224,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, 0 /* mtu */, false /* isDhcpIpConflictDetectEnabled */); 0 /* mtu */, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, 0 /* mtu */); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, 0 /* mtu */); assertEquals(NetworkInterface.getByName(mIfaceName).getMTU(), TEST_DEFAULT_MTU); assertEquals(NetworkInterface.getByName(mIfaceName).getMTU(), TEST_DEFAULT_MTU); } } Loading Loading @@ -1646,6 +1650,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); // Stop IpClient and expect a final LinkProperties callback with an empty LP. // Stop IpClient and expect a final LinkProperties callback with an empty LP. Loading Loading @@ -1858,6 +1863,7 @@ public class IpClientIntegrationTest { true /* isHostnameConfigurationEnabled */, TEST_HOST_NAME /* hostname */, true /* isHostnameConfigurationEnabled */, TEST_HOST_NAME /* hostname */, null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertHostname(true, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertHostname(true, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1872,6 +1878,7 @@ public class IpClientIntegrationTest { false /* isHostnameConfigurationEnabled */, TEST_HOST_NAME, false /* isHostnameConfigurationEnabled */, TEST_HOST_NAME, null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertHostname(false, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertHostname(false, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1886,6 +1893,7 @@ public class IpClientIntegrationTest { true /* isHostnameConfigurationEnabled */, null /* hostname */, true /* isHostnameConfigurationEnabled */, null /* hostname */, null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertHostname(true, null /* hostname */, null /* hostnameAfterTransliteration */, assertHostname(true, null /* hostname */, null /* hostnameAfterTransliteration */, sentPackets); sentPackets); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); Loading @@ -1906,8 +1914,7 @@ public class IpClientIntegrationTest { (short) TEST_DEFAULT_MTU, serverSentUrl)); (short) TEST_DEFAULT_MTU, serverSentUrl)); final int testMtu = 1345; final int testMtu = 1345; handleDhcpPackets(true /* isSuccessLease */, TEST_LEASE_DURATION_S, handleDhcpPackets(true /* isSuccessLease */, TEST_LEASE_DURATION_S, false /* isDhcpRapidCommitEnabled */, testMtu, false /* shouldReplyRapidCommitAck */, testMtu, serverSentUrl); false /* isDhcpIpConflictDetectEnabled */, serverSentUrl); final Uri expectedUrl = featureEnabled && serverSendsOption final Uri expectedUrl = featureEnabled && serverSendsOption ? Uri.parse(TEST_CAPTIVE_PORTAL_URL) : null; ? Uri.parse(TEST_CAPTIVE_PORTAL_URL) : null; Loading Loading @@ -1976,6 +1983,7 @@ public class IpClientIntegrationTest { false /* isHostnameConfigurationEnabled */, null /* hostname */, false /* isHostnameConfigurationEnabled */, null /* hostname */, null /* captivePortalApiUrl */, displayName, info /* scanResultInfo */); null /* captivePortalApiUrl */, displayName, info /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); ArgumentCaptor<DhcpResultsParcelable> captor = ArgumentCaptor<DhcpResultsParcelable> captor = ArgumentCaptor.forClass(DhcpResultsParcelable.class); ArgumentCaptor.forClass(DhcpResultsParcelable.class); Loading Loading @@ -2070,6 +2078,7 @@ public class IpClientIntegrationTest { TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */, true /* isHostnameConfigurationEnabled */, null /* hostname */, true /* isHostnameConfigurationEnabled */, null /* hostname */, null /* captivePortalApiUrl */, displayName, scanResultInfo); null /* captivePortalApiUrl */, displayName, scanResultInfo); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); // simulate the roaming by updating bssid. // simulate the roaming by updating bssid. Loading Loading
tests/integration/src/android/net/ip/IpClientIntegrationTest.java +27 −18 Original line number Original line Diff line number Diff line Loading @@ -689,13 +689,12 @@ public class IpClientIntegrationTest { false /* isPreconnectionEnabled */, isDhcpIpConflictDetectEnabled, false /* isPreconnectionEnabled */, isDhcpIpConflictDetectEnabled, isHostnameConfigurationEnabled, hostname, displayName, scanResultInfo); isHostnameConfigurationEnabled, hostname, displayName, scanResultInfo); return handleDhcpPackets(isSuccessLease, leaseTimeSec, shouldReplyRapidCommitAck, mtu, return handleDhcpPackets(isSuccessLease, leaseTimeSec, shouldReplyRapidCommitAck, mtu, isDhcpIpConflictDetectEnabled, captivePortalApiUrl); captivePortalApiUrl); } } private List<DhcpPacket> handleDhcpPackets(final boolean isSuccessLease, private List<DhcpPacket> handleDhcpPackets(final boolean isSuccessLease, final Integer leaseTimeSec, final boolean shouldReplyRapidCommitAck, final int mtu, final Integer leaseTimeSec, final boolean shouldReplyRapidCommitAck, final int mtu, final boolean isDhcpIpConflictDetectEnabled, final String captivePortalApiUrl) final String captivePortalApiUrl) throws Exception { throws Exception { final List<DhcpPacket> packetList = new ArrayList<>(); final List<DhcpPacket> packetList = new ArrayList<>(); DhcpPacket packet; DhcpPacket packet; while ((packet = getNextDhcpPacket()) != null) { while ((packet = getNextDhcpPacket()) != null) { Loading @@ -720,15 +719,6 @@ public class IpClientIntegrationTest { // wait for reply to DHCPOFFER packet if disabling rapid commit option // wait for reply to DHCPOFFER packet if disabling rapid commit option if (shouldReplyRapidCommitAck || !(packet instanceof DhcpDiscoverPacket)) { if (shouldReplyRapidCommitAck || !(packet instanceof DhcpDiscoverPacket)) { if (!isDhcpIpConflictDetectEnabled && isSuccessLease) { // verify IPv4-only provisioning success before exiting loop. // 1. if it's a failure lease, onProvisioningSuccess() won't be called; // 2. if duplicated IPv4 address detection is enabled, verify TIMEOUT // will affect ARP packet capture running in other test cases. ArgumentCaptor<LinkProperties> captor = ArgumentCaptor.forClass(LinkProperties.class); verifyProvisioningSuccess(captor, Collections.singletonList(CLIENT_ADDR)); } return packetList; return packetList; } } } } Loading Loading @@ -790,8 +780,15 @@ public class IpClientIntegrationTest { verify(mCb, timeout(TEST_TIMEOUT_MS)).onLinkPropertiesChange(emptyLp); verify(mCb, timeout(TEST_TIMEOUT_MS)).onLinkPropertiesChange(emptyLp); } } private void verifyProvisioningSuccess(ArgumentCaptor<LinkProperties> captor, // Verify IPv4-only provisioning success. No need to verify IPv4 provisioning when below cases final Collection<InetAddress> addresses) throws Exception { // happen: // 1. if there's a failure lease, onProvisioningSuccess() won't be called; // 2. if duplicated IPv4 address detection is enabled, verify TIMEOUT will affect ARP packets // capture running in other test cases. // 3. if IPv6 is enabled, e.g. withoutIPv6() isn't called when starting provisioning. private void verifyIPv4OnlyProvisioningSuccess(final Collection<InetAddress> addresses) throws Exception { final ArgumentCaptor<LinkProperties> captor = ArgumentCaptor.forClass(LinkProperties.class); verify(mCb, timeout(TEST_TIMEOUT_MS)).onProvisioningSuccess(captor.capture()); verify(mCb, timeout(TEST_TIMEOUT_MS)).onProvisioningSuccess(captor.capture()); LinkProperties lp = captor.getValue(); LinkProperties lp = captor.getValue(); assertNotNull(lp); assertNotNull(lp); Loading @@ -809,6 +806,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, mtu, false /* isDhcpIpConflictDetectEnabled */); mtu, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, mtu); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, mtu); if (shouldChangeMtu) { if (shouldChangeMtu) { Loading Loading @@ -997,8 +995,7 @@ public class IpClientIntegrationTest { assertArpProbe(packetList.get(0)); assertArpProbe(packetList.get(0)); assertArpAnnounce(packetList.get(3)); assertArpAnnounce(packetList.get(3)); ArgumentCaptor<LinkProperties> captor = ArgumentCaptor.forClass(LinkProperties.class); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); verifyProvisioningSuccess(captor, Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); TEST_DEFAULT_MTU); } } Loading Loading @@ -1037,6 +1034,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1056,6 +1054,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, INFINITE_LEASE, performDhcpHandshake(true /* isSuccessLease */, INFINITE_LEASE, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(INFINITE_LEASE, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(INFINITE_LEASE, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1065,6 +1064,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, null /* no lease time */, performDhcpHandshake(true /* isSuccessLease */, null /* no lease time */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(null, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(null, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1073,6 +1073,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, false /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, false /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryNeverStoreNetworkAttributes(); assertIpMemoryNeverStoreNetworkAttributes(); } } Loading @@ -1082,6 +1083,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, true /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, true /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading Loading @@ -1205,6 +1207,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_MIN_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_MIN_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_MIN_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_MIN_MTU); // Pretend that ConnectivityService set the MTU. // Pretend that ConnectivityService set the MTU. Loading @@ -1221,6 +1224,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, 0 /* mtu */, false /* isDhcpIpConflictDetectEnabled */); 0 /* mtu */, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, 0 /* mtu */); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, 0 /* mtu */); assertEquals(NetworkInterface.getByName(mIfaceName).getMTU(), TEST_DEFAULT_MTU); assertEquals(NetworkInterface.getByName(mIfaceName).getMTU(), TEST_DEFAULT_MTU); } } Loading Loading @@ -1646,6 +1650,7 @@ public class IpClientIntegrationTest { performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, true /* isDhcpLeaseCacheEnabled */, false /* shouldReplyRapidCommitAck */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); // Stop IpClient and expect a final LinkProperties callback with an empty LP. // Stop IpClient and expect a final LinkProperties callback with an empty LP. Loading Loading @@ -1858,6 +1863,7 @@ public class IpClientIntegrationTest { true /* isHostnameConfigurationEnabled */, TEST_HOST_NAME /* hostname */, true /* isHostnameConfigurationEnabled */, TEST_HOST_NAME /* hostname */, null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertHostname(true, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertHostname(true, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1872,6 +1878,7 @@ public class IpClientIntegrationTest { false /* isHostnameConfigurationEnabled */, TEST_HOST_NAME, false /* isHostnameConfigurationEnabled */, TEST_HOST_NAME, null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertHostname(false, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertHostname(false, TEST_HOST_NAME, TEST_HOST_NAME_TRANSLITERATION, sentPackets); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); } } Loading @@ -1886,6 +1893,7 @@ public class IpClientIntegrationTest { true /* isHostnameConfigurationEnabled */, null /* hostname */, true /* isHostnameConfigurationEnabled */, null /* hostname */, null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); null /* captivePortalApiUrl */, null /* displayName */, null /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertHostname(true, null /* hostname */, null /* hostnameAfterTransliteration */, assertHostname(true, null /* hostname */, null /* hostnameAfterTransliteration */, sentPackets); sentPackets); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); Loading @@ -1906,8 +1914,7 @@ public class IpClientIntegrationTest { (short) TEST_DEFAULT_MTU, serverSentUrl)); (short) TEST_DEFAULT_MTU, serverSentUrl)); final int testMtu = 1345; final int testMtu = 1345; handleDhcpPackets(true /* isSuccessLease */, TEST_LEASE_DURATION_S, handleDhcpPackets(true /* isSuccessLease */, TEST_LEASE_DURATION_S, false /* isDhcpRapidCommitEnabled */, testMtu, false /* shouldReplyRapidCommitAck */, testMtu, serverSentUrl); false /* isDhcpIpConflictDetectEnabled */, serverSentUrl); final Uri expectedUrl = featureEnabled && serverSendsOption final Uri expectedUrl = featureEnabled && serverSendsOption ? Uri.parse(TEST_CAPTIVE_PORTAL_URL) : null; ? Uri.parse(TEST_CAPTIVE_PORTAL_URL) : null; Loading Loading @@ -1976,6 +1983,7 @@ public class IpClientIntegrationTest { false /* isHostnameConfigurationEnabled */, null /* hostname */, false /* isHostnameConfigurationEnabled */, null /* hostname */, null /* captivePortalApiUrl */, displayName, info /* scanResultInfo */); null /* captivePortalApiUrl */, displayName, info /* scanResultInfo */); assertEquals(2, sentPackets.size()); assertEquals(2, sentPackets.size()); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); ArgumentCaptor<DhcpResultsParcelable> captor = ArgumentCaptor<DhcpResultsParcelable> captor = ArgumentCaptor.forClass(DhcpResultsParcelable.class); ArgumentCaptor.forClass(DhcpResultsParcelable.class); Loading Loading @@ -2070,6 +2078,7 @@ public class IpClientIntegrationTest { TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */, TEST_DEFAULT_MTU, false /* isDhcpIpConflictDetectEnabled */, true /* isHostnameConfigurationEnabled */, null /* hostname */, true /* isHostnameConfigurationEnabled */, null /* hostname */, null /* captivePortalApiUrl */, displayName, scanResultInfo); null /* captivePortalApiUrl */, displayName, scanResultInfo); verifyIPv4OnlyProvisioningSuccess(Collections.singletonList(CLIENT_ADDR)); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU); // simulate the roaming by updating bssid. // simulate the roaming by updating bssid. Loading