Extract layer menu action planning
This commit is contained in:
@@ -178,6 +178,115 @@ void layer_highlight_is_transient(pp::tests::Harness& harness)
|
||||
PP_EXPECT(harness, !pp::app::plan_document_layer_highlight(2, 2, true));
|
||||
}
|
||||
|
||||
void layer_menu_labels_selected_layer_commands(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto clear = pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::clear,
|
||||
true,
|
||||
1,
|
||||
1,
|
||||
"Paint",
|
||||
"Base");
|
||||
const auto rename = pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::rename,
|
||||
true,
|
||||
1,
|
||||
1,
|
||||
"Paint",
|
||||
"Base");
|
||||
|
||||
PP_EXPECT(harness, clear);
|
||||
PP_EXPECT(harness, rename);
|
||||
if (clear) {
|
||||
PP_EXPECT(harness, clear.value().label == "Clear Layer Paint");
|
||||
PP_EXPECT(harness, clear.value().action == pp::app::DocumentLayerMenuAction::clear_current_layer);
|
||||
}
|
||||
if (rename) {
|
||||
PP_EXPECT(harness, rename.value().label == "Rename Layer Paint");
|
||||
PP_EXPECT(harness, rename.value().action == pp::app::DocumentLayerMenuAction::show_rename_dialog);
|
||||
}
|
||||
}
|
||||
|
||||
void layer_menu_plans_merge_down_or_blocks_it(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto merge = pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::merge_down,
|
||||
true,
|
||||
2,
|
||||
1,
|
||||
"Ink",
|
||||
"Paint");
|
||||
const auto base_layer = pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::merge_down,
|
||||
true,
|
||||
0,
|
||||
1,
|
||||
"Base",
|
||||
"");
|
||||
const auto animated = pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::merge_down,
|
||||
true,
|
||||
2,
|
||||
3,
|
||||
"Ink",
|
||||
"Paint");
|
||||
|
||||
PP_EXPECT(harness, merge);
|
||||
PP_EXPECT(harness, base_layer);
|
||||
PP_EXPECT(harness, animated);
|
||||
if (merge) {
|
||||
PP_EXPECT(harness, merge.value().label == "Merge with Paint");
|
||||
PP_EXPECT(harness, merge.value().from_index == 2);
|
||||
PP_EXPECT(harness, merge.value().to_index == 1);
|
||||
PP_EXPECT(harness, merge.value().action == pp::app::DocumentLayerMenuAction::merge_with_lower_layer);
|
||||
}
|
||||
if (base_layer) {
|
||||
PP_EXPECT(harness, base_layer.value().action == pp::app::DocumentLayerMenuAction::no_op_select_upper_layer);
|
||||
PP_EXPECT(harness, base_layer.value().label == "Merge Layer (Select upper layers)");
|
||||
}
|
||||
if (animated) {
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
animated.value().action == pp::app::DocumentLayerMenuAction::show_merge_animated_not_supported);
|
||||
}
|
||||
}
|
||||
|
||||
void layer_menu_handles_missing_selection_and_bad_state(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto missing = pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::rename,
|
||||
false,
|
||||
0,
|
||||
1,
|
||||
"",
|
||||
"");
|
||||
|
||||
PP_EXPECT(harness, missing);
|
||||
if (missing) {
|
||||
PP_EXPECT(harness, missing.value().action == pp::app::DocumentLayerMenuAction::no_op_select_layer);
|
||||
PP_EXPECT(harness, missing.value().label == "Rename Layer (Select a layer)");
|
||||
}
|
||||
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
!pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::merge_down,
|
||||
true,
|
||||
-1,
|
||||
1,
|
||||
"Ink",
|
||||
"Paint"));
|
||||
PP_EXPECT(
|
||||
harness,
|
||||
!pp::app::plan_document_layer_menu(
|
||||
pp::app::DocumentLayerMenuCommand::merge_down,
|
||||
true,
|
||||
1,
|
||||
-1,
|
||||
"Ink",
|
||||
"Paint"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
@@ -192,5 +301,8 @@ int main()
|
||||
harness.run("layer remove keeps at least one layer", layer_remove_keeps_at_least_one_layer);
|
||||
harness.run("layer metadata plans validate values", layer_metadata_plans_validate_values);
|
||||
harness.run("layer highlight is transient", layer_highlight_is_transient);
|
||||
harness.run("layer menu labels selected layer commands", layer_menu_labels_selected_layer_commands);
|
||||
harness.run("layer menu plans merge down or blocks it", layer_menu_plans_merge_down_or_blocks_it);
|
||||
harness.run("layer menu handles missing selection and bad state", layer_menu_handles_missing_selection_and_bad_state);
|
||||
return harness.finish();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user