acdream/tests/AcDream.App.Tests/UI
Erik 67e5b8cff2 fix(D.2b): UiMenu — controller owns Selected (review fix for Task 4)
Review caught a behavior divergence: the generic UiMenu auto-set its own
Selected on any enabled pick, while the controller's EnabledProvider keeps the
null-payload specials (Squelch / Tell-to-Selected) enabled/white like retail.
So a special-item click set Selected=null and shifted the highlight onto the
deferred placeholders — and the menu tests masked it by using a different
(specials-disabled) gate than the controller ships.

Fix: clean MVC contract mirroring retail UIElement_Menu::NewSelection — the
widget REPORTS the pick via OnSelect; the controller OWNS Selected (it sets it
only for talk-channel payloads). A special-item click now fires OnSelect(null),
the controller ignores it, and the active channel + highlight stay put —
observably identical to the pre-generalization widget, and extensible for when
Squelch lands. Tests realigned to the controller's gate (specials white) and to
the controller-owns-Selected contract.

Full suite: 403 passed, 2 skipped, 0 failed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 17:27:30 +02:00
..
Layout feat(D.2b): UiMenu (Type 6) — generic dropdown; channel knowledge moves to controller (widget-generalization Task 4) 2026-06-16 17:18:27 +02:00
ControlsIniTests.cs feat(D.2b): controls.ini stylesheet loader + apply title color 2026-06-14 17:31:55 +02:00
MarkupDocumentTests.cs feat(D.2b): retail 3-slice vital bars + headless mockup verifier 2026-06-14 21:40:11 +02:00
UiButtonTests.cs feat(D.2b): UiButton (Type 1) — Send + Max/Min as generic buttons (widget-generalization Task 3) 2026-06-16 17:07:58 +02:00
UiChatInputTests.cs feat(D.2b): UiChatInput — editable field, caret, 100-entry history (UIElement_Text port) 2026-06-15 22:36:44 +02:00
UiChatViewDatFontTests.cs feat(D.2b): UiChatView dat-font transcript + 1-line wheel quantum 2026-06-15 22:14:56 +02:00
UiChatViewTests.cs feat(D.2b): chat text selection + Ctrl-C copy 2026-06-14 23:21:28 +02:00
UiDatFontTests.cs feat(D.2b): retail dat-font (Font 0x40000000) for vitals numbers 2026-06-14 23:02:35 +02:00
UiMenuTests.cs fix(D.2b): UiMenu — controller owns Selected (review fix for Task 4) 2026-06-16 17:27:30 +02:00
UiMeterTests.cs feat(D.2b): UiMeter vital bar + fill-geometry tests 2026-06-14 16:38:07 +02:00
UiNineSlicePanelTests.cs feat(D.2b): UiNineSlicePanel — 8-piece retail window frame + geometry test 2026-06-14 16:36:11 +02:00
UiRootInputTests.cs feat(D.2b): chat text selection + Ctrl-C copy 2026-06-14 23:21:28 +02:00
UiScrollableTests.cs feat(D.2b): UiScrollable — pixel scroll model (UIElement_Scrollable port) 2026-06-15 22:19:29 +02:00
UiScrollbarTests.cs feat(D.2b): UiScrollbar (Type 11) — promote the generic chat scrollbar (widget-generalization Task 2) 2026-06-16 17:02:49 +02:00