diff options
| author | 2020-03-18 17:31:02 +0100 | |
|---|---|---|
| committer | 2020-03-18 17:39:27 +0100 | |
| commit | 9094f6ac10103d0dbc3f3baf46ac27da0944d904 (patch) | |
| tree | 8290ba94913b2b080c189fd547671fd8bf0e1b0a | |
| parent | 711ba26816dc2102578ab087c7919dcc9cc9be9f (diff) | |
Mock BatterySaverStateMachine in PowerManagerServiceTests
Mock out BatterySaverStateMachine, so that PowerManagerServiceTests
don't depend on implementation of the class.
BatterySaverStateMachine lead to a crash on a device with over 1 day uptime,
because it called a method that couldn't be mocked on a BatterySaverController mock.
Test: atest com.android.server.power.PowerManagerServiceTest
Bug: 151828714
Change-Id: I6bdf0ae98f58b99f617ea3ae6addcc484aeb30a6
| -rw-r--r-- | services/core/java/com/android/server/power/PowerManagerService.java | 9 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java | 8 |
2 files changed, 15 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 294deba459fe..f9efaaa46de6 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -780,6 +780,11 @@ public final class PowerManagerService extends SystemService batterySaverPolicy, batterySavingStats); } + BatterySaverStateMachine createBatterySaverStateMachine(Object lock, Context context, + BatterySaverController batterySaverController) { + return new BatterySaverStateMachine(lock, context, batterySaverController); + } + NativeWrapper createNativeWrapper() { return new NativeWrapper(); } @@ -864,8 +869,8 @@ public final class PowerManagerService extends SystemService mInjector.createBatterySaverPolicy(mLock, mContext, mBatterySavingStats); mBatterySaverController = mInjector.createBatterySaverController(mLock, mContext, mBatterySaverPolicy, mBatterySavingStats); - mBatterySaverStateMachine = new BatterySaverStateMachine( - mLock, mContext, mBatterySaverController); + mBatterySaverStateMachine = mInjector.createBatterySaverStateMachine(mLock, mContext, + mBatterySaverController); mInattentiveSleepWarningOverlayController = mInjector.createInattentiveSleepWarningController(); diff --git a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java index 5e8de42f8ce0..1a4ce8aa97f8 100644 --- a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java @@ -83,6 +83,7 @@ import com.android.server.power.PowerManagerService.NativeWrapper; import com.android.server.power.PowerManagerService.UserSwitchedReceiver; import com.android.server.power.batterysaver.BatterySaverController; import com.android.server.power.batterysaver.BatterySaverPolicy; +import com.android.server.power.batterysaver.BatterySaverStateMachine; import com.android.server.power.batterysaver.BatterySavingStats; import org.junit.After; @@ -109,6 +110,7 @@ public class PowerManagerServiceTest { @Mock private BatterySaverController mBatterySaverControllerMock; @Mock private BatterySaverPolicy mBatterySaverPolicyMock; + @Mock private BatterySaverStateMachine mBatterySaverStateMachineMock; @Mock private LightsManager mLightsManagerMock; @Mock private DisplayManagerInternal mDisplayManagerInternalMock; @Mock private BatteryManagerInternal mBatteryManagerInternalMock; @@ -216,6 +218,12 @@ public class PowerManagerServiceTest { } @Override + BatterySaverStateMachine createBatterySaverStateMachine(Object lock, Context context, + BatterySaverController batterySaverController) { + return mBatterySaverStateMachineMock; + } + + @Override NativeWrapper createNativeWrapper() { return mNativeWrapperMock; } |