Move export snapshot platform support to app core

This commit is contained in:
2026-06-06 11:20:25 +02:00
parent 41279c8743
commit 09df47879d
7 changed files with 86 additions and 42 deletions

View File

@@ -918,6 +918,12 @@ if(TARGET pano_cli)
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-export-snapshot-route\".*\"kind\":\"equirectangular\".*\"targetPath\":\"D:/Paint/demo.tif\".*\"targetSupported\":false.*\"action\":\"use-legacy-export\".*\"fallbackReason\":\"document snapshot export does not support this target\"")
add_test(NAME pano_cli_plan_export_snapshot_route_unsupported_platform_smoke
COMMAND pano_cli plan-export-snapshot-route --kind cube-faces --unsupported-platform)
set_tests_properties(pano_cli_plan_export_snapshot_route_unsupported_platform_smoke PROPERTIES
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-export-snapshot-route\".*\"kind\":\"cube-faces\".*\"targetSupported\":true.*\"platformSupported\":false.*\"action\":\"use-legacy-export\".*\"fallbackReason\":\"document snapshot export is disabled on this platform\"")
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

View File

@@ -825,6 +825,33 @@ void export_snapshot_route_for_target_rejects_unsupported_extension(pp::tests::H
plan.fallback_reason == "document snapshot export does not support this target");
}
void export_snapshot_route_for_current_platform_uses_platform_policy(pp::tests::Harness& harness)
{
pp::app::DocumentCanvasSaveSnapshotReport report;
report.payload_complete = true;
report.can_export_ppi = true;
const auto plan = pp::app::plan_document_export_snapshot_route_for_current_platform(
pp::app::DocumentExportExecutionKind::equirectangular_file,
report,
"D:/Paint/demo.png");
#if __WEB__
PP_EXPECT(harness, !pp::app::document_export_snapshot_platform_supported());
PP_EXPECT(harness, !plan.uses_document_snapshot_writer);
PP_EXPECT(harness, !plan.platform_supported);
PP_EXPECT(
harness,
plan.fallback_reason == "document snapshot export is disabled on this platform");
#else
PP_EXPECT(harness, pp::app::document_export_snapshot_platform_supported());
PP_EXPECT(harness, plan.uses_document_snapshot_writer);
PP_EXPECT(harness, plan.platform_supported);
PP_EXPECT(harness, plan.target_supported);
PP_EXPECT(harness, plan.fallback_reason.empty());
#endif
}
void export_snapshot_route_falls_back_for_pending_renderer_payloads(pp::tests::Harness& harness)
{
pp::app::DocumentCanvasSaveSnapshotReport report;
@@ -1243,6 +1270,9 @@ int main()
harness.run(
"export snapshot route for target rejects unsupported extension",
export_snapshot_route_for_target_rejects_unsupported_extension);
harness.run(
"export snapshot route for current platform uses platform policy",
export_snapshot_route_for_current_platform_uses_platform_policy);
harness.run(
"export snapshot route falls back for pending renderer payloads",
export_snapshot_route_falls_back_for_pending_renderer_payloads);