summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2018-09-28 13:17:27 -0700
committerRoshan Pius <rpius@google.com>2018-11-01 10:48:54 -0700
commitbab935ebc5468b35721e213c5a25199d67ccf82d (patch)
treeb12b1cfb3618b1c64d657f95cd5c381ac4e20a4a /tests
parent1147a7f0e6ed682a1590da638e1f0760d90dc5a0 (diff)
WifiNetworkFactory: Always allow requests from signature app
For apps like settings/sl4a (needed for ACTS tests) which run with SYSTEM_UID, we cannot determine the importance (FG app/service, etc) using the provided API's. Any app which holds the NETWORK_SETTINGS permission should be able to bypass all the foreground checks. This is probably going to be only used for ACTS tests, since we don't expect settings to use this API surface for now. Bug: 113878056 Test: Unit tests Change-Id: Ie1a27cd5b365a206c4d81d38837d026cac060892
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java23
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
index da4c32994..7b6f2baa3 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
@@ -18,6 +18,7 @@ package com.android.server.wifi;
import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND_SERVICE;
+import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_GONE;
import static com.android.server.wifi.WifiNetworkFactory.PERIODIC_SCAN_INTERVAL_MS;
import static com.android.server.wifi.util.NativeUtil.addEnclosingQuotes;
@@ -44,6 +45,8 @@ import android.os.test.TestLooper;
import android.test.suitebuilder.annotation.SmallTest;
import android.util.Pair;
+import com.android.server.wifi.util.WifiPermissionsUtil;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -69,6 +72,7 @@ public class WifiNetworkFactoryTest {
@Mock AlarmManager mAlarmManager;
@Mock Clock mClock;
@Mock WifiInjector mWifiInjector;
+ @Mock WifiPermissionsUtil mWifiPermissionsUtil;
@Mock WifiScanner mWifiScanner;
@Mock PackageManager mPackageManager;
NetworkCapabilities mNetworkCapabilities;
@@ -105,7 +109,7 @@ public class WifiNetworkFactoryTest {
mWifiNetworkFactory = new WifiNetworkFactory(mLooper.getLooper(), mContext,
mNetworkCapabilities, mActivityManager, mAlarmManager, mClock, mWifiInjector,
- mWifiConnectivityManager);
+ mWifiConnectivityManager, mWifiPermissionsUtil);
mNetworkRequest = new NetworkRequest.Builder()
.setCapabilities(mNetworkCapabilities)
@@ -194,6 +198,23 @@ public class WifiNetworkFactoryTest {
}
/**
+ * Validates handling of acceptNetwork with a network specifier from apps holding
+ * NETWORK_SETTINGS.
+ */
+ @Test
+ public void testHandleAcceptNetworkRequestFromNetworkSettingAppWithSpecifier() {
+ when(mActivityManager.getPackageImportance(TEST_PACKAGE_NAME_1))
+ .thenReturn(IMPORTANCE_GONE);
+ when(mWifiPermissionsUtil.checkNetworkSettingsPermission(TEST_UID_1))
+ .thenReturn(true);
+
+ WifiNetworkSpecifier specifier = createWifiNetworkSpecifier(TEST_UID_1, false);
+ mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
+
+ assertTrue(mWifiNetworkFactory.acceptRequest(mNetworkRequest, 0));
+ }
+
+ /**
* Validates handling of acceptNetwork with a network specifier from a foreground
* app.
*/