Add textFitWidth and textFitHeight Properties to Sprites (#2780)

Co-authored-by: Xiaolian Qin <xiaoq@microsoft.com>
This commit is contained in:
qqz003
2024-09-13 21:02:02 +08:00
committed by GitHub
parent 814e1015a8
commit cb38119451
58 changed files with 2116 additions and 103 deletions

View File

@@ -589,3 +589,87 @@ TEST(Sprite, SpriteParsingNullRatio) {
"sprite",
}));
}
TEST(Sprite, SpriteParsingTextFit) {
FixtureLog log;
const auto image_1x = util::read_file("test/fixtures/annotations/emerald.png");
const auto images = parseSprite("default", image_1x, R"JSON({
"image": {
"width": 16,
"height": 16,
"x": 0,
"y": 0,
"pixelRatio": 1,
"textFitWidth": "stretchOrShrink",
"textFitHeight": "proportional"
}
})JSON");
EXPECT_EQ(1u, images.size());
EXPECT_EQ("image", images[0]->id);
EXPECT_EQ(style::TextFit::stretchOrShrink, images[0]->textFitWidth);
EXPECT_EQ(style::TextFit::proportional, images[0]->textFitHeight);
}
TEST(Sprite, SpriteParsingNullTextFit) {
FixtureLog log;
const auto image_1x = util::read_file("test/fixtures/annotations/emerald.png");
const auto images = parseSprite("default", image_1x, R"JSON({
"image": {
"width": 16,
"height": 16,
"x": 0,
"y": 0,
"pixelRatio": 1,
"textFitHeight": "stretchOnly"
}
})JSON");
EXPECT_EQ(1u, images.size());
EXPECT_EQ("image", images[0]->id);
EXPECT_FALSE(images[0]->textFitWidth.has_value());
EXPECT_EQ(style::TextFit::stretchOnly, images[0]->textFitHeight);
}
TEST(Sprite, SpriteParsingInvalidTextFit) {
FixtureLog log;
const auto image_1x = util::read_file("test/fixtures/annotations/emerald.png");
parseSprite("default", image_1x, R"JSON({
"image": {
"width": 16,
"height": 16,
"x": 0,
"y": 0,
"pixelRatio": 1,
"textFitWidth": "invalid",
"textFitHeight": "stretchOnly"
}
})JSON");
EXPECT_EQ(1u,
log.count({EventSeverity::Warning,
Event::Sprite,
int64_t(-1),
"Invalid sprite image 'image': value of 'textFitWidth' "
"is an invalid value 'invalid'"}));
parseSprite("default", image_1x, R"JSON({
"image": {
"width": 16,
"height": 16,
"x": 0,
"y": 0,
"pixelRatio": 1,
"textFitHeight": 0
}
})JSON");
EXPECT_EQ(1u,
log.count({EventSeverity::Warning,
Event::Sprite,
int64_t(-1),
"Invalid sprite image 'image': value of 'textFitHeight' "
"must be a string"}));
}