IMMS tests: fix broken tests

The test relied on another unrelated test
initializing the ContentProvider that DeviceConfig uses.

After Ia6f2ee781c431088cbb3417c1b6bac86cfce4c13, this is
no longer happening. Working around it for now to unblock tests.

Fixes: 272229177
Test: atest DefaultImeVisibilityApplierTest
Change-Id: I51e4f28b885b6dbdf64e759d5978b89c9039db6b
This commit is contained in:
Adrian Roos
2023-03-08 17:02:36 +00:00
parent c728095ce2
commit 28be584ac4
2 changed files with 18 additions and 0 deletions

View File

@@ -21,6 +21,8 @@ import static android.provider.InputMethodManagerDeviceConfig.KEY_HIDE_IME_WHEN_
import android.app.ActivityThread;
import android.provider.DeviceConfig;
import com.android.internal.annotations.VisibleForTesting;
/**
* Class for the device-level configuration related to the input method manager
* platform features in {@link DeviceConfig}.
@@ -56,4 +58,9 @@ final class InputMethodDeviceConfigs {
public boolean shouldHideImeWhenNoEditorFocus() {
return mHideImeWhenNoEditorFocus;
}
@VisibleForTesting
void destroy() {
DeviceConfig.removeOnPropertiesChangedListener(mDeviceConfigChangedListener);
}
}

View File

@@ -65,6 +65,7 @@ import com.android.server.wm.WindowManagerInternal;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.mockito.Mock;
import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
@@ -121,6 +122,14 @@ public class InputMethodManagerServiceTestBase {
protected InputMethodManagerService mInputMethodManagerService;
protected ServiceThread mServiceThread;
@BeforeClass
public static void setupClass() {
// Make sure DeviceConfig's lazy-initialized ContentProvider gets
// a real instance before we stub out all system services below.
// TODO(b/272229177): remove dependency on real ContentProvider
new InputMethodDeviceConfigs().destroy();
}
@Before
public void setUp() throws RemoteException {
mMockingSession =
@@ -230,6 +239,8 @@ public class InputMethodManagerServiceTestBase {
@After
public void tearDown() {
mInputMethodManagerService.mInputMethodDeviceConfigs.destroy();
if (mServiceThread != null) {
mServiceThread.quitSafely();
}