Plan document open actions in app core

This commit is contained in:
2026-06-02 23:06:36 +02:00
parent 1df506a176
commit fd1772a417
9 changed files with 179 additions and 12 deletions

View File

@@ -15,6 +15,38 @@ void project_open_dirty_document_prompts_for_discard(pp::tests::Harness& harness
pp::app::plan_project_open(true) == pp::app::ProjectOpenDecision::prompt_discard_unsaved);
}
void document_open_project_respects_unsaved_state(pp::tests::Harness& harness)
{
PP_EXPECT(
harness,
pp::app::plan_document_open(pp::app::DocumentOpenKind::open_project, false)
== pp::app::DocumentOpenPlanAction::open_project_now);
PP_EXPECT(
harness,
pp::app::plan_document_open(pp::app::DocumentOpenKind::open_project, true)
== pp::app::DocumentOpenPlanAction::prompt_discard_unsaved_project);
}
void document_open_brush_imports_prompt_regardless_of_unsaved_state(pp::tests::Harness& harness)
{
PP_EXPECT(
harness,
pp::app::plan_document_open(pp::app::DocumentOpenKind::import_abr, false)
== pp::app::DocumentOpenPlanAction::prompt_import_abr);
PP_EXPECT(
harness,
pp::app::plan_document_open(pp::app::DocumentOpenKind::import_abr, true)
== pp::app::DocumentOpenPlanAction::prompt_import_abr);
PP_EXPECT(
harness,
pp::app::plan_document_open(pp::app::DocumentOpenKind::import_ppbr, false)
== pp::app::DocumentOpenPlanAction::prompt_import_ppbr);
PP_EXPECT(
harness,
pp::app::plan_document_open(pp::app::DocumentOpenKind::import_ppbr, true)
== pp::app::DocumentOpenPlanAction::prompt_import_ppbr);
}
void close_clean_document_executes_immediately(pp::tests::Harness& harness)
{
PP_EXPECT(
@@ -206,6 +238,10 @@ int main()
pp::tests::Harness harness;
harness.run("project open clean document executes immediately", project_open_clean_document_executes_immediately);
harness.run("project open dirty document prompts for discard", project_open_dirty_document_prompts_for_discard);
harness.run("document open project respects unsaved state", document_open_project_respects_unsaved_state);
harness.run(
"document open brush imports prompt regardless of unsaved state",
document_open_brush_imports_prompt_regardless_of_unsaved_state);
harness.run("close clean document executes immediately", close_clean_document_executes_immediately);
harness.run("close dirty document opens one prompt", close_dirty_document_opens_one_prompt);
harness.run("save clean existing document is no op", save_clean_existing_document_is_no_op);