Route quick slider preview through app core
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "app_core/quick_ui.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <string>
|
||||
|
||||
namespace {
|
||||
@@ -125,6 +126,66 @@ void restore_and_reset_validate_state(pp::tests::Harness& harness)
|
||||
PP_EXPECT(harness, !pp::app::plan_quick_state_reset(0, false));
|
||||
}
|
||||
|
||||
void slider_preview_projects_cursor_and_mode_flags(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto ltr = pp::app::plan_quick_slider_preview(pp::app::QuickSliderPreviewInput {
|
||||
.ui_rtl = false,
|
||||
.slider_x = 10.0F,
|
||||
.slider_y = 20.0F,
|
||||
.slider_height = 40.0F,
|
||||
.zoom = 2.0F,
|
||||
.has_pen_mode = true,
|
||||
.has_line_mode = false,
|
||||
});
|
||||
PP_EXPECT(harness, ltr);
|
||||
if (ltr) {
|
||||
PP_EXPECT(harness, ltr.value().cursor_x == 220.0F);
|
||||
PP_EXPECT(harness, ltr.value().cursor_y == 80.0F);
|
||||
PP_EXPECT(harness, ltr.value().updates_pen_mode);
|
||||
PP_EXPECT(harness, !ltr.value().updates_line_mode);
|
||||
PP_EXPECT(harness, ltr.value().draws_tip);
|
||||
PP_EXPECT(harness, ltr.value().disables_pen_outline);
|
||||
PP_EXPECT(harness, ltr.value().redraws_brush_preview);
|
||||
PP_EXPECT(harness, ltr.value().invokes_change_callback);
|
||||
}
|
||||
|
||||
const auto rtl_line = pp::app::plan_quick_slider_preview(pp::app::QuickSliderPreviewInput {
|
||||
.ui_rtl = true,
|
||||
.slider_x = 50.0F,
|
||||
.slider_y = 10.0F,
|
||||
.slider_height = 20.0F,
|
||||
.zoom = 1.5F,
|
||||
.has_pen_mode = false,
|
||||
.has_line_mode = true,
|
||||
});
|
||||
PP_EXPECT(harness, rtl_line);
|
||||
if (rtl_line) {
|
||||
PP_EXPECT(harness, rtl_line.value().cursor_x == -75.0F);
|
||||
PP_EXPECT(harness, rtl_line.value().cursor_y == 30.0F);
|
||||
PP_EXPECT(harness, !rtl_line.value().updates_pen_mode);
|
||||
PP_EXPECT(harness, rtl_line.value().updates_line_mode);
|
||||
PP_EXPECT(harness, rtl_line.value().draws_tip);
|
||||
PP_EXPECT(harness, !rtl_line.value().disables_pen_outline);
|
||||
}
|
||||
}
|
||||
|
||||
void slider_preview_rejects_invalid_geometry(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(harness, !pp::app::plan_quick_slider_preview(pp::app::QuickSliderPreviewInput {
|
||||
.slider_x = std::nanf(""),
|
||||
.slider_height = 1.0F,
|
||||
.zoom = 1.0F,
|
||||
}));
|
||||
PP_EXPECT(harness, !pp::app::plan_quick_slider_preview(pp::app::QuickSliderPreviewInput {
|
||||
.slider_height = -1.0F,
|
||||
.zoom = 1.0F,
|
||||
}));
|
||||
PP_EXPECT(harness, !pp::app::plan_quick_slider_preview(pp::app::QuickSliderPreviewInput {
|
||||
.slider_height = 1.0F,
|
||||
.zoom = 0.0F,
|
||||
}));
|
||||
}
|
||||
|
||||
void executor_dispatches_selection_popup_restore_and_reset(pp::tests::Harness& harness)
|
||||
{
|
||||
FakeQuickUiServices services;
|
||||
@@ -216,6 +277,8 @@ int main()
|
||||
harness.run("slot click selects or opens popup", slot_click_selects_or_opens_popup);
|
||||
harness.run("slot click rejects invalid indices", slot_click_rejects_invalid_indices);
|
||||
harness.run("restore and reset validate state", restore_and_reset_validate_state);
|
||||
harness.run("slider preview projects cursor and mode flags", slider_preview_projects_cursor_and_mode_flags);
|
||||
harness.run("slider preview rejects invalid geometry", slider_preview_rejects_invalid_geometry);
|
||||
harness.run("executor dispatches selection popup restore and reset", executor_dispatches_selection_popup_restore_and_reset);
|
||||
harness.run("executor rejects malformed quick plans", executor_rejects_malformed_quick_plans);
|
||||
return harness.finish();
|
||||
|
||||
Reference in New Issue
Block a user