Extract brush package import targets

This commit is contained in:
2026-06-04 14:59:38 +02:00
parent 394979e4fc
commit 79942113ef
7 changed files with 163 additions and 14 deletions

View File

@@ -141,6 +141,56 @@ void rejects_export_paths_that_legacy_regex_could_not_match(pp::tests::Harness&
pp::assets::PpbrDataDirectoryPolicy::next_to_package));
}
void plans_imported_brush_image_targets(pp::tests::Harness& harness)
{
const auto brush = pp::assets::plan_brush_package_image_target_paths(
"D:/Paint/data",
pp::assets::BrushPackageImageKind::brush_tip,
"cloud",
"png");
PP_EXPECT(harness, brush);
if (brush) {
PP_EXPECT(harness, brush.value().image_path == "D:/Paint/data/brushes/cloud.png");
PP_EXPECT(harness, brush.value().thumbnail_path == "D:/Paint/data/brushes/thumbs/cloud.png");
}
const auto pattern = pp::assets::plan_brush_package_image_target_paths(
"D:/Paint/data",
pp::assets::BrushPackageImageKind::pattern,
"paper",
"jpg");
PP_EXPECT(harness, pattern);
if (pattern) {
PP_EXPECT(harness, pattern.value().image_path == "D:/Paint/data/patterns/paper.jpg");
PP_EXPECT(harness, pattern.value().thumbnail_path == "D:/Paint/data/patterns/thumbs/paper.jpg");
}
}
void rejects_invalid_imported_brush_image_targets(pp::tests::Harness& harness)
{
PP_EXPECT(
harness,
!pp::assets::plan_brush_package_image_target_paths(
"",
pp::assets::BrushPackageImageKind::brush_tip,
"cloud",
"png"));
PP_EXPECT(
harness,
!pp::assets::plan_brush_package_image_target_paths(
"D:/Paint/data",
pp::assets::BrushPackageImageKind::brush_tip,
"",
"png"));
PP_EXPECT(
harness,
!pp::assets::plan_brush_package_image_target_paths(
"D:/Paint/data",
pp::assets::BrushPackageImageKind::pattern,
"paper",
"png!"));
}
} // namespace
int main()
@@ -151,5 +201,7 @@ int main()
harness.run("plans export package and data paths", plans_export_package_and_data_paths);
harness.run("preserves legacy extension containment rule", preserves_legacy_extension_containment_rule);
harness.run("rejects export paths that legacy regex could not match", rejects_export_paths_that_legacy_regex_could_not_match);
harness.run("plans imported brush image targets", plans_imported_brush_image_targets);
harness.run("rejects invalid imported brush image targets", rejects_invalid_imported_brush_image_targets);
return harness.finish();
}