diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2020-12-10 22:02:26 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-12-10 22:02:26 +0000 |
commit | fa96b1ec373444b601a0b516b494152d7c908cad (patch) | |
tree | 776593b88c70ce3d9e19ab010050dcbeff05e755 | |
parent | 8778b14377e03209b6bd7211e0352d41477f25d8 (diff) | |
parent | f9c040280dad967498fefbff2b26022999dca32d (diff) | |
download | cts-fa96b1ec373444b601a0b516b494152d7c908cad.tar.gz |
Merge "RESTRICT AUTOMERGE Reland "Ensure CONFIGURED_NETWORKS_CHANGED not received without permissions"" into oreo-cts-dev
-rw-r--r-- | tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java index 44b49c0274d..6dd6fc0302c 100644 --- a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java +++ b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java @@ -32,6 +32,7 @@ import android.net.wifi.WifiManager.WifiLock; import android.net.wifi.hotspot2.PasspointConfiguration; import android.net.wifi.hotspot2.pps.Credential; import android.net.wifi.hotspot2.pps.HomeSp; +import android.os.Build; import android.os.SystemClock; import android.provider.Settings; import android.test.AndroidTestCase; @@ -43,6 +44,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.security.MessageDigest; import java.security.cert.X509Certificate; +import java.time.LocalDate; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -125,6 +127,14 @@ public class WifiManagerTest extends AndroidTestCase { } }; + private static final LocalDate SECURITY_PATCH_DATE_2020_12 = LocalDate.of(2020, 12, 1); + + private static boolean doesDeviceHave2020_12SecurityPatch() { + LocalDate deviceSecurityPatchDate = LocalDate.parse(Build.VERSION.SECURITY_PATCH); + // LocalDate#isBefore() is exclusive, so use workaround: !(a < b) <=> (b <= a) + return !deviceSecurityPatchDate.isBefore(SECURITY_PATCH_DATE_2020_12); + } + @Override protected void setUp() throws Exception { super.setUp(); @@ -411,12 +421,36 @@ public class WifiManagerTest extends AndroidTestCase { assertFalse(existSSID(SSID1)); assertTrue(existSSID(SSID2)); + // Need an effectively-final holder because we need to modify inner Intent in callback. + class IntentHolder { + Intent intent; + } + IntentHolder intentHolder = new IntentHolder(); + mContext.registerReceiver(new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + Log.i(TAG, "Received CONFIGURED_NETWORKS_CHANGED_ACTION broadcast: " + intent); + intentHolder.intent = intent; + } + }, new IntentFilter(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION)); + // Remove a WifiConfig assertTrue(mWifiManager.removeNetwork(netId)); assertFalse(mWifiManager.removeNetwork(notExist)); assertFalse(existSSID(SSID1)); assertFalse(existSSID(SSID2)); + if (doesDeviceHave2020_12SecurityPatch()) { + // wait 10 seconds to ensure that broadcast wasn't received + Thread.sleep(DURATION); + Intent intent = intentHolder.intent; + // Broadcast shouldn't be received because although CtsNetTestCases has + // ACCESS_WIFI_STATE permission, it doesn't have ACCESS_FINE_LOCATION permission. + // Receivers need both permissions to get the broadcast. + assertNull("Unexpected received CONFIGURED_NETWORKS_CHANGED_ACTION broadcast!", + intent); + } + assertTrue(mWifiManager.saveConfiguration()); } finally { reEnableNetworks(enabledSsids, mWifiManager.getConfiguredNetworks()); |