Files
XCEngine/tests/UI/Editor/integration/README.md

5.4 KiB

Editor UI Integration Validation

This directory contains editor-only XCUI manual validation scenarios.

Rules:

  • Shared Core primitives stay in tests/UI/Core/integration/.
  • Only editor-only shell, host, widget, and domain-integrated validation belongs here.
  • Scenarios are organized as tests/UI/Editor/integration/<category>/<scenario>/.
  • Each scenario owns its own captures/ directory.

Layout:

  • shared/: shared host wrapper, scenario registry, shared theme
  • shell/workspace_shell_compose/: split/tab/panel shell compose only
  • shell/menu_bar_basic/: menu bar open/close/hover/dispatch only
  • shell/context_menu_basic/: context menu root/submenu/dismiss/dispatch only
  • shell/panel_frame_basic/: panel frame layout/state/hit-test only
  • shell/status_bar_basic/: status bar slot/segment/hit-test only
  • shell/tab_strip_basic/: tab strip layout/state/hit-test/close/navigation only
  • shell/viewport_slot_basic/: viewport shell chrome/surface/status only
  • state/panel_session_flow/: panel session state flow only
  • state/layout_persistence/: layout save/load/reset only
  • state/shortcut_dispatch/: shortcut match/suppression/dispatch only

Scenarios:

  • editor.shell.workspace_shell_compose Build target: editor_ui_workspace_shell_compose_validation Executable: XCUIEditorWorkspaceShellComposeValidation.exe Scope: DockHost compose, splitter drag, tab host, panel frame placeholders, workspace active-panel sync

  • editor.shell.menu_bar_basic Build target: editor_ui_menu_bar_basic_validation Executable: XCUIEditorMenuBarBasicValidation.exe Scope: menu bar open/close, hover, dismiss, menu command dispatch only

  • editor.shell.context_menu_basic Build target: editor_ui_context_menu_basic_validation Executable: XCUIEditorContextMenuBasicValidation.exe Scope: context menu root anchor, submenu hover, outside/Esc dismiss, command dispatch only

  • editor.shell.panel_frame_basic Build target: editor_ui_panel_frame_basic_validation Executable: XCUIEditorPanelFrameBasicValidation.exe Scope: panel frame header/body/footer layout, focus/active/hover chrome, pin/close hit target only

  • editor.shell.status_bar_basic Build target: editor_ui_status_bar_basic_validation Executable: XCUIEditorStatusBarBasicValidation.exe Scope: status bar slot layout, hover/active segment hit target, separator layout only

  • editor.shell.tab_strip_basic Build target: editor_ui_tab_strip_basic_validation Executable: XCUIEditorTabStripBasicValidation.exe Scope: tab header layout, selected/hover/focus, close hit target, close fallback, Left/Right/Home/End navigation only

  • editor.shell.viewport_slot_basic Build target: editor_ui_viewport_slot_basic_validation Executable: XCUIEditorViewportSlotBasicValidation.exe Scope: viewport top bar / surface / status bar layout, hover/focus/active/capture, texture vs fallback only

  • editor.state.panel_session_flow Build target: editor_ui_panel_session_flow_validation Executable: XCUIEditorPanelSessionFlowValidation.exe Scope: command dispatch + workspace controller + open/close/show/hide/activate

  • editor.state.layout_persistence Build target: editor_ui_layout_persistence_validation Executable: XCUIEditorLayoutPersistenceValidation.exe Scope: layout snapshot + serialize/deserialize + invalid payload reject

  • editor.state.shortcut_dispatch Build target: editor_ui_shortcut_dispatch_validation Executable: XCUIEditorShortcutDispatchValidation.exe Scope: shortcut match + scope + suppression + command dispatch

Run:

cmake --build build --config Debug --target editor_ui_integration_tests

Auto capture:

  • Set XCUI_AUTO_CAPTURE_ON_STARTUP=1 before launching a validation executable to force a first-frame screenshot into that scenario's captures/ directory.
  • Manual validation still uses F12; startup auto capture is only for deterministic self-check / automation.

Selected controls:

  • shell/workspace_shell_compose/ Drag splitters, switch Document A/B/C, close tabs or side panels, press Reset, press F12.

  • shell/menu_bar_basic/ Click File / Window / Layout, move the mouse across menu items, click outside the menu or press Esc, press F12.

  • shell/context_menu_basic/ Right click inside Context Target, hover Workspace Tools, click actions, click outside the menu or press Esc, press F12.

  • shell/panel_frame_basic/ Move the mouse over the preview panel, click Body / Pin / Close, toggle Active / Focus / Closable / Footer, press F12.

  • shell/status_bar_basic/ Move the mouse across leading/trailing segments, click interactive segments, toggle focus/active, press F12.

  • shell/tab_strip_basic/ Click Document A / B / C, click X on closable tabs, click content to focus, press Left / Right / Home / End, press Reset, press F12.

  • shell/viewport_slot_basic/ Hover toolbar / surface / status bar, click surface to focus, hold and release left mouse to inspect capture, toggle TopBar / 状态条 / Texture / 方形比例, press F12.

  • state/panel_session_flow/ Click Hide Active / Show Doc A / Close Doc B / Open Doc B / Activate Details / Reset, press F12.

  • state/layout_persistence/ Click Hide Active -> Save Layout -> Close Doc B -> Load Layout, click Load Invalid, press F12.

  • state/shortcut_dispatch/ Press Ctrl+P / Ctrl+H / Ctrl+W / Ctrl+O / Ctrl+R, toggle Text Input, press F12.