Plan cloud upload decisions in app core
This commit is contained in:
44
tests/app_core/document_cloud_tests.cpp
Normal file
44
tests/app_core/document_cloud_tests.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include "app_core/document_cloud.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
namespace {
|
||||
|
||||
void cloud_upload_is_unavailable_without_canvas(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_cloud_upload(false, false, false);
|
||||
PP_EXPECT(harness, plan.action == pp::app::CloudUploadAction::unavailable_no_canvas);
|
||||
PP_EXPECT(harness, !plan.save_before_upload);
|
||||
}
|
||||
|
||||
void cloud_upload_warns_for_new_documents(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_cloud_upload(true, true, true);
|
||||
PP_EXPECT(harness, plan.action == pp::app::CloudUploadAction::show_save_required_warning);
|
||||
PP_EXPECT(harness, !plan.save_before_upload);
|
||||
}
|
||||
|
||||
void cloud_upload_prompts_for_clean_existing_documents(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_cloud_upload(true, false, false);
|
||||
PP_EXPECT(harness, plan.action == pp::app::CloudUploadAction::prompt_publish);
|
||||
PP_EXPECT(harness, !plan.save_before_upload);
|
||||
}
|
||||
|
||||
void cloud_upload_records_save_before_upload_for_dirty_existing_documents(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_cloud_upload(true, false, true);
|
||||
PP_EXPECT(harness, plan.action == pp::app::CloudUploadAction::prompt_publish);
|
||||
PP_EXPECT(harness, plan.save_before_upload);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
pp::tests::Harness harness;
|
||||
harness.run("cloud upload is unavailable without canvas", cloud_upload_is_unavailable_without_canvas);
|
||||
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);
|
||||
return harness.finish();
|
||||
}
|
||||
Reference in New Issue
Block a user