Loading src/com/android/settings/dashboard/conditional/Condition.java +9 −2 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public abstract class Condition { protected final ConditionManager mManager; protected final MetricsFeatureProvider mMetricsFeatureProvider; protected boolean mReceiverRegistered; private boolean mIsSilenced; private boolean mIsActive; Loading Loading @@ -110,9 +111,15 @@ public abstract class Condition { return; } if (silenced) { if (!mReceiverRegistered) { mManager.getContext().registerReceiver(receiver, getIntentFilter()); mReceiverRegistered = true; } } else { if (mReceiverRegistered) { mManager.getContext().unregisterReceiver(receiver); mReceiverRegistered = false; } } } Loading tests/robotests/src/com/android/settings/dashboard/conditional/ConditionTest.java +16 −3 Original line number Diff line number Diff line Loading @@ -29,11 +29,14 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -45,14 +48,14 @@ public class ConditionTest { private ConditionManager mConditionManager; @Mock private MetricsFeatureProvider mMetricsFeatureProvider; @Mock private Context mContext; private Context mContext; private TestCondition mCondition; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mCondition = new TestCondition(mConditionManager, mMetricsFeatureProvider); when(mConditionManager.getContext()).thenReturn(mContext); } Loading Loading @@ -82,12 +85,22 @@ public class ConditionTest { } @Test public void onSilenceChanged_notSilenced_shouldUnregisterReceiver() { public void onSilenceChanged_notSilenced_registered_shouldUnregisterReceiver() { mCondition.onSilenceChanged(true); mCondition.onSilenceChanged(false); verify(mContext).unregisterReceiver(TestCondition.mReceiver); } @Test public void onSilenceChanged_notSilenced_notRegistered_shouldNotCrash() { mCondition.onSilenceChanged(false); verify(mContext, never()).unregisterReceiver(TestCondition.mReceiver); // no crash } private static final class TestCondition extends Condition { private static final int TEST_METRIC_CONSTANT = 1234; Loading Loading
src/com/android/settings/dashboard/conditional/Condition.java +9 −2 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public abstract class Condition { protected final ConditionManager mManager; protected final MetricsFeatureProvider mMetricsFeatureProvider; protected boolean mReceiverRegistered; private boolean mIsSilenced; private boolean mIsActive; Loading Loading @@ -110,9 +111,15 @@ public abstract class Condition { return; } if (silenced) { if (!mReceiverRegistered) { mManager.getContext().registerReceiver(receiver, getIntentFilter()); mReceiverRegistered = true; } } else { if (mReceiverRegistered) { mManager.getContext().unregisterReceiver(receiver); mReceiverRegistered = false; } } } Loading
tests/robotests/src/com/android/settings/dashboard/conditional/ConditionTest.java +16 −3 Original line number Diff line number Diff line Loading @@ -29,11 +29,14 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -45,14 +48,14 @@ public class ConditionTest { private ConditionManager mConditionManager; @Mock private MetricsFeatureProvider mMetricsFeatureProvider; @Mock private Context mContext; private Context mContext; private TestCondition mCondition; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mCondition = new TestCondition(mConditionManager, mMetricsFeatureProvider); when(mConditionManager.getContext()).thenReturn(mContext); } Loading Loading @@ -82,12 +85,22 @@ public class ConditionTest { } @Test public void onSilenceChanged_notSilenced_shouldUnregisterReceiver() { public void onSilenceChanged_notSilenced_registered_shouldUnregisterReceiver() { mCondition.onSilenceChanged(true); mCondition.onSilenceChanged(false); verify(mContext).unregisterReceiver(TestCondition.mReceiver); } @Test public void onSilenceChanged_notSilenced_notRegistered_shouldNotCrash() { mCondition.onSilenceChanged(false); verify(mContext, never()).unregisterReceiver(TestCondition.mReceiver); // no crash } private static final class TestCondition extends Condition { private static final int TEST_METRIC_CONSTANT = 1234; Loading