Added test for enabling wifi for demo user

Earlier change to resolve merge conflicts was breaking the current test
because mocked context was used to get wifi manager. Mocking wifi
manager to fix the test and added a check that setWifiEnabled is called
when wifi is not already on.

Test: adb shell am instrument -e class
com.android.server.retaildemo.RetailDemoModeServiceTest -w
com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner

Bug: 31833031
Change-Id: Idd123d50df6ee6db51417645fc877abebe555dc0
This commit is contained in:
Suprabh Shukla
2016-09-29 19:06:26 -07:00
parent ac27648255
commit cd47cec57d
2 changed files with 12 additions and 11 deletions

View File

@@ -466,8 +466,8 @@ public class RetailDemoModeService extends SystemService {
mInjector.getSystemUsersConfiguration(), userId);
mInjector.turnOffAllFlashLights(mCameraIdsWithFlash);
muteVolumeStreams();
if (!mInjector.isWifiEnabled()) {
mInjector.enableWifi();
if (!mInjector.getWifiManager().isWifiEnabled()) {
mInjector.getWifiManager().setWifiEnabled(true);
}
// Disable lock screen for demo users.
mInjector.getLockPatternUtils().setLockScreenDisabled(true, userId);
@@ -535,7 +535,7 @@ public class RetailDemoModeService extends SystemService {
return mContext;
}
private WifiManager getWifiManager() {
WifiManager getWifiManager() {
if (mWifiManager == null) {
mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
}
@@ -644,14 +644,6 @@ public class RetailDemoModeService extends SystemService {
mWakeLock.release();
}
boolean isWifiEnabled() {
return getWifiManager().isWifiEnabled();
}
void enableWifi() {
getWifiManager().setWifiEnabled(true);
}
void logSessionDuration(int duration) {
MetricsLogger.histogram(getContext(), DEMO_SESSION_DURATION, duration);
}

View File

@@ -46,6 +46,7 @@ import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.media.AudioManager;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.FileUtils;
import android.os.Handler;
import android.os.Looper;
@@ -97,6 +98,7 @@ public class RetailDemoModeServiceTest {
private @Mock NotificationManager mNm;
private @Mock ActivityManagerInternal mAmi;
private @Mock AudioManager mAudioManager;
private @Mock WifiManager mWifiManager;
private @Mock LockPatternUtils mLockPatternUtils;
private MockPreloadAppsInstaller mPreloadAppsInstaller;
private MockContentResolver mContentResolver;
@@ -227,6 +229,7 @@ public class RetailDemoModeServiceTest {
final UserInfo userInfo = new UserInfo(TEST_DEMO_USER, "demo_user",
UserInfo.FLAG_DEMO | UserInfo.FLAG_EPHEMERAL);
when(mUm.getUserInfo(TEST_DEMO_USER)).thenReturn(userInfo);
when(mWifiManager.isWifiEnabled()).thenReturn(false);
final int minVolume = -111;
for (int stream : RetailDemoModeService.VOLUME_STREAMS_TO_MUTE) {
when(mAudioManager.getStreamMinVolume(stream)).thenReturn(minVolume);
@@ -238,6 +241,7 @@ public class RetailDemoModeServiceTest {
verify(mAudioManager).setStreamVolume(stream, minVolume, 0);
}
verify(mLockPatternUtils).setLockScreenDisabled(true, TEST_DEMO_USER);
verify(mWifiManager).setWifiEnabled(true);
}
private void setCameraPackage(String pkgName) {
@@ -320,6 +324,11 @@ public class RetailDemoModeServiceTest {
return mUm;
}
@Override
WifiManager getWifiManager() {
return mWifiManager;
}
@Override
void switchUser(int userId) {
if (mLatch != null) {