Plan canvas toolbar bindings
This commit is contained in:
@@ -1894,6 +1894,19 @@ if(TARGET pano_cli)
|
||||
LABELS "app;ui;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE)
|
||||
|
||||
add_test(NAME pano_cli_plan_canvas_tool_toolbar_smoke
|
||||
COMMAND pano_cli plan-canvas-tool-toolbar)
|
||||
set_tests_properties(pano_cli_plan_canvas_tool_toolbar_smoke PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-canvas-tool-toolbar\".*\"defaultMode\":\"draw\".*\"bindingCount\":13.*\"id\":\"btn-pen\".*\"defaultOnInit\":true.*\"id\":\"btn-pick\".*\"action\":\"toggle-picking\".*\"id\":\"btn-bucket\".*\"mode\":\"bucket\"")
|
||||
|
||||
add_test(NAME pano_cli_plan_canvas_tool_toolbar_rejects_unknown
|
||||
COMMAND pano_cli plan-canvas-tool-toolbar --unexpected)
|
||||
set_tests_properties(pano_cli_plan_canvas_tool_toolbar_rejects_unknown PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-canvas-tool-toolbar\".*\"message\":\"unknown option\"")
|
||||
|
||||
add_test(NAME pano_cli_plan_canvas_tool_state_draw_smoke
|
||||
COMMAND pano_cli plan-canvas-tool-state --mode draw --picking --touch-lock)
|
||||
set_tests_properties(pano_cli_plan_canvas_tool_state_draw_smoke PROPERTIES
|
||||
|
||||
@@ -98,6 +98,47 @@ void pick_and_touch_lock_toggle_state(pp::tests::Harness& harness)
|
||||
PP_EXPECT(harness, !touch_lock.no_op);
|
||||
}
|
||||
|
||||
void toolbar_plan_exposes_full_legacy_button_set(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto toolbar = pp::app::plan_canvas_tool_toolbar();
|
||||
PP_EXPECT(harness, toolbar.bindings.size() == 13);
|
||||
PP_EXPECT(harness, toolbar.default_mode == pp::app::CanvasToolMode::draw);
|
||||
PP_EXPECT(harness, toolbar.bindings[0].button_id == "btn-pen");
|
||||
PP_EXPECT(harness, toolbar.bindings[0].mode == pp::app::CanvasToolMode::draw);
|
||||
PP_EXPECT(harness, toolbar.bindings[0].applies_default_on_init);
|
||||
PP_EXPECT(harness, toolbar.bindings[1].button_id == "btn-pick");
|
||||
PP_EXPECT(harness, toolbar.bindings[1].action == pp::app::CanvasToolToolbarAction::toggle_picking);
|
||||
PP_EXPECT(harness, toolbar.bindings[2].button_id == "btn-touchlock");
|
||||
PP_EXPECT(harness, toolbar.bindings[2].action == pp::app::CanvasToolToolbarAction::toggle_touch_lock);
|
||||
PP_EXPECT(harness, toolbar.bindings[5].button_id == "btn-cam");
|
||||
PP_EXPECT(harness, !toolbar.bindings[5].custom_button);
|
||||
PP_EXPECT(harness, toolbar.bindings[12].button_id == "btn-bucket");
|
||||
PP_EXPECT(harness, toolbar.bindings[12].mode == pp::app::CanvasToolMode::flood_fill);
|
||||
}
|
||||
|
||||
void toolbar_binding_actions_match_canvas_tool_plans(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto toolbar = pp::app::plan_canvas_tool_toolbar();
|
||||
const auto draw = pp::app::plan_canvas_tool_toolbar_binding_action(toolbar.bindings[0], true);
|
||||
const auto pick_from_draw = pp::app::plan_canvas_tool_toolbar_binding_action(toolbar.bindings[1], true);
|
||||
const auto pick_from_camera = pp::app::plan_canvas_tool_toolbar_binding_action(toolbar.bindings[1], false);
|
||||
const auto touch_lock = pp::app::plan_canvas_tool_toolbar_binding_action(toolbar.bindings[2], false);
|
||||
const auto copy = pp::app::plan_canvas_tool_toolbar_binding_action(toolbar.bindings[7], false);
|
||||
const auto cut = pp::app::plan_canvas_tool_toolbar_binding_action(toolbar.bindings[8], false);
|
||||
|
||||
PP_EXPECT(harness, draw.operation == pp::app::CanvasToolOperation::select_mode);
|
||||
PP_EXPECT(harness, draw.mode == pp::app::CanvasToolMode::draw);
|
||||
PP_EXPECT(harness, pick_from_draw.operation == pp::app::CanvasToolOperation::toggle_picking);
|
||||
PP_EXPECT(harness, pick_from_draw.toggles_picking);
|
||||
PP_EXPECT(harness, !pick_from_draw.no_op);
|
||||
PP_EXPECT(harness, pick_from_camera.no_op);
|
||||
PP_EXPECT(harness, !pick_from_camera.toggles_picking);
|
||||
PP_EXPECT(harness, touch_lock.operation == pp::app::CanvasToolOperation::toggle_touch_lock);
|
||||
PP_EXPECT(harness, touch_lock.toggles_touch_lock);
|
||||
PP_EXPECT(harness, copy.transform_action == pp::app::CanvasToolTransformAction::copy);
|
||||
PP_EXPECT(harness, cut.transform_action == pp::app::CanvasToolTransformAction::cut);
|
||||
}
|
||||
|
||||
void button_state_tracks_active_mode_and_toggles(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto draw = pp::app::plan_canvas_tool_button_state(
|
||||
@@ -295,6 +336,8 @@ int main()
|
||||
harness.run("selection plans canvas modes", selection_plans_canvas_modes);
|
||||
harness.run("transform tools plan copy and cut actions", transform_tools_plan_copy_and_cut_actions);
|
||||
harness.run("pick and touch lock toggle state", pick_and_touch_lock_toggle_state);
|
||||
harness.run("toolbar plan exposes full legacy button set", toolbar_plan_exposes_full_legacy_button_set);
|
||||
harness.run("toolbar binding actions match canvas tool plans", toolbar_binding_actions_match_canvas_tool_plans);
|
||||
harness.run("button state tracks active mode and toggles", button_state_tracks_active_mode_and_toggles);
|
||||
harness.run("cursor visibility projects canvas state", cursor_visibility_projects_canvas_state);
|
||||
harness.run("cursor visibility forces visible for modifier or tool", cursor_visibility_forces_visible_for_modifier_or_tool);
|
||||
|
||||
Reference in New Issue
Block a user