Skip to content

Commit 67672e0

Browse files
committed
test(image): [android] resize method setter coverage
1 parent 7211119 commit 67672e0

File tree

1 file changed

+74
-1
lines changed

1 file changed

+74
-1
lines changed

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/image/ReactImagePropertyTest.kt

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package com.facebook.react.views.image
99

1010
import android.graphics.Color
1111
import android.util.DisplayMetrics
12+
import com.facebook.common.logging.FLog
1213
import com.facebook.drawee.backends.pipeline.Fresco
1314
import com.facebook.drawee.drawable.ScalingUtils
1415
import com.facebook.react.bridge.Arguments
@@ -19,11 +20,16 @@ import com.facebook.react.bridge.JavaOnlyMap
1920
import com.facebook.react.bridge.ReactTestHelper.createMockCatalystInstance
2021
import com.facebook.react.bridge.WritableArray
2122
import com.facebook.react.bridge.WritableMap
23+
import com.facebook.react.common.ReactConstants
2224
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests
2325
import com.facebook.react.uimanager.DisplayMetricsHolder
2426
import com.facebook.react.uimanager.ReactStylesDiffMap
2527
import com.facebook.react.uimanager.ThemedReactContext
2628
import com.facebook.react.util.RNLog
29+
import com.facebook.react.views.image.ImageResizeMethod
30+
import com.facebook.react.views.image.ImageResizeMode
31+
import com.facebook.react.views.image.ReactImageView
32+
import com.facebook.react.views.image.ScaleTypeStartInside
2733
import com.facebook.react.views.imagehelper.ImageSource
2834
import com.facebook.soloader.SoLoader
2935
import org.assertj.core.api.Assertions.assertThat
@@ -34,7 +40,10 @@ import org.junit.runner.RunWith
3440
import org.mockito.MockedStatic
3541
import org.mockito.Mockito.any
3642
import org.mockito.Mockito.anyString
43+
import org.mockito.Mockito.mock
3744
import org.mockito.Mockito.mockStatic
45+
import org.mockito.Mockito.reset
46+
import org.mockito.Mockito.verify
3847
import org.robolectric.RobolectricTestRunner
3948
import org.robolectric.RuntimeEnvironment
4049

@@ -113,6 +122,70 @@ class ReactImagePropertyTest {
113122
viewManager.setSource(view, sources)
114123
view.maybeUpdateView()
115124
assertThat(ImageSource.getTransparentBitmapImageSource(view.context))
116-
.isEqualTo(view.imageSource)
125+
.isEqualTo(view.imageSource)
126+
}
127+
128+
@Test
129+
fun testSetResizeMode() {
130+
val viewManager = ReactImageManager()
131+
val mockView = mock(ReactImageView::class.java)
132+
133+
viewManager.setResizeMode(mockView, null)
134+
verify(mockView).setScaleType(ScalingUtils.ScaleType.CENTER_CROP)
135+
reset(mockView)
136+
137+
viewManager.setResizeMode(mockView, "cover")
138+
verify(mockView).setScaleType(ScalingUtils.ScaleType.CENTER_CROP)
139+
reset(mockView)
140+
141+
viewManager.setResizeMode(mockView, "contain")
142+
verify(mockView).setScaleType(ScalingUtils.ScaleType.FIT_CENTER)
143+
reset(mockView)
144+
145+
viewManager.setResizeMode(mockView, "stretch")
146+
verify(mockView).setScaleType(ScalingUtils.ScaleType.FIT_XY)
147+
reset(mockView)
148+
149+
viewManager.setResizeMode(mockView, "repeat")
150+
verify(mockView).setScaleType(ScaleTypeStartInside.INSTANCE)
151+
reset(mockView)
152+
153+
viewManager.setResizeMode(mockView, "center")
154+
verify(mockView).setScaleType(ScalingUtils.ScaleType.CENTER_INSIDE)
155+
reset(mockView)
156+
157+
viewManager.setResizeMode(mockView, "invalid")
158+
verify(mockView).setScaleType(ScalingUtils.ScaleType.CENTER_CROP)
159+
}
160+
161+
@Test
162+
fun testResizeMethod() {
163+
val viewManager = ReactImageManager()
164+
val mockView = mock(ReactImageView::class.java)
165+
val flogMock = mockStatic(FLog::class.java)
166+
167+
viewManager.setResizeMethod(mockView, null)
168+
verify(mockView).setResizeMethod(ImageResizeMethod.AUTO)
169+
reset(mockView)
170+
171+
viewManager.setResizeMethod(mockView, "auto")
172+
verify(mockView).setResizeMethod(ImageResizeMethod.AUTO)
173+
reset(mockView)
174+
175+
viewManager.setResizeMethod(mockView, "resize")
176+
verify(mockView).setResizeMethod(ImageResizeMethod.RESIZE)
177+
reset(mockView)
178+
179+
viewManager.setResizeMethod(mockView, "scale")
180+
verify(mockView).setResizeMethod(ImageResizeMethod.SCALE)
181+
reset(mockView)
182+
183+
viewManager.setResizeMethod(mockView, "none")
184+
verify(mockView).setResizeMethod(ImageResizeMethod.NONE)
185+
reset(mockView)
186+
187+
viewManager.setResizeMethod(mockView, "invalid")
188+
verify(mockView).setResizeMethod(ImageResizeMethod.AUTO)
189+
flogMock.verify { FLog.w(ReactConstants.TAG, "Invalid resize method: 'invalid'") }
117190
}
118191
}

0 commit comments

Comments
 (0)