Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd47cec5 authored by Suprabh Shukla's avatar Suprabh Shukla
Browse files

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
parent ac276482
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -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);
        }
+9 −0
Original line number Diff line number Diff line
@@ -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) {