diff options
author | Rebecca Silberstein <silberst@google.com> | 2018-01-19 02:12:22 -0800 |
---|---|---|
committer | Rebecca Silberstein <silberst@google.com> | 2018-02-15 16:38:40 -0800 |
commit | e43399aaee292975f7db40947deeaa4d9fea5c59 (patch) | |
tree | db5b5a7e3a63fb2c895a0ae136121750def9b8e8 /tests | |
parent | bb9e01500bdc5268d0f903eab01093e2189581d9 (diff) |
WifiServiceImpl: directly call WifiApConfigStore
Directly call WifiApConfigStore (on the WSM thread) when
get/setWifiApConfiguration is called. We do not require that this be
plumbed through SoftApManager since ap config retrieval is decoupled
from softap startup. Tethering is explicitly stopped and restarted
when the config is changed in Settings.
This additionally addresses a race with setting/getting the ap config.
Bug: 71784834
Bug: 72070781
Test: manually verified configs viewed and modified in settings
Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Test: wifi integration tests
Change-Id: I176803f962aa671574e9c110b83594a39a578716
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java | 36 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java | 4 |
2 files changed, 26 insertions, 14 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java index bad1dab90..db76fcb1e 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java @@ -182,6 +182,7 @@ public class WifiServiceImplTest { @Mock ContentResolver mContentResolver; @Mock PackageManager mPackageManager; @Mock UserManager mUserManager; + @Mock WifiApConfigStore mWifiApConfigStore; @Mock WifiConfiguration mApConfig; @Mock ActivityManager mActivityManager; @Mock AppOpsManager mAppOpsManager; @@ -279,6 +280,7 @@ public class WifiServiceImplTest { when(mContext.getResources()).thenReturn(mResources); when(mContext.getContentResolver()).thenReturn(mContentResolver); when(mContext.getPackageManager()).thenReturn(mPackageManager); + when(mWifiInjector.getWifiApConfigStore()).thenReturn(mWifiApConfigStore); doNothing().when(mFrameworkFacade).registerContentObserver(eq(mContext), any(), anyBoolean(), any()); when(mContext.getSystemService(Context.ACTIVITY_SERVICE)).thenReturn(mActivityManager); @@ -799,12 +801,14 @@ public class WifiServiceImplTest { * * @throws SecurityException */ - @Test(expected = SecurityException.class) + @Test public void testSetWifiApConfigurationNotSavedWithoutPermission() { when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(false); WifiConfiguration apConfig = new WifiConfiguration(); - mWifiServiceImpl.setWifiApConfiguration(apConfig, TEST_PACKAGE_NAME); - verify(mWifiStateMachine, never()).setWifiApConfiguration(eq(apConfig)); + try { + mWifiServiceImpl.setWifiApConfiguration(apConfig, TEST_PACKAGE_NAME); + fail("Expected SecurityException"); + } catch (SecurityException e) { } } /** @@ -815,8 +819,9 @@ public class WifiServiceImplTest { when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true); WifiConfiguration apConfig = new WifiConfiguration(); mWifiServiceImpl.setWifiApConfiguration(apConfig, TEST_PACKAGE_NAME); + mLooper.dispatchAll(); verifyCheckChangePermission(TEST_PACKAGE_NAME); - verify(mWifiStateMachine).setWifiApConfiguration(eq(apConfig)); + verify(mWifiApConfigStore).setApConfiguration(eq(apConfig)); } /** @@ -826,7 +831,7 @@ public class WifiServiceImplTest { public void testSetWifiApConfigurationNullConfigNotSaved() { when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true); mWifiServiceImpl.setWifiApConfiguration(null, TEST_PACKAGE_NAME); - verify(mWifiStateMachine, never()).setWifiApConfiguration(isNull(WifiConfiguration.class)); + verify(mWifiApConfigStore, never()).setApConfiguration(isNull(WifiConfiguration.class)); } /** @@ -834,11 +839,14 @@ public class WifiServiceImplTest { * * @throws SecurityException */ - @Test(expected = SecurityException.class) + @Test public void testGetWifiApConfigurationNotReturnedWithoutPermission() { when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(false); - mWifiServiceImpl.getWifiApConfiguration(); - verify(mWifiStateMachine, never()).syncGetWifiApConfiguration(); + try { + mWifiServiceImpl.getWifiApConfiguration(); + fail("Expected a SecurityException"); + } catch (SecurityException e) { + } } /** @@ -846,9 +854,17 @@ public class WifiServiceImplTest { */ @Test public void testGetWifiApConfigurationSuccess() { + setupWifiStateMachineHandlerForRunWithScissors(); + + mWifiServiceImpl = new WifiServiceImpl(mContext, mWifiInjector, mAsyncChannel); + mWifiServiceImpl.setWifiHandlerLogForTest(mLog); + + when(mFrameworkFacade.inStorageManagerCryptKeeperBounce()).thenReturn(false); + when(mSettingsStore.isWifiToggleEnabled()).thenReturn(false); + when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true); WifiConfiguration apConfig = new WifiConfiguration(); - when(mWifiStateMachine.syncGetWifiApConfiguration()).thenReturn(apConfig); + when(mWifiApConfigStore.getApConfiguration()).thenReturn(apConfig); assertEquals(apConfig, mWifiServiceImpl.getWifiApConfiguration()); } @@ -1190,7 +1206,7 @@ public class WifiServiceImplTest { * Ensure that we handle scan results failure when posting the runnable to handler fails. */ // @Test - public void testGetScanResultsFailureInRunWithScisccors() { + public void testGetScanResultsFailureInRunWithScissors() { setupWifiStateMachineHandlerForRunWithScissors(); doReturn(false).when(mHandlerSpyForWsmRunWithScissors) .runWithScissors(any(), anyLong()); diff --git a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java index 57cf02034..50555975d 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java @@ -328,7 +328,6 @@ public class WifiStateMachineTest { @Mock SupplicantStateTracker mSupplicantStateTracker; @Mock WifiMetrics mWifiMetrics; @Mock UserManager mUserManager; - @Mock WifiApConfigStore mApConfigStore; @Mock BackupManagerProxy mBackupManagerProxy; @Mock WifiCountryCode mCountryCode; @Mock WifiInjector mWifiInjector; @@ -419,9 +418,6 @@ public class WifiStateMachineTest { WifiManager.WIFI_FREQUENCY_BAND_AUTO)).thenReturn( WifiManager.WIFI_FREQUENCY_BAND_AUTO); - when(mFrameworkFacade.makeApConfigStore(eq(mContext), eq(mBackupManagerProxy))) - .thenReturn(mApConfigStore); - when(mFrameworkFacade.makeSupplicantStateTracker( any(Context.class), any(WifiConfigManager.class), any(Handler.class))).thenReturn(mSupplicantStateTracker); |