Remove LooperMode.LEGACY usage from settings/development
Bug: 331566352 Test: atest Change-Id: I3be4baff5cf556a875af8b4410cc2dd870fd290c
This commit is contained in:
@@ -28,21 +28,26 @@ import android.hardware.dumpstate.V1_1.IDumpstateDevice;
|
|||||||
|
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreference;
|
import androidx.preference.SwitchPreference;
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.junit.MockitoJUnit;
|
||||||
|
import org.mockito.junit.MockitoRule;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.shadows.ShadowLooper;
|
||||||
import org.robolectric.annotation.LooperMode;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@LooperMode(LooperMode.Mode.LEGACY)
|
|
||||||
public final class EnableVerboseVendorLoggingPreferenceControllerTest {
|
public final class EnableVerboseVendorLoggingPreferenceControllerTest {
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private SwitchPreference mPreference;
|
private SwitchPreference mPreference;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -57,8 +62,7 @@ public final class EnableVerboseVendorLoggingPreferenceControllerTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
MockitoAnnotations.initMocks(this);
|
mContext = ApplicationProvider.getApplicationContext();
|
||||||
mContext = RuntimeEnvironment.application;
|
|
||||||
mController = spy(new EnableVerboseVendorLoggingPreferenceController(mContext));
|
mController = spy(new EnableVerboseVendorLoggingPreferenceController(mContext));
|
||||||
doReturn(mIDumpstateDevice).when(mController).getDumpstateDeviceService();
|
doReturn(mIDumpstateDevice).when(mController).getDumpstateDeviceService();
|
||||||
doReturn(mIDumpstateDeviceAidl).when(mController).getDumpstateDeviceAidlService();
|
doReturn(mIDumpstateDeviceAidl).when(mController).getDumpstateDeviceAidlService();
|
||||||
@@ -129,6 +133,7 @@ public final class EnableVerboseVendorLoggingPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.setVerboseLoggingEnabled(false);
|
mController.setVerboseLoggingEnabled(false);
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
verify(mPreference).setChecked(false);
|
verify(mPreference).setChecked(false);
|
||||||
}
|
}
|
||||||
@@ -140,6 +145,7 @@ public final class EnableVerboseVendorLoggingPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.setVerboseLoggingEnabled(false);
|
mController.setVerboseLoggingEnabled(false);
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
verify(mPreference).setChecked(false);
|
verify(mPreference).setChecked(false);
|
||||||
}
|
}
|
||||||
@@ -151,6 +157,7 @@ public final class EnableVerboseVendorLoggingPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.setVerboseLoggingEnabled(true);
|
mController.setVerboseLoggingEnabled(true);
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
verify(mPreference).setChecked(true);
|
verify(mPreference).setChecked(true);
|
||||||
}
|
}
|
||||||
@@ -162,6 +169,7 @@ public final class EnableVerboseVendorLoggingPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.setVerboseLoggingEnabled(true);
|
mController.setVerboseLoggingEnabled(true);
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
verify(mPreference).setChecked(true);
|
verify(mPreference).setChecked(true);
|
||||||
}
|
}
|
||||||
|
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.content.om.IOverlayManager;
|
import android.content.om.IOverlayManager;
|
||||||
import android.content.om.OverlayInfo;
|
import android.content.om.OverlayInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
@@ -33,27 +34,33 @@ import android.os.RemoteException;
|
|||||||
|
|
||||||
import androidx.preference.ListPreference;
|
import androidx.preference.ListPreference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.junit.MockitoJUnit;
|
||||||
|
import org.mockito.junit.MockitoRule;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.android.util.concurrent.PausedExecutorService;
|
||||||
import org.robolectric.annotation.LooperMode;
|
import org.robolectric.shadows.ShadowLooper;
|
||||||
import org.robolectric.shadows.ShadowApplication;
|
import org.robolectric.shadows.ShadowPausedAsyncTask;
|
||||||
import org.robolectric.shadows.ShadowToast;
|
import org.robolectric.shadows.ShadowToast;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@LooperMode(LooperMode.Mode.LEGACY)
|
|
||||||
public class OverlayCategoryPreferenceControllerTest {
|
public class OverlayCategoryPreferenceControllerTest {
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||||
|
|
||||||
|
|
||||||
private static final OverlayInfo ONE_DISABLED = createFakeOverlay("overlay.one", false, 1);
|
private static final OverlayInfo ONE_DISABLED = createFakeOverlay("overlay.one", false, 1);
|
||||||
private static final OverlayInfo ONE_ENABLED = createFakeOverlay("overlay.one", true, 1);
|
private static final OverlayInfo ONE_ENABLED = createFakeOverlay("overlay.one", true, 1);
|
||||||
private static final OverlayInfo TWO_DISABLED = createFakeOverlay("overlay.two", false, 2);
|
private static final OverlayInfo TWO_DISABLED = createFakeOverlay("overlay.two", false, 2);
|
||||||
@@ -67,15 +74,19 @@ public class OverlayCategoryPreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private ListPreference mPreference;
|
private ListPreference mPreference;
|
||||||
private OverlayCategoryPreferenceController mController;
|
private OverlayCategoryPreferenceController mController;
|
||||||
|
private PausedExecutorService mExecutorService;
|
||||||
|
private Application mApplication;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
MockitoAnnotations.initMocks(this);
|
mApplication = ApplicationProvider.getApplicationContext();
|
||||||
mockCurrentOverlays();
|
mockCurrentOverlays();
|
||||||
when(mPackageManager.getApplicationInfo(any(), anyInt()))
|
when(mPackageManager.getApplicationInfo(any(), anyInt()))
|
||||||
.thenThrow(PackageManager.NameNotFoundException.class);
|
.thenThrow(PackageManager.NameNotFoundException.class);
|
||||||
mController = createController();
|
mController = createController();
|
||||||
mController.setPreference(mPreference);
|
mController.setPreference(mPreference);
|
||||||
|
mExecutorService = new PausedExecutorService();
|
||||||
|
ShadowPausedAsyncTask.overrideExecutor(mExecutorService);
|
||||||
}
|
}
|
||||||
|
|
||||||
Object mockCurrentOverlays(OverlayInfo... overlays) {
|
Object mockCurrentOverlays(OverlayInfo... overlays) {
|
||||||
@@ -111,7 +122,8 @@ public class OverlayCategoryPreferenceControllerTest {
|
|||||||
mockCurrentOverlays(ONE_DISABLED, TWO_DISABLED);
|
mockCurrentOverlays(ONE_DISABLED, TWO_DISABLED);
|
||||||
|
|
||||||
mController.onPreferenceChange(null, TWO_DISABLED.packageName);
|
mController.onPreferenceChange(null, TWO_DISABLED.packageName);
|
||||||
ShadowApplication.runBackgroundTasks();
|
mExecutorService.runAll();
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
verify(mOverlayManager)
|
verify(mOverlayManager)
|
||||||
.setEnabledExclusiveInCategory(eq(TWO_DISABLED.packageName), anyInt());
|
.setEnabledExclusiveInCategory(eq(TWO_DISABLED.packageName), anyInt());
|
||||||
@@ -124,10 +136,11 @@ public class OverlayCategoryPreferenceControllerTest {
|
|||||||
.thenReturn(false);
|
.thenReturn(false);
|
||||||
|
|
||||||
mController.onPreferenceChange(null, TWO_DISABLED.packageName);
|
mController.onPreferenceChange(null, TWO_DISABLED.packageName);
|
||||||
ShadowApplication.runBackgroundTasks();
|
mExecutorService.runAll();
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
||||||
RuntimeEnvironment.application.getString(R.string.overlay_toast_failed_to_apply));
|
mApplication.getString(R.string.overlay_toast_failed_to_apply));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -136,7 +149,8 @@ public class OverlayCategoryPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.onPreferenceChange(
|
mController.onPreferenceChange(
|
||||||
null, OverlayCategoryPreferenceController.PACKAGE_DEVICE_DEFAULT);
|
null, OverlayCategoryPreferenceController.PACKAGE_DEVICE_DEFAULT);
|
||||||
ShadowApplication.runBackgroundTasks();
|
mExecutorService.runAll();
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
verify(mOverlayManager).setEnabled(eq(TWO_ENABLED.packageName), eq(false), anyInt());
|
verify(mOverlayManager).setEnabled(eq(TWO_ENABLED.packageName), eq(false), anyInt());
|
||||||
}
|
}
|
||||||
@@ -149,10 +163,11 @@ public class OverlayCategoryPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.onPreferenceChange(
|
mController.onPreferenceChange(
|
||||||
null, OverlayCategoryPreferenceController.PACKAGE_DEVICE_DEFAULT);
|
null, OverlayCategoryPreferenceController.PACKAGE_DEVICE_DEFAULT);
|
||||||
ShadowApplication.runBackgroundTasks();
|
mExecutorService.runAll();
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
||||||
RuntimeEnvironment.application.getString(R.string.overlay_toast_failed_to_apply));
|
mApplication.getString(R.string.overlay_toast_failed_to_apply));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -163,10 +178,11 @@ public class OverlayCategoryPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.onPreferenceChange(
|
mController.onPreferenceChange(
|
||||||
null, OverlayCategoryPreferenceController.PACKAGE_DEVICE_DEFAULT);
|
null, OverlayCategoryPreferenceController.PACKAGE_DEVICE_DEFAULT);
|
||||||
ShadowApplication.runBackgroundTasks();
|
mExecutorService.runAll();
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
||||||
RuntimeEnvironment.application.getString(R.string.overlay_toast_failed_to_apply));
|
mApplication.getString(R.string.overlay_toast_failed_to_apply));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -208,13 +224,15 @@ public class OverlayCategoryPreferenceControllerTest {
|
|||||||
mController.displayPreference(screen);
|
mController.displayPreference(screen);
|
||||||
|
|
||||||
mController.onDeveloperOptionsSwitchDisabled();
|
mController.onDeveloperOptionsSwitchDisabled();
|
||||||
|
mExecutorService.runAll();
|
||||||
|
ShadowLooper.idleMainLooper();
|
||||||
|
|
||||||
verify(mPreference).setEnabled(false);
|
verify(mPreference).setEnabled(false);
|
||||||
verify(mOverlayManager).setEnabled(eq(ONE_ENABLED.packageName), eq(false), anyInt());
|
verify(mOverlayManager).setEnabled(eq(ONE_ENABLED.packageName), eq(false), anyInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
private OverlayCategoryPreferenceController createController() {
|
private OverlayCategoryPreferenceController createController() {
|
||||||
return new OverlayCategoryPreferenceController(RuntimeEnvironment.application,
|
return new OverlayCategoryPreferenceController(mApplication,
|
||||||
mPackageManager, mOverlayManager, TEST_CATEGORY);
|
mPackageManager, mOverlayManager, TEST_CATEGORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user