Extend app input planning to UI state

This commit is contained in:
2026-06-05 06:44:57 +02:00
parent b825d920d2
commit 32c95b224f
8 changed files with 196 additions and 19 deletions

View File

@@ -102,6 +102,37 @@ void simple_input_plan_tracks_main_layout_availability(pp::tests::Harness& harne
PP_EXPECT(harness, !missing.dispatch_main);
}
void ui_visibility_toggle_plan_flips_state_and_targets_panel_children(pp::tests::Harness& harness)
{
const auto hidden = pp::app::plan_app_ui_visibility_toggle(true, true, 2U, 4U);
const auto visible = pp::app::plan_app_ui_visibility_toggle(false, true, 3U, 1U);
PP_EXPECT(harness, hidden);
PP_EXPECT(harness, !hidden.value().next_ui_visible);
PP_EXPECT(harness, hidden.value().first_panel_child_index == 1U);
PP_EXPECT(harness, hidden.value().panel_child_count == 4U);
PP_EXPECT(harness, visible);
PP_EXPECT(harness, visible.value().next_ui_visible);
PP_EXPECT(harness, visible.value().panel_child_count == 1U);
}
void ui_visibility_toggle_plan_rejects_missing_panel_container(pp::tests::Harness& harness)
{
PP_EXPECT(harness, !pp::app::plan_app_ui_visibility_toggle(true, false, 0U, 0U));
PP_EXPECT(harness, !pp::app::plan_app_ui_visibility_toggle(true, true, 1U, 0U));
}
void stylus_attach_plan_sets_touch_lock_only_when_canvas_exists(pp::tests::Harness& harness)
{
const auto with_canvas = pp::app::plan_app_stylus_attach(true);
const auto without_canvas = pp::app::plan_app_stylus_attach(false);
PP_EXPECT(harness, with_canvas.set_has_stylus);
PP_EXPECT(harness, with_canvas.enable_canvas_touch_lock);
PP_EXPECT(harness, without_canvas.set_has_stylus);
PP_EXPECT(harness, !without_canvas.enable_canvas_touch_lock);
}
} // namespace
int main()
@@ -114,5 +145,8 @@ int main()
harness.run("gesture plan rejects invalid input", gesture_plan_rejects_invalid_input);
harness.run("key plan tracks state and VR spacebar sync", key_plan_tracks_state_and_vr_spacebar_sync);
harness.run("simple input plan tracks main layout availability", simple_input_plan_tracks_main_layout_availability);
harness.run("UI visibility toggle plan flips state and targets panel children", ui_visibility_toggle_plan_flips_state_and_targets_panel_children);
harness.run("UI visibility toggle plan rejects missing panel container", ui_visibility_toggle_plan_rejects_missing_panel_container);
harness.run("stylus attach plan sets touch lock only when canvas exists", stylus_attach_plan_sets_touch_lock_only_when_canvas_exists);
return harness.finish();
}