diff --git a/packages/react-native/ReactAndroid/build.gradle b/packages/react-native/ReactAndroid/build.gradle index ecc1fb534af..3338fbc2864 100644 --- a/packages/react-native/ReactAndroid/build.gradle +++ b/packages/react-native/ReactAndroid/build.gradle @@ -657,6 +657,12 @@ android { includeBuildTypeValues('debug', 'release') } } + + testOptions { + unitTests { + includeAndroidResources = true + } + } } dependencies { diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java index 3346b520552..87c5bfe69ad 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java @@ -17,8 +17,11 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; +import android.app.Activity; +import android.graphics.Insets; import android.graphics.Rect; import android.view.MotionEvent; +import android.view.WindowInsets; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.CatalystInstance; import com.facebook.react.bridge.JavaOnlyArray; @@ -47,6 +50,7 @@ import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.rule.PowerMockRule; +import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @@ -217,10 +221,12 @@ public class RootViewTest { @Test public void testCheckForKeyboardEvents() { ReactInstanceManager instanceManager = mock(ReactInstanceManager.class); + Activity mActivity = Robolectric.buildActivity(Activity.class).create().get(); when(instanceManager.getCurrentReactContext()).thenReturn(mReactContext); + ReactRootView rootView = - new ReactRootView(mReactContext) { + new ReactRootView(mActivity) { @Override public void getWindowVisibleDisplayFrame(Rect outRect) { if (outRect.bottom == 0) { @@ -230,6 +236,14 @@ public class RootViewTest { outRect.bottom += 370; } } + + @Override + public WindowInsets getRootWindowInsets() { + return new WindowInsets.Builder() + .setInsets(WindowInsets.Type.ime(), Insets.of(0, 0, 0, 370)) + .setVisible(WindowInsets.Type.ime(), true) + .build(); + } }; rootView.startReactApplication(instanceManager, ""); diff --git a/packages/react-native/ReactAndroid/src/test/resources/robolectric.properties b/packages/react-native/ReactAndroid/src/test/resources/robolectric.properties index b0d79302d02..824645ee038 100644 --- a/packages/react-native/ReactAndroid/src/test/resources/robolectric.properties +++ b/packages/react-native/ReactAndroid/src/test/resources/robolectric.properties @@ -1,2 +1,2 @@ # Set this to minimum supported API level for React Native. -sdk=21 +sdk=33