Extract app document session decisions
This commit is contained in:
48
tests/app_core/document_session_tests.cpp
Normal file
48
tests/app_core/document_session_tests.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include "app_core/document_session.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
namespace {
|
||||
|
||||
void project_open_clean_document_executes_immediately(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(harness, pp::app::plan_project_open(false) == pp::app::ProjectOpenDecision::open_now);
|
||||
}
|
||||
|
||||
void project_open_dirty_document_prompts_for_discard(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
pp::app::plan_project_open(true) == pp::app::ProjectOpenDecision::prompt_discard_unsaved);
|
||||
}
|
||||
|
||||
void close_clean_document_executes_immediately(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
pp::app::plan_close_request(false, false) == pp::app::CloseRequestDecision::close_now);
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
pp::app::plan_close_request(false, true) == pp::app::CloseRequestDecision::close_now);
|
||||
}
|
||||
|
||||
void close_dirty_document_opens_one_prompt(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
pp::app::plan_close_request(true, false) == pp::app::CloseRequestDecision::show_unsaved_prompt);
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
pp::app::plan_close_request(true, true) == pp::app::CloseRequestDecision::wait_for_existing_prompt);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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("close clean document executes immediately", close_clean_document_executes_immediately);
|
||||
harness.run("close dirty document opens one prompt", close_dirty_document_opens_one_prompt);
|
||||
return harness.finish();
|
||||
}
|
||||
Reference in New Issue
Block a user