Fix crash when pausing DndCondition.

- check whether the receiver is registered before trying to unregister
it.

Change-Id: Ia949f5a90b8866f01684dc2c7797e87d8dc7804e
Fixes: 74073233
Test: make RunSettingsRoboTests
This commit is contained in:
Doris Ling
2018-03-21 14:27:29 -07:00
parent 91b6d17b8d
commit b21dcf67da
2 changed files with 18 additions and 2 deletions

View File

@@ -18,6 +18,7 @@ package com.android.settings.dashboard.conditional;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -26,6 +27,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -47,6 +49,7 @@ public class DndConditionTest {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
FakeFeatureFactory.setupForTest();
when(mConditionManager.getContext()).thenReturn(mContext);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
}
@@ -90,4 +93,15 @@ public class DndConditionTest {
verify(mContext).unregisterReceiver(any(DndCondition.Receiver.class));
}
@Test
public void onPause_noReceiverRegistered_shouldNotUnregisterReceiver() {
DndCondition condition = new DndCondition(mConditionManager);
condition.onPause();
reset(mContext);
condition.onPause();
verify(mContext, never()).unregisterReceiver(any(DndCondition.Receiver.class));
}
}