Plan cloud browse decisions in app core

This commit is contained in:
2026-06-02 23:39:03 +02:00
parent 3a78361aea
commit 8a7db3bca8
9 changed files with 174 additions and 4 deletions

View File

@@ -513,6 +513,24 @@ if(TARGET pano_cli)
LABELS "app;integration;desktop-fast;fuzz"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-cloud-upload\".*\"hasCanvas\":false.*\"decision\":\"unavailable-no-canvas\".*\"saveBeforeUpload\":false")
add_test(NAME pano_cli_plan_cloud_browse_waiting_smoke
COMMAND pano_cli plan-cloud-browse)
set_tests_properties(pano_cli_plan_cloud_browse_waiting_smoke PROPERTIES
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-cloud-browse\".*\"hasCanvas\":true.*\"selectedFile\":\"\".*\"browseDecision\":\"show-browser\".*\"selectionDecision\":\"wait-for-selection\"")
add_test(NAME pano_cli_plan_cloud_browse_selected_smoke
COMMAND pano_cli plan-cloud-browse --selected-file demo.ppi)
set_tests_properties(pano_cli_plan_cloud_browse_selected_smoke PROPERTIES
LABELS "app;integration;desktop-fast"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-cloud-browse\".*\"hasCanvas\":true.*\"selectedFile\":\"demo.ppi\".*\"browseDecision\":\"show-browser\".*\"selectionDecision\":\"start-download\"")
add_test(NAME pano_cli_plan_cloud_browse_no_canvas_smoke
COMMAND pano_cli plan-cloud-browse --no-canvas --selected-file demo.ppi)
set_tests_properties(pano_cli_plan_cloud_browse_no_canvas_smoke PROPERTIES
LABELS "app;integration;desktop-fast;fuzz"
PASS_REGULAR_EXPRESSION "\"command\":\"plan-cloud-browse\".*\"hasCanvas\":false.*\"browseDecision\":\"unavailable-no-canvas\".*\"selectionDecision\":\"start-download\"")
add_test(NAME pano_cli_simulate_app_session_clean_smoke
COMMAND pano_cli simulate-app-session)
set_tests_properties(pano_cli_simulate_app_session_clean_smoke PROPERTIES

View File

@@ -31,6 +31,30 @@ void cloud_upload_records_save_before_upload_for_dirty_existing_documents(pp::te
PP_EXPECT(harness, plan.save_before_upload);
}
void cloud_browse_is_unavailable_without_canvas(pp::tests::Harness& harness)
{
PP_EXPECT(harness, pp::app::plan_cloud_browse(false) == pp::app::CloudBrowseAction::unavailable_no_canvas);
}
void cloud_browse_shows_browser_with_canvas(pp::tests::Harness& harness)
{
PP_EXPECT(harness, pp::app::plan_cloud_browse(true) == pp::app::CloudBrowseAction::show_browser);
}
void cloud_download_selection_waits_for_empty_file(pp::tests::Harness& harness)
{
PP_EXPECT(
harness,
pp::app::plan_cloud_download_selection("") == pp::app::CloudDownloadSelectionAction::wait_for_selection);
}
void cloud_download_selection_starts_for_selected_file(pp::tests::Harness& harness)
{
PP_EXPECT(
harness,
pp::app::plan_cloud_download_selection("demo.ppi") == pp::app::CloudDownloadSelectionAction::start_download);
}
}
int main()
@@ -40,5 +64,9 @@ int main()
harness.run("cloud upload warns for new documents", cloud_upload_warns_for_new_documents);
harness.run("cloud upload prompts for clean existing documents", cloud_upload_prompts_for_clean_existing_documents);
harness.run("cloud upload records save before upload for dirty existing documents", cloud_upload_records_save_before_upload_for_dirty_existing_documents);
harness.run("cloud browse is unavailable without canvas", cloud_browse_is_unavailable_without_canvas);
harness.run("cloud browse shows browser with canvas", cloud_browse_shows_browser_with_canvas);
harness.run("cloud download selection waits for empty file", cloud_download_selection_waits_for_empty_file);
harness.run("cloud download selection starts for selected file", cloud_download_selection_starts_for_selected_file);
return harness.finish();
}