From aca8ac117e7da9f0cda11f2e51027164199e35d6 Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Thu, 1 Mar 2018 08:05:34 -0800 Subject: [PATCH] [AWARE] Update CTS for (new) Aware Location Mode behavior Aware is now disabled whenever Location Mode is off. Update CTS to check for Location Mode and fail if not available with relevant notification. Bug: 70218191 Test: CTS tests fail with Location Mode off Test: CTS tests pass (with known failure for MAC randomization) with Location Mode on Change-Id: I0739012a2a5fce56e76c1607e7b700c12fa8e083 --- .../net/wifi/aware/cts/SingleDeviceTest.java | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java index 1d212ca073..7277553eeb 100644 --- a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java +++ b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java @@ -20,6 +20,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.location.LocationManager; import android.net.ConnectivityManager; import android.net.MacAddress; import android.net.NetworkCapabilities; @@ -38,9 +39,7 @@ import android.net.wifi.aware.WifiAwareManager; import android.net.wifi.aware.WifiAwareSession; import android.os.Handler; import android.os.HandlerThread; -import android.provider.Settings; import android.test.AndroidTestCase; -import android.util.Log; import java.util.ArrayDeque; import java.util.ArrayList; @@ -76,13 +75,6 @@ public class SingleDeviceTest extends AndroidTestCase { // used to store any WifiAwareSession allocated during tests - will clean-up after tests private List mSessions = new ArrayList<>(); - // Return true if location is enabled. - private boolean isLocationEnabled() { - return Settings.Secure.getInt(getContext().getContentResolver(), - Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF) != - Settings.Secure.LOCATION_MODE_OFF; - } - private class WifiAwareBroadcastReceiver extends BroadcastReceiver { private CountDownLatch mBlocker = new CountDownLatch(1); @@ -358,6 +350,10 @@ public class SingleDeviceTest extends AndroidTestCase { return; } + assertTrue("Wi-Fi Aware requires Location to be Enabled", + ((LocationManager) getContext().getSystemService( + Context.LOCATION_SERVICE)).isLocationEnabled()); + mWifiAwareManager = (WifiAwareManager) getContext().getSystemService( Context.WIFI_AWARE_SERVICE); assertNotNull("Wi-Fi Aware Manager", mWifiAwareManager); @@ -431,18 +427,6 @@ public class SingleDeviceTest extends AndroidTestCase { return; } - if (isLocationEnabled()) { - /* Can't execute this test with location on since it means that Aware will not get - * disabled even if we disable Wi-Fi (which when location is enabled does not correspond - * to disabling the Wi-Fi chip). - * - * Considering other tests may require locationing to be enable we can't also fail the - * test in such a case. Hence it is skipped. - */ - Log.d(TAG, "Skipping test since location scans are enabled"); - return; - } - IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(WifiAwareManager.ACTION_WIFI_AWARE_STATE_CHANGED);