64 lines
2.1 KiB
C++
64 lines
2.1 KiB
C++
#include "app_core/document_layer.h"
|
|
#include "test_harness.h"
|
|
|
|
#include <string>
|
|
|
|
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();
|
|
}
|