#include "app_core/document_layer.h" #include "test_harness.h" #include namespace { void layer_rename_records_changed_name(pp::tests::Harness& harness) { const auto plan = pp::app::plan_document_layer_rename("Base", "Paint"); PP_EXPECT(harness, plan); if (plan) { PP_EXPECT(harness, plan.value().old_name == "Base"); PP_EXPECT(harness, plan.value().new_name == "Paint"); PP_EXPECT( harness, plan.value().action == pp::app::DocumentLayerRenameAction::rename_and_record_undo); } } void layer_rename_ignores_unchanged_name(pp::tests::Harness& harness) { const auto plan = pp::app::plan_document_layer_rename("Ink", "Ink"); PP_EXPECT(harness, plan); if (plan) { PP_EXPECT(harness, plan.value().old_name == "Ink"); PP_EXPECT(harness, plan.value().new_name == "Ink"); PP_EXPECT( harness, plan.value().action == pp::app::DocumentLayerRenameAction::no_op_same_name); } } void layer_rename_rejects_empty_name(pp::tests::Harness& harness) { const auto plan = pp::app::plan_document_layer_rename("Ink", ""); PP_EXPECT(harness, !plan); if (!plan) { PP_EXPECT(harness, plan.status().code == pp::foundation::StatusCode::invalid_argument); } } void layer_rename_rejects_overlong_name(pp::tests::Harness& harness) { const std::string too_long(pp::app::document_layer_name_max_length + 1U, 'x'); const auto plan = pp::app::plan_document_layer_rename("Ink", too_long); PP_EXPECT(harness, !plan); if (!plan) { PP_EXPECT(harness, plan.status().code == pp::foundation::StatusCode::out_of_range); } } } int main() { pp::tests::Harness harness; harness.run("layer rename records changed name", layer_rename_records_changed_name); harness.run("layer rename ignores unchanged name", layer_rename_ignores_unchanged_name); harness.run("layer rename rejects empty name", layer_rename_rejects_empty_name); harness.run("layer rename rejects overlong name", layer_rename_rejects_overlong_name); return harness.finish(); }