From 0cec0412e5c6ff083a8ed1526eece330081601f8 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Wed, 3 May 2023 03:27:17 -0700 Subject: [PATCH] Bump Robolectric SDK target to 33 (#37200) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/37200 Currently Robolectric runs with target SDK 21 on OSS and 33 on Buck internal. Having those two versions misaligned makes tests harder to maintain, so we should probably re-aling them. Here I bump SDK to 33 + I'm fixing `RootViewTest` which is broken on SDK 33 (both on Gradle and Internal). Changelog: [Internal] [Changed] - Bump Robolectric SDK target to 33 Reviewed By: philIip, mdvacca Differential Revision: D45497430 fbshipit-source-id: 202fb1d7e84362dd74798c026d5a0999d77234ee --- packages/react-native/ReactAndroid/build.gradle | 6 ++++++ .../java/com/facebook/react/RootViewTest.java | 16 +++++++++++++++- .../src/test/resources/robolectric.properties | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) 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