Extend app input planning to UI state
This commit is contained in:
@@ -1030,6 +1030,18 @@ if(TARGET pano_cli)
|
||||
LABELS "app;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-input\".*\"kind\":\"key\".*\"dispatchMain\":true.*\"setKeyDown\":true.*\"syncVrCameraRotation\":true")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_input_ui_toggle_smoke
|
||||
COMMAND pano_cli plan-app-input --kind ui-toggle --panel-child-count 4)
|
||||
set_tests_properties(pano_cli_plan_app_input_ui_toggle_smoke PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-input\".*\"kind\":\"ui-toggle\".*\"nextUiVisible\":false.*\"firstPanelChildIndex\":1.*\"panelChildCount\":4")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_input_stylus_smoke
|
||||
COMMAND pano_cli plan-app-input --kind stylus --no-canvas)
|
||||
set_tests_properties(pano_cli_plan_app_input_stylus_smoke PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-input\".*\"kind\":\"stylus\".*\"setHasStylus\":true.*\"enableCanvasTouchLock\":false")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_input_rejects_bad_float
|
||||
COMMAND pano_cli plan-app-input --kind pointer --bad-float)
|
||||
set_tests_properties(pano_cli_plan_app_input_rejects_bad_float PROPERTIES
|
||||
@@ -1037,6 +1049,13 @@ if(TARGET pano_cli)
|
||||
WILL_FAIL TRUE
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-input\".*\"message\":\"input zoom must be finite and positive\"")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_input_rejects_missing_ui_panel
|
||||
COMMAND pano_cli plan-app-input --kind ui-toggle --main-child-count 1)
|
||||
set_tests_properties(pano_cli_plan_app_input_rejects_missing_ui_panel PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-input\".*\"message\":\"UI toggle requires a panel container child\"")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_shutdown_smoke
|
||||
COMMAND pano_cli plan-app-shutdown)
|
||||
set_tests_properties(pano_cli_plan_app_shutdown_smoke PROPERTIES
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user