diff options
author | Rebecca Silberstein <silberst@google.com> | 2018-03-27 00:40:55 -0700 |
---|---|---|
committer | Rebecca Silberstein <silberst@google.com> | 2018-03-30 10:13:11 -0700 |
commit | e2b352adfaebef237ae07fbec89e0ef554d81db2 (patch) | |
tree | a5c188fe74a538b872487f5432758caa424cb698 /tests | |
parent | c4002658545b95d0f7f1686e925072518416a78e (diff) |
WifiServiceImpl: allow setWifiApConfiguration to return false
The api for setWifiApConfiguration allows for config saves to return
false, but the implementation is void. This CL allows the API to
actually return a boolean indicating success/failure and adds an ap
specific validation check. This CL also adds unittests.
Bug: 67601382
Test: frameworks/base/wifi/tests/runtests.sh
Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Test: manually update ap config in settings and verify save
Test: wifi integration tests
Change-Id: If09fffc66415d9d3d3f4f386aaff98b0a103d2f4
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java index 72e463100..47b92d4ee 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java @@ -63,10 +63,10 @@ import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.Resources; -import android.net.IpConfiguration; import android.net.wifi.ISoftApCallback; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; +import android.net.wifi.WifiConfiguration.KeyMgmt; import android.net.wifi.WifiEnterpriseConfig; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; @@ -351,24 +351,6 @@ public class WifiServiceImplTest { } /** - * Tests the isValid() check for StaticIpConfigurations, ensuring that configurations with null - * ipAddress are rejected, and configurations with ipAddresses are valid. - */ - @Test - public void testStaticIpConfigurationValidityCheck() { - WifiConfiguration conf = WifiConfigurationTestUtil.createOpenNetwork(); - IpConfiguration ipConf = - WifiConfigurationTestUtil.createStaticIpConfigurationWithStaticProxy(); - conf.setIpConfiguration(ipConf); - // Ensure staticIpConfiguration with IP Address is valid - assertTrue(mWifiServiceImpl.isValid(conf)); - ipConf.staticIpConfiguration.ipAddress = null; - // Ensure staticIpConfiguration with null IP Address it is not valid - conf.setIpConfiguration(ipConf); - assertFalse(mWifiServiceImpl.isValid(conf)); - } - - /** * Ensure WifiMetrics.dump() is the only dump called when 'dumpsys wifi WifiMetricsProto' is * called. This is required to support simple metrics collection via dumpsys */ @@ -382,7 +364,6 @@ public class WifiServiceImplTest { .dump(any(FileDescriptor.class), any(PrintWriter.class), any(String[].class)); } - /** * Ensure WifiServiceImpl.dump() doesn't throw an NPE when executed with null args */ @@ -806,8 +787,9 @@ public class WifiServiceImplTest { @Test public void testSetWifiApConfigurationSuccess() { when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true); - WifiConfiguration apConfig = new WifiConfiguration(); - mWifiServiceImpl.setWifiApConfiguration(apConfig, TEST_PACKAGE_NAME); + WifiConfiguration apConfig = createValidSoftApConfiguration(); + + assertTrue(mWifiServiceImpl.setWifiApConfiguration(apConfig, TEST_PACKAGE_NAME)); mLooper.dispatchAll(); verifyCheckChangePermission(TEST_PACKAGE_NAME); verify(mWifiApConfigStore).setApConfiguration(eq(apConfig)); @@ -819,11 +801,22 @@ public class WifiServiceImplTest { @Test public void testSetWifiApConfigurationNullConfigNotSaved() { when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true); - mWifiServiceImpl.setWifiApConfiguration(null, TEST_PACKAGE_NAME); + assertFalse(mWifiServiceImpl.setWifiApConfiguration(null, TEST_PACKAGE_NAME)); verify(mWifiApConfigStore, never()).setApConfiguration(isNull(WifiConfiguration.class)); } /** + * Ensure that an invalid config does not overwrite the saved ap config. + */ + @Test + public void testSetWifiApConfigurationWithInvalidConfigNotSaved() { + when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true); + assertFalse(mWifiServiceImpl.setWifiApConfiguration(new WifiConfiguration(), + TEST_PACKAGE_NAME)); + verify(mWifiApConfigStore, never()).setApConfiguration(any()); + } + + /** * Ensure unpermitted callers are not able to retrieve the softap config. * * @throws SecurityException @@ -974,7 +967,7 @@ public class WifiServiceImplTest { */ @Test public void testStartSoftApWithPermissionsAndValidConfig() { - WifiConfiguration config = new WifiConfiguration(); + WifiConfiguration config = createValidSoftApConfiguration(); boolean result = mWifiServiceImpl.startSoftAp(config); assertTrue(result); verify(mWifiController) @@ -2557,4 +2550,14 @@ public class WifiServiceImplTest { verify(mAppOpsManager, atLeastOnce()).noteOp( AppOpsManager.OPSTR_CHANGE_WIFI_STATE, Process.myUid(), callingPackageName); } + + private WifiConfiguration createValidSoftApConfiguration() { + WifiConfiguration apConfig = new WifiConfiguration(); + apConfig.SSID = "TestAp"; + apConfig.preSharedKey = "thisIsABadPassword"; + apConfig.allowedKeyManagement.set(KeyMgmt.WPA2_PSK); + apConfig.apBand = WifiConfiguration.AP_BAND_2GHZ; + + return apConfig; + } } |