diff options
author | Michael Plass <mplass@google.com> | 2018-02-02 17:29:05 -0800 |
---|---|---|
committer | Michael Plass <mplass@google.com> | 2018-02-05 15:01:30 -0800 |
commit | 7386dc141c1bb8d0da7cebe231326e1642289a9c (patch) | |
tree | a0ab668cb5ce41001a0437f6dd4f15360e038810 /tests | |
parent | 993290c3bff01d19df80c10804a6afb2dec6d484 (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.java | 70 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java | 87 |
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. */ |