Extract export menu action planning

This commit is contained in:
2026-06-03 11:48:34 +02:00
parent ef50f4a361
commit 65b262207c
7 changed files with 394 additions and 9 deletions

View File

@@ -78,6 +78,51 @@ void export_start_reports_missing_canvas_after_license_gate(pp::tests::Harness&
== pp::app::DocumentExportStartDecision::show_license_disabled);
}
void export_menu_routes_image_dialogs_without_license(pp::tests::Harness& harness)
{
const auto jpeg = pp::app::plan_document_export_menu_action(
pp::app::DocumentExportMenuKind::jpeg,
true,
false);
const auto png = pp::app::plan_document_export_menu_action(
pp::app::DocumentExportMenuKind::png,
true,
false);
PP_EXPECT(harness, jpeg.action == pp::app::DocumentExportMenuAction::show_jpeg_dialog);
PP_EXPECT(harness, jpeg.opens_dialog);
PP_EXPECT(harness, png.action == pp::app::DocumentExportMenuAction::show_png_dialog);
PP_EXPECT(harness, png.opens_dialog);
}
void export_menu_blocks_video_when_license_is_missing(pp::tests::Harness& harness)
{
const auto mp4 = pp::app::plan_document_export_menu_action(
pp::app::DocumentExportMenuKind::animation_mp4,
true,
false);
const auto timelapse = pp::app::plan_document_export_menu_action(
pp::app::DocumentExportMenuKind::timelapse,
true,
false);
PP_EXPECT(harness, mp4.action == pp::app::DocumentExportMenuAction::show_license_disabled);
PP_EXPECT(harness, !mp4.opens_dialog);
PP_EXPECT(harness, timelapse.action == pp::app::DocumentExportMenuAction::show_license_disabled);
PP_EXPECT(harness, !timelapse.opens_dialog);
}
void export_menu_reports_missing_canvas_for_unlicensed_image_exports(pp::tests::Harness& harness)
{
const auto plan = pp::app::plan_document_export_menu_action(
pp::app::DocumentExportMenuKind::layers,
false,
true);
PP_EXPECT(harness, plan.action == pp::app::DocumentExportMenuAction::unavailable_no_canvas);
PP_EXPECT(harness, !plan.opens_dialog);
}
}
int main()
@@ -91,5 +136,8 @@ int main()
harness.run("export start allows valid canvas state", export_start_allows_valid_canvas_state);
harness.run("export start blocks demo only when license required", export_start_blocks_demo_only_when_license_required);
harness.run("export start reports missing canvas after license gate", export_start_reports_missing_canvas_after_license_gate);
harness.run("export menu routes image dialogs without license", export_menu_routes_image_dialogs_without_license);
harness.run("export menu blocks video when license is missing", export_menu_blocks_video_when_license_is_missing);
harness.run("export menu reports missing canvas for unlicensed image exports", export_menu_reports_missing_canvas_for_unlicensed_image_exports);
return harness.finish();
}