Merge "Add unit tests for AttentionManagerService. Make sure it won't crash when OnSwitchUser() is invoked while the bound service is null." into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-17 20:28:20 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 1 deletions

View File

@@ -309,7 +309,8 @@ public class AttentionManagerService extends SystemService {
} }
@GuardedBy("mLock") @GuardedBy("mLock")
private UserState getOrCreateUserStateLocked(int userId) { @VisibleForTesting
protected UserState getOrCreateUserStateLocked(int userId) {
UserState result = mUserStates.get(userId); UserState result = mUserStates.get(userId);
if (result == null) { if (result == null) {
result = new UserState(userId, mContext, mLock, mComponentName); result = new UserState(userId, mContext, mLock, mComponentName);

View File

@@ -132,6 +132,13 @@ public class AttentionManagerServiceTest {
verify(callback).onSuccess(anyInt(), anyLong()); verify(callback).onSuccess(anyInt(), anyLong());
} }
@Test
public void testOnSwitchUser_noCrashCurrentServiceIsNull() {
final int userId = 10;
mSpyAttentionManager.getOrCreateUserStateLocked(userId);
mSpyAttentionManager.onSwitchUser(userId);
}
private class MockIAttentionService implements IAttentionService { private class MockIAttentionService implements IAttentionService {
public void checkAttention(IAttentionCallback callback) throws RemoteException { public void checkAttention(IAttentionCallback callback) throws RemoteException {
callback.onSuccess(0, 0); callback.onSuccess(0, 0);