diff options
author | Roshan Pius <rpius@google.com> | 2018-09-28 13:17:27 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2018-11-01 10:48:54 -0700 |
commit | bab935ebc5468b35721e213c5a25199d67ccf82d (patch) | |
tree | b12b1cfb3618b1c64d657f95cd5c381ac4e20a4a /tests | |
parent | 1147a7f0e6ed682a1590da638e1f0760d90dc5a0 (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.java | 23 |
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. */ |