Extract export menu action planning
This commit is contained in:
@@ -631,6 +631,30 @@ if(TARGET pano_cli)
|
||||
LABELS "app;integration;desktop-fast;fuzz"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-export-start\".*\"requiresLicense\":false.*\"hasCanvas\":false.*\"decision\":\"unavailable-no-canvas\"")
|
||||
|
||||
add_test(NAME pano_cli_plan_export_menu_png_smoke
|
||||
COMMAND pano_cli plan-export-menu --kind png)
|
||||
set_tests_properties(pano_cli_plan_export_menu_png_smoke PROPERTIES
|
||||
LABELS "app;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-export-menu\".*\"kind\":\"png\".*\"action\":\"show-png-dialog\".*\"opensDialog\":true")
|
||||
|
||||
add_test(NAME pano_cli_plan_export_menu_mp4_demo_blocked_smoke
|
||||
COMMAND pano_cli plan-export-menu --kind animation-mp4 --demo)
|
||||
set_tests_properties(pano_cli_plan_export_menu_mp4_demo_blocked_smoke PROPERTIES
|
||||
LABELS "app;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-export-menu\".*\"kind\":\"animation-mp4\".*\"licenseValid\":false.*\"action\":\"show-license-disabled\".*\"opensDialog\":false")
|
||||
|
||||
add_test(NAME pano_cli_plan_export_menu_no_canvas_smoke
|
||||
COMMAND pano_cli plan-export-menu --kind layers --no-canvas)
|
||||
set_tests_properties(pano_cli_plan_export_menu_no_canvas_smoke PROPERTIES
|
||||
LABELS "app;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-export-menu\".*\"kind\":\"layers\".*\"hasCanvas\":false.*\"action\":\"unavailable-no-canvas\".*\"opensDialog\":false")
|
||||
|
||||
add_test(NAME pano_cli_plan_export_menu_rejects_unknown
|
||||
COMMAND pano_cli plan-export-menu --kind unknown)
|
||||
set_tests_properties(pano_cli_plan_export_menu_rejects_unknown PROPERTIES
|
||||
LABELS "app;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE)
|
||||
|
||||
add_test(NAME pano_cli_plan_export_target_file_smoke
|
||||
COMMAND pano_cli plan-export-target --kind file --work-dir D:/Paint --doc-name demo --extension .png)
|
||||
set_tests_properties(pano_cli_plan_export_target_file_smoke PROPERTIES
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user