Fix ScanSettingsTest to use new WifiManager APIs
Migrate from using Settings.Global to using
WifiManager.isScanAlwaysAvailable().
Bug: 149954910
Test: atest ScanningSettingsTest#testWifiScanningSettings
Change-Id: Ie6e04bc26dafefb21988ee583ffedb55aab87b12
diff --git a/tests/location/location_fine/AndroidManifest.xml b/tests/location/location_fine/AndroidManifest.xml
index 01fe459..0804333 100644
--- a/tests/location/location_fine/AndroidManifest.xml
+++ b/tests/location/location_fine/AndroidManifest.xml
@@ -27,6 +27,7 @@
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
android:targetPackage="android.location.cts.fine"
diff --git a/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java b/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java
index 802aa2c..b7853e8 100644
--- a/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java
+++ b/tests/location/location_fine/src/android/location/cts/fine/ScanningSettingsTest.java
@@ -22,6 +22,7 @@
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.database.ContentObserver;
+import android.net.wifi.WifiManager;
import android.os.Handler;
import android.os.HandlerThread;
import android.platform.test.annotations.AppModeFull;
@@ -33,6 +34,7 @@
import android.test.AndroidTestCase;
import com.android.compatibility.common.util.CddTest;
+import com.android.compatibility.common.util.PollingCheck;
import androidx.test.platform.app.InstrumentationRegistry;
@@ -76,12 +78,35 @@
}
@CddTest(requirement = "7.4.2/C-2-1")
- public void testWifiScanningSettings() throws PackageManager.NameNotFoundException {
+ public void testWifiScanningSettings() throws Exception {
if (isTv()) {
return;
}
launchScanningSettings();
- toggleSettingAndVerify(WIFI_SCANNING_TITLE_RES, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE);
+
+ final Resources res = mPackageManager.getResourcesForApplication(SETTINGS_PACKAGE);
+ final int resId = res.getIdentifier(WIFI_SCANNING_TITLE_RES, "string", SETTINGS_PACKAGE);
+ final UiObject2 pref = mDevice.findObject(By.text(res.getString(resId)));
+
+ final WifiManager wifiManager = mContext.getSystemService(WifiManager.class);
+
+ final boolean checked = wifiManager.isScanAlwaysAvailable();
+
+ // Click the preference to toggle the setting.
+ pref.click();
+ PollingCheck.check(
+ "Scan Always Available wasn't toggled from " + checked + " to " + !checked,
+ TIMEOUT,
+ () -> !checked == wifiManager.isScanAlwaysAvailable()
+ );
+
+ // Click the preference again to toggle the setting back.
+ pref.click();
+ PollingCheck.check(
+ "Scan Always Available wasn't toggled from " + !checked + " to " + checked,
+ TIMEOUT,
+ () -> checked == wifiManager.isScanAlwaysAvailable()
+ );
}
@CddTest(requirement = "7.4.3/C-4-1")