diff options
author | Rebecca Silberstein <silberst@google.com> | 2017-03-30 15:54:55 -0700 |
---|---|---|
committer | Rebecca Silberstein <silberst@google.com> | 2017-04-15 22:45:21 +0000 |
commit | 184a4207f60c2255486c28b45724c71738d087b7 (patch) | |
tree | 66c7cf005ffc07d6a9ade0e555bb7e9de434da45 /tests | |
parent | 6b5a927441eb803a9c81eb4b06f06c1b0182ccd3 (diff) |
WifiServiceImpl: test setWifiEnabled
Before adding mode checks, add unit tests to check current behavior.
Bug: 36358238
Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Change-Id: I8de27f2bceebb589b173d91d79dfa3a5afe6a675
Merged-In: I8de27f2bceebb589b173d91d79dfa3a5afe6a675
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java index 4cdd0f684..5ffe30d50 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java @@ -67,6 +67,7 @@ public class WifiServiceImplTest { private static final String TAG = "WifiServiceImplTest"; private static final int DEFAULT_VERBOSE_LOGGING = 0; + private static final String TEST_PACKAGE_NAME = "TestPackage"; @Mock Context mContext; @Mock WifiInjector mWifiInjector; @@ -230,6 +231,73 @@ public class WifiServiceImplTest { .dump(any(FileDescriptor.class), any(PrintWriter.class), any(String[].class)); } + + /** + * Verify that wifi can be enabled by a caller with WIFI_STATE_CHANGE permission when wifi is + * off (no hotspot, no airplane mode). + */ + @Test + public void testSetWifiEnabledSuccess() throws Exception { + when(mSettingsStore.handleWifiToggled(eq(true))).thenReturn(true); + assertTrue(mWifiServiceImpl.setWifiEnabled(TEST_PACKAGE_NAME, true)); + verify(mWifiController).sendMessage(eq(CMD_WIFI_TOGGLED)); + } + + /** + * Verify that the CMD_TOGGLE_WIFI message won't be sent if wifi is already on. + */ + @Test + public void testSetWifiEnabledNoToggle() throws Exception { + when(mSettingsStore.handleWifiToggled(eq(true))).thenReturn(false); + assertTrue(mWifiServiceImpl.setWifiEnabled(TEST_PACKAGE_NAME, true)); + verify(mWifiController, never()).sendMessage(eq(CMD_WIFI_TOGGLED)); + } + + /** + * Verify a SecurityException is thrown if a caller does not have the correct permission to + * toggle wifi. + */ + @Test(expected = SecurityException.class) + public void testSetWifiEnableWithoutPermission() throws Exception { + doThrow(new SecurityException()).when(mContext) + .enforceCallingOrSelfPermission(eq(android.Manifest.permission.CHANGE_WIFI_STATE), + eq("WifiService")); + mWifiServiceImpl.setWifiEnabled(TEST_PACKAGE_NAME, true); + } + + /** + * Verify that wifi can be disabled by a caller with WIFI_STATE_CHANGE permission when wifi is + * on. + */ + @Test + public void testSetWifiDisabledSuccess() throws Exception { + when(mSettingsStore.handleWifiToggled(eq(false))).thenReturn(true); + assertTrue(mWifiServiceImpl.setWifiEnabled(TEST_PACKAGE_NAME, false)); + verify(mWifiController).sendMessage(eq(CMD_WIFI_TOGGLED)); + } + + /** + * Verify that CMD_TOGGLE_WIFI message won't be sent if wifi is already off. + */ + @Test + public void testSetWifiDisabledNoToggle() throws Exception { + when(mSettingsStore.handleWifiToggled(eq(false))).thenReturn(false); + assertTrue(mWifiServiceImpl.setWifiEnabled(TEST_PACKAGE_NAME, false)); + verify(mWifiController, never()).sendMessage(eq(CMD_WIFI_TOGGLED)); + } + + /** + * Verify a SecurityException is thrown if a caller does not have the correct permission to + * toggle wifi. + */ + @Test(expected = SecurityException.class) + public void testSetWifiDisabledWithoutPermission() throws Exception { + doThrow(new SecurityException()).when(mContext) + .enforceCallingOrSelfPermission(eq(android.Manifest.permission.CHANGE_WIFI_STATE), + eq("WifiService")); + mWifiServiceImpl.setWifiEnabled(TEST_PACKAGE_NAME, false); + } + /** * Ensure unpermitted callers cannot write the SoftApConfiguration. * |