[Settings] Fix roboletric test fail and add new test case.
Bug: 287177689
Test: atest passed
Change-Id: If927f4e4bf7ee9702e865e77f350164a93729940
diff --git a/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java
index e8bd27d..56ea33c 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java
@@ -18,15 +18,15 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import android.annotation.NonNull;
import android.content.Context;
import android.net.Uri;
import androidx.lifecycle.LiveData;
+import androidx.lifecycle.Observer;
import androidx.slice.Slice;
import org.junit.Before;
@@ -80,7 +80,6 @@
@Test
public void onStop_unregisterObserver() {
- when(mLiveData.hasActiveObservers()).thenReturn(true);
mController.onStart();
mController.onStop();
@@ -88,20 +87,18 @@
}
@Test
- public void onStop_noActiveObservers_notUnregisterObserver() {
- when(mLiveData.hasActiveObservers()).thenReturn(false);
+ public void onStop_unregisterObserverAndHasSecurityException_noCrash() {
+ LiveData<Slice> liveData = new LiveData<Slice>() {
+ @Override
+ public void removeObserver(@NonNull Observer<? super Slice> observer) {
+ super.removeObserver(observer);
+ throw new SecurityException("SecurityException Test");
+ }
+ };
+ mController.mLiveData = liveData;
mController.onStart();
mController.onStop();
- verify(mLiveData, never()).removeObserver(mController);
- }
-
- @Test
- public void onStop_notRegisterObserver_notUnregisterObserver() {
- when(mLiveData.hasActiveObservers()).thenReturn(true);
-
- mController.onStop();
- verify(mLiveData, never()).removeObserver(mController);
}
@Test