Skip to content

Commit a6ef65e

Browse files
andrewdacenkofacebook-github-bot
authored andcommitted
Add resizeMode tests (#53061)
Summary: Pull Request resolved: #53061 Changelog: [Internal] Add tests for resizeMode prop Reviewed By: rshest Differential Revision: D79600137 fbshipit-source-id: d802fb375f2f57f38a51d918d2045763dd79c440
1 parent 93694e3 commit a6ef65e

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
@@ -288,6 +288,46 @@ describe('<Image>', () => {
288288
});
289289
});
290290
});
291+
292+
describe('resizeMode', () => {
293+
it('is set to "cover" by default', () => {
294+
const root = Fantom.createRoot();
295+
296+
Fantom.runTask(() => {
297+
root.render(<Image source={LOGO_SOURCE} />);
298+
});
299+
300+
expect(root.getRenderedOutput({props: ['resizeMode']}).toJSX()).toEqual(
301+
<rn-image />,
302+
);
303+
304+
Fantom.runTask(() => {
305+
root.render(<Image resizeMode="cover" source={LOGO_SOURCE} />);
306+
});
307+
308+
expect(root.getRenderedOutput({props: ['resizeMode']}).toJSX()).toEqual(
309+
<rn-image />,
310+
);
311+
});
312+
313+
(['stretch', 'contain', 'repeat', 'center'] as const).forEach(
314+
resizeMode => {
315+
it(`can be set to "${resizeMode}"`, () => {
316+
const root = Fantom.createRoot();
317+
318+
Fantom.runTask(() => {
319+
root.render(
320+
<Image resizeMode={resizeMode} source={LOGO_SOURCE} />,
321+
);
322+
});
323+
324+
expect(
325+
root.getRenderedOutput({props: ['resizeMode']}).toJSX(),
326+
).toEqual(<rn-image resizeMode={resizeMode} />);
327+
});
328+
},
329+
);
330+
});
291331
});
292332

293333
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)