Extract canvas tool UI planning
This commit is contained in:
62
tests/app_core/canvas_tool_ui_tests.cpp
Normal file
62
tests/app_core/canvas_tool_ui_tests.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
#include "app_core/canvas_tool_ui.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
namespace {
|
||||
|
||||
void selection_plans_canvas_modes(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto draw = pp::app::plan_canvas_tool_select(pp::app::CanvasToolMode::draw);
|
||||
PP_EXPECT(harness, draw.operation == pp::app::CanvasToolOperation::select_mode);
|
||||
PP_EXPECT(harness, draw.mode == pp::app::CanvasToolMode::draw);
|
||||
PP_EXPECT(harness, draw.transform_action == pp::app::CanvasToolTransformAction::none);
|
||||
PP_EXPECT(harness, draw.selects_toolbar_button);
|
||||
PP_EXPECT(harness, draw.updates_canvas_mode);
|
||||
PP_EXPECT(harness, !draw.no_op);
|
||||
|
||||
const auto mask_line = pp::app::plan_canvas_tool_select(pp::app::CanvasToolMode::mask_line);
|
||||
PP_EXPECT(harness, mask_line.mode == pp::app::CanvasToolMode::mask_line);
|
||||
PP_EXPECT(harness, mask_line.updates_canvas_mode);
|
||||
}
|
||||
|
||||
void transform_tools_plan_copy_and_cut_actions(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto copy = pp::app::plan_canvas_tool_select(pp::app::CanvasToolMode::copy);
|
||||
PP_EXPECT(harness, copy.mode == pp::app::CanvasToolMode::copy);
|
||||
PP_EXPECT(harness, copy.transform_action == pp::app::CanvasToolTransformAction::copy);
|
||||
PP_EXPECT(harness, copy.updates_canvas_mode);
|
||||
|
||||
const auto cut = pp::app::plan_canvas_tool_select(pp::app::CanvasToolMode::cut);
|
||||
PP_EXPECT(harness, cut.mode == pp::app::CanvasToolMode::cut);
|
||||
PP_EXPECT(harness, cut.transform_action == pp::app::CanvasToolTransformAction::cut);
|
||||
PP_EXPECT(harness, cut.updates_canvas_mode);
|
||||
}
|
||||
|
||||
void pick_and_touch_lock_toggle_state(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto pick_active = pp::app::plan_canvas_tool_pick_toggle(true);
|
||||
PP_EXPECT(harness, pick_active.operation == pp::app::CanvasToolOperation::toggle_picking);
|
||||
PP_EXPECT(harness, pick_active.requires_draw_mode);
|
||||
PP_EXPECT(harness, pick_active.toggles_picking);
|
||||
PP_EXPECT(harness, !pick_active.no_op);
|
||||
|
||||
const auto pick_noop = pp::app::plan_canvas_tool_pick_toggle(false);
|
||||
PP_EXPECT(harness, pick_noop.requires_draw_mode);
|
||||
PP_EXPECT(harness, !pick_noop.toggles_picking);
|
||||
PP_EXPECT(harness, pick_noop.no_op);
|
||||
|
||||
const auto touch_lock = pp::app::plan_canvas_tool_touch_lock_toggle();
|
||||
PP_EXPECT(harness, touch_lock.operation == pp::app::CanvasToolOperation::toggle_touch_lock);
|
||||
PP_EXPECT(harness, touch_lock.toggles_touch_lock);
|
||||
PP_EXPECT(harness, !touch_lock.no_op);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main()
|
||||
{
|
||||
pp::tests::Harness harness;
|
||||
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);
|
||||
return harness.finish();
|
||||
}
|
||||
Reference in New Issue
Block a user