Skip to content

Commit 184b96a

Browse files
andrewdacenkofacebook-github-bot
authored andcommitted
Add resizeMode tests (facebook#53061)
Summary: Pull Request resolved: facebook#53061 Changelog: [Internal] Add tests for resizeMode prop Reviewed By: rshest Differential Revision: D79600137
1 parent 897fe1b commit 184b96a

File tree

3 files changed

+63
-1
lines changed

3 files changed

+63
-1
lines changed

packages/react-native/Libraries/Image/__tests__/Image-itest.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,46 @@ describe('<Image>', () => {
242242
});
243243
});
244244
});
245+
246+
describe('resizeMode', () => {
247+
it('is set to "cover" by default', () => {
248+
const root = Fantom.createRoot();
249+
250+
Fantom.runTask(() => {
251+
root.render(<Image source={LOGO_SOURCE} />);
252+
});
253+
254+
expect(root.getRenderedOutput({props: ['resizeMode']}).toJSX()).toEqual(
255+
<rn-image />,
256+
);
257+
258+
Fantom.runTask(() => {
259+
root.render(<Image resizeMode="cover" source={LOGO_SOURCE} />);
260+
});
261+
262+
expect(root.getRenderedOutput({props: ['resizeMode']}).toJSX()).toEqual(
263+
<rn-image />,
264+
);
265+
});
266+
267+
(['stretch', 'contain', 'repeat', 'center'] as const).forEach(
268+
resizeMode => {
269+
it(`can be set to "${resizeMode}"`, () => {
270+
const root = Fantom.createRoot();
271+
272+
Fantom.runTask(() => {
273+
root.render(
274+
<Image resizeMode={resizeMode} source={LOGO_SOURCE} />,
275+
);
276+
});
277+
278+
expect(
279+
root.getRenderedOutput({props: ['resizeMode']}).toJSX(),
280+
).toEqual(<rn-image resizeMode={resizeMode} />);
281+
});
282+
},
283+
);
284+
});
245285
});
246286

247287
describe('ref', () => {

packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,8 +304,30 @@ SharedDebugStringConvertibleList ImageProps::getDebugProps() const {
304304
SharedDebugStringConvertibleList{
305305
debugStringConvertibleItem(
306306
"blurRadius", blurRadius, imageProps.blurRadius),
307+
debugStringConvertibleItem(
308+
"resizeMode",
309+
toString(resizeMode),
310+
toString(imageProps.resizeMode)),
307311
};
308312
}
313+
314+
inline std::string toString(ImageResizeMode resizeMode) {
315+
switch (resizeMode) {
316+
case ImageResizeMode::Cover:
317+
return "cover";
318+
case ImageResizeMode::Contain:
319+
return "contain";
320+
case ImageResizeMode::Stretch:
321+
return "stretch";
322+
case ImageResizeMode::Center:
323+
return "center";
324+
case ImageResizeMode::Repeat:
325+
return "repeat";
326+
case ImageResizeMode::None:
327+
return "none";
328+
}
329+
}
330+
309331
#endif
310332

311333
} // namespace facebook::react

packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class ImageProps final : public ViewProps {
3434
ImageSources sources{};
3535
ImageSource defaultSource{};
3636
ImageSource loadingIndicatorSource{};
37-
ImageResizeMode resizeMode{ImageResizeMode::Stretch};
37+
ImageResizeMode resizeMode{ImageResizeMode::Cover};
3838
Float blurRadius{};
3939
EdgeInsets capInsets{};
4040
SharedColor tintColor{};

0 commit comments

Comments
 (0)