summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichael Plass <mplass@google.com>2018-02-02 17:29:05 -0800
committerMichael Plass <mplass@google.com>2018-02-05 15:01:30 -0800
commit7386dc141c1bb8d0da7cebe231326e1642289a9c (patch)
treea0ab668cb5ce41001a0437f6dd4f15360e038810 /tests
parent993290c3bff01d19df80c10804a6afb2dec6d484 (diff)
Move getConnectionInfo checks into WifiServiceImpl
Relevant unit tests relocated to WifiServiceImplTest Bug: 64346118 Test: Unit tests Change-Id: I76f148101c076ff5b367916b2505680dee325042
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java70
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java87
2 files changed, 70 insertions, 87 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
index c2995fa4f..c134f4e9f 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
@@ -36,11 +36,9 @@ import static android.net.wifi.WifiManager.WIFI_AP_STATE_FAILED;
import static android.net.wifi.WifiManager.WIFI_STATE_DISABLED;
import static android.provider.Settings.Secure.LOCATION_MODE_HIGH_ACCURACY;
import static android.provider.Settings.Secure.LOCATION_MODE_OFF;
-
import static com.android.server.wifi.LocalOnlyHotspotRequestInfo.HOTSPOT_NO_ERROR;
import static com.android.server.wifi.WifiController.CMD_SET_AP;
import static com.android.server.wifi.WifiController.CMD_WIFI_TOGGLED;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -66,9 +64,11 @@ import android.net.wifi.ISoftApCallback;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiEnterpriseConfig;
+import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.LocalOnlyHotspotCallback;
import android.net.wifi.WifiManager.SoftApCallback;
+import android.net.wifi.WifiSsid;
import android.net.wifi.hotspot2.IProvisioningCallback;
import android.net.wifi.hotspot2.OsuProvider;
import android.net.wifi.hotspot2.PasspointConfiguration;
@@ -93,6 +93,7 @@ import com.android.server.wifi.WifiServiceImpl.LocalOnlyRequestorCallback;
import com.android.server.wifi.hotspot2.PasspointProvisioningTestUtil;
import com.android.server.wifi.util.WifiAsyncChannel;
import com.android.server.wifi.util.WifiPermissionsUtil;
+import com.android.server.wifi.util.WifiPermissionsWrapper;
import org.junit.Before;
import org.junit.Test;
@@ -168,6 +169,7 @@ public class WifiServiceImplTest {
@Mock WifiBackupRestore mWifiBackupRestore;
@Mock WifiMetrics mWifiMetrics;
@Mock WifiPermissionsUtil mWifiPermissionsUtil;
+ @Mock WifiPermissionsWrapper mWifiPermissionsWrapper;
@Mock WifiSettingsStore mSettingsStore;
@Mock ContentResolver mContentResolver;
@Mock PackageManager mPackageManager;
@@ -297,6 +299,7 @@ public class WifiServiceImplTest {
when(mWifiInjector.makeLog(anyString())).thenReturn(mLog);
when(mWifiInjector.getWifiTrafficPoller()).thenReturn(mWifiTrafficPoller);
when(mWifiInjector.getWifiPermissionsUtil()).thenReturn(mWifiPermissionsUtil);
+ when(mWifiInjector.getWifiPermissionsWrapper()).thenReturn(mWifiPermissionsWrapper);
when(mWifiInjector.getWifiSettingsStore()).thenReturn(mSettingsStore);
when(mWifiInjector.getClock()).thenReturn(mClock);
when(mWifiInjector.getScanRequestProxy()).thenReturn(mScanRequestProxy);
@@ -875,6 +878,69 @@ public class WifiServiceImplTest {
verify(mScanRequestProxy, never()).startScan(Process.myUid());
}
+ static final String TEST_SSID = "Sid's Place";
+ static final String TEST_SSID_WITH_QUOTES = "\"" + TEST_SSID + "\"";
+ static final String TEST_BSSID = "01:02:03:04:05:06";
+ static final String TEST_PACKAGE = "package";
+
+ private void setupForGetConnectionInfo() {
+ WifiInfo wifiInfo = new WifiInfo();
+ wifiInfo.setSSID(WifiSsid.createFromAsciiEncoded(TEST_SSID));
+ wifiInfo.setBSSID(TEST_BSSID);
+ when(mWifiStateMachine.syncRequestConnectionInfo()).thenReturn(wifiInfo);
+ }
+
+ /**
+ * Test that connected SSID and BSSID are not exposed to an app that does not have the
+ * appropriate permissions.
+ */
+ @Test
+ public void testConnectedIdsAreHiddenFromAppWithoutPermission() throws Exception {
+ setupForGetConnectionInfo();
+
+ when(mWifiPermissionsUtil.canAccessScanResults(anyString(), anyInt(), anyInt()))
+ .thenReturn(false);
+
+ WifiInfo connectionInfo = mWifiServiceImpl.getConnectionInfo(TEST_PACKAGE);
+
+ assertEquals(WifiSsid.NONE, connectionInfo.getSSID());
+ assertEquals(WifiInfo.DEFAULT_MAC_ADDRESS, connectionInfo.getBSSID());
+ }
+
+ /**
+ * Test that connected SSID and BSSID are not exposed to an app that does not have the
+ * appropriate permissions, when canAccessScanResults raises a SecurityException.
+ */
+ @Test
+ public void testConnectedIdsAreHiddenOnSecurityException() throws Exception {
+ setupForGetConnectionInfo();
+
+ when(mWifiPermissionsUtil.canAccessScanResults(anyString(), anyInt(), anyInt()))
+ .thenThrow(new SecurityException());
+
+ WifiInfo connectionInfo = mWifiServiceImpl.getConnectionInfo(TEST_PACKAGE);
+
+ assertEquals(WifiSsid.NONE, connectionInfo.getSSID());
+ assertEquals(WifiInfo.DEFAULT_MAC_ADDRESS, connectionInfo.getBSSID());
+ }
+
+ /**
+ * Test that connected SSID and BSSID are exposed to an app that does have the
+ * appropriate permissions.
+ */
+ @Test
+ public void testConnectedIdsAreVisibleFromPermittedApp() throws Exception {
+ setupForGetConnectionInfo();
+
+ when(mWifiPermissionsUtil.canAccessScanResults(anyString(), anyInt(), anyInt()))
+ .thenReturn(true);
+
+ WifiInfo connectionInfo = mWifiServiceImpl.getConnectionInfo(TEST_PACKAGE);
+
+ assertEquals(TEST_SSID_WITH_QUOTES, connectionInfo.getSSID());
+ assertEquals(TEST_BSSID, connectionInfo.getBSSID());
+ }
+
/**
* Test fetching of scan results.
*/
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
index a533afcfd..6bd00a3a5 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
@@ -1896,76 +1896,19 @@ public class WifiStateMachineTest {
}
/**
- * Test that connected SSID and BSSID are not exposed to an app that does not have the
- * appropriate permissions.
+ * Test that connected SSID and BSSID are exposed to system server.
* Also tests that {@link WifiStateMachine#syncRequestConnectionInfo(String)} always
* returns a copy of WifiInfo.
*/
@Test
- public void testConnectedIdsAreHiddenFromAppWithoutPermission() throws Exception {
- WifiInfo wifiInfo = mWsm.getWifiInfo();
-
- // Get into a connected state, with known BSSID and SSID
- connect();
- assertEquals(sBSSID, wifiInfo.getBSSID());
- assertEquals(sWifiSsid, wifiInfo.getWifiSsid());
-
- when(mWifiPermissionsUtil.canAccessScanResults(anyString(), eq(TEST_UID), anyInt()))
- .thenReturn(false);
-
- WifiInfo connectionInfo = mWsm.syncRequestConnectionInfo(mContext.getOpPackageName(),
- TEST_UID);
-
- assertNotEquals(wifiInfo, connectionInfo);
- assertEquals(WifiSsid.NONE, connectionInfo.getSSID());
- assertEquals(WifiInfo.DEFAULT_MAC_ADDRESS, connectionInfo.getBSSID());
- }
-
- /**
- * Test that connected SSID and BSSID are not exposed to an app that does not have the
- * appropriate permissions, when canAccessScanResults raises a SecurityException.
- * Also tests that {@link WifiStateMachine#syncRequestConnectionInfo(String)} always
- * returns a copy of WifiInfo.
- */
- @Test
- public void testConnectedIdsAreHiddenOnSecurityException() throws Exception {
- WifiInfo wifiInfo = mWsm.getWifiInfo();
-
- // Get into a connected state, with known BSSID and SSID
- connect();
- assertEquals(sBSSID, wifiInfo.getBSSID());
- assertEquals(sWifiSsid, wifiInfo.getWifiSsid());
-
- when(mWifiPermissionsUtil.canAccessScanResults(anyString(), eq(TEST_UID), anyInt()))
- .thenThrow(new SecurityException());
-
- WifiInfo connectionInfo = mWsm.syncRequestConnectionInfo(mContext.getOpPackageName(),
- TEST_UID);
-
- assertNotEquals(wifiInfo, connectionInfo);
- assertEquals(WifiSsid.NONE, connectionInfo.getSSID());
- assertEquals(WifiInfo.DEFAULT_MAC_ADDRESS, connectionInfo.getBSSID());
- }
-
- /**
- * Test that connected SSID and BSSID are exposed to system server
- */
- @Test
public void testConnectedIdsAreVisibleFromSystemServer() throws Exception {
- when(mWifiPermissionsWrapper.getLocalMacAddressPermission(anyInt()))
- .thenReturn(PackageManager.PERMISSION_GRANTED);
-
WifiInfo wifiInfo = mWsm.getWifiInfo();
// Get into a connected state, with known BSSID and SSID
connect();
assertEquals(sBSSID, wifiInfo.getBSSID());
assertEquals(sWifiSsid, wifiInfo.getWifiSsid());
- when(mWifiPermissionsUtil.canAccessScanResults(anyString(), eq(TEST_UID), anyInt()))
- .thenReturn(true);
-
- WifiInfo connectionInfo = mWsm.syncRequestConnectionInfo(mContext.getOpPackageName(),
- TEST_UID);
+ WifiInfo connectionInfo = mWsm.syncRequestConnectionInfo();
assertNotEquals(wifiInfo, connectionInfo);
assertEquals(wifiInfo.getSSID(), connectionInfo.getSSID());
@@ -1974,32 +1917,6 @@ public class WifiStateMachineTest {
}
/**
- * Test that connected SSID and BSSID are exposed to an app that does have the
- * appropriate permissions.
- */
- @Test
- public void testConnectedIdsAreVisibleFromPermittedApp() throws Exception {
- WifiInfo wifiInfo = mWsm.getWifiInfo();
-
- // Get into a connected state, with known BSSID and SSID
- connect();
- assertEquals(sBSSID, wifiInfo.getBSSID());
- assertEquals(sWifiSsid, wifiInfo.getWifiSsid());
-
- when(mWifiPermissionsUtil.canAccessScanResults(anyString(), eq(TEST_UID), anyInt()))
- .thenReturn(true);
-
- WifiInfo connectionInfo = mWsm.syncRequestConnectionInfo(mContext.getOpPackageName(),
- TEST_UID);
-
- assertNotEquals(wifiInfo, connectionInfo);
- assertEquals(wifiInfo.getSSID(), connectionInfo.getSSID());
- assertEquals(wifiInfo.getBSSID(), connectionInfo.getBSSID());
- // Access to our MAC address uses a different permission, make sure it is not granted
- assertEquals(WifiInfo.DEFAULT_MAC_ADDRESS, connectionInfo.getMacAddress());
- }
-
- /**
* Test that reconnectCommand() triggers connectivity scan when WifiStateMachine
* is in DisconnectedMode.
*/