acdream/tests/AcDream.App.Tests/UI
Erik e178c6abac fix(vt): list column fix round 10/11 — Meta/Monsters-shaped end-to-end tests
Two tests built through the full MarkupDocument.Build parse -> bind ->
draw (recording renderer) -> click pipeline, transcribing the two real
VTank list shapes named in the fix round brief
(refs/vtank/uTank2.ViewXML.mainView.xml):

- EndToEnd_MetaShapedSixColumnList: lstMetaRules's shape (3 icon
  columns, a 150px text column, then two width="*" text columns, the
  second with an onclick) at a list width (703) chosen so the two auto
  columns' 505px leftover does NOT divide evenly (252/253) — proving
  the last one absorbs the rounding slack. Asserts each column kind
  draws inside its own x-range and a click in each of the six columns
  reaches its own bound callback with the right row (icon columns
  fire their own onclick; the plain text column still selects; the
  onclick-bearing trailing text column fires that instead).

- EndToEnd_MonstersShapedTwentyThreeColumnList: lstMonsters's shape
  (14 check columns, 7 text columns each given an onclick per fix item
  1, 2 icon columns) built from real fixedwidth values with NO "*"
  anywhere, at a list width (724) equal to the exact sum of every
  column's declared width — the "no auto column, last absorbs the
  remainder as today" case. Asserts the column-kind counts, each drawn
  kind's x-range, and one representative click per kind reaches its own
  callback (other same-kind columns share a dummy callback, proving the
  bound-per-column dispatch, not just "some column of that kind fired").

Both use iconkind="item" for their icon columns (not the default
"did") so the fake resolver's echoed id is the literal texture drawn,
sidestepping PluginIcons.Normalize's did-namespace OR — an incidental
discovery while writing these (the first draft asserted on raw ids and
failed against the normalized 0x06000000-tagged textures).

Verified meaningful two ways: both failed first against the pre-fix
raw-id assumption (texture ids came back normalized), and — a stronger
check specific to these integration tests, since the underlying
mechanics were already covered by earlier fix-round commits — a
temporary mutation of ColumnLayout's auto-column share computation
(forcing share=0) made EndToEnd_MetaShapedSixColumnList fail exactly as
expected before being reverted.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 21:28:10 +02:00
..
Layout feat(rendering): port retail building degrade walk 2026-09-04 22:29:18 +02:00
AutoWieldGenerationTests.cs fix(client): restore retail interaction parity 2026-08-26 20:45:11 +02:00
ChatMainWindowFilterSeedTests.cs fix(ui): OP5 review fixes — thumb sync, batched opacity writes, cull register row, tests 2026-08-11 07:36:54 +02:00
ChatTranscriptLogWriterTests.cs feat(chat): CT-B4 — @log, and the research block that was a wrong question 2026-08-21 11:28:20 +02:00
ClientCommandControllerTests.cs fix: complete retail parity stability pass 2026-08-28 20:01:39 +02:00
ControlsIniTests.cs feat(D.2b): controls.ini stylesheet loader + apply title color 2026-06-14 17:31:55 +02:00
CursorFeedbackControllerTests.cs fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
DatWidgetFactoryZOrderTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DragDropSpineTests.cs fix(client): restore retail interaction parity 2026-08-26 20:45:11 +02:00
GameplayConfirmationControllerTests.cs fix: social gate round 2, part 2 - confirmation-dialog sentences + the 2026-08-13 21:10:42 +02:00
IconComposerTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
ItemInteractionControllerTests.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
JournalPersistenceTests.cs feat(journal): QJ3/QJ4/QJ5 — both remaining tabs are live 2026-08-21 15:42:05 +02:00
KeyedIconInstalledDatTests.cs fix(plugin-ui): plugin did icons use retail's keyed-white recolor, not a raw blit 2026-09-06 17:40:39 +02:00
LayoutImporterMountTests.cs feat(ui): D.2b-B — sub-window mount (inheritor attaches base subtree) 2026-06-20 22:36:20 +02:00
MarkupDocumentTests.cs feat(mosstank): add VTank-style automation PoC 2026-08-27 18:57:21 +02:00
MarkupIconTests.cs fix(plugin-ui): Slice B residuals - shelf icon sink without magenta, validated icon bindings, negative ids, memoized DID resolves 2026-09-06 16:28:13 +02:00
MarkupListColumnsTests.cs fix(vt): list column fix round 10/11 — Meta/Monsters-shaped end-to-end tests 2026-09-06 21:28:10 +02:00
MarkupPanelClickTests.cs fix(mosstank): unclickable button, empty skill list, dev font, and chat output 2026-08-20 18:27:28 +02:00
MossTankIconInstalledDatTests.cs fix(plugin-ui): plugin did icons use retail's keyed-white recolor, not a raw blit 2026-09-06 17:40:39 +02:00
PluginSidePanelTests.cs fix(plugin-ui): Slice B residuals - shelf icon sink without magenta, validated icon bindings, negative ids, memoized DID resolves 2026-09-06 16:28:13 +02:00
PluginSidePanelToggleGlyphClipTests.cs fix(plugin-ui): shelf children must not anchor — the per-draw anchor pass was undoing collapse/reflow geometry 2026-09-06 16:04:04 +02:00
RetailCursorCatalogTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
RetailCursorManagerTests.cs feat(ui): complete retail cursor state machine 2026-07-11 08:31:40 +02:00
RetailItemConfirmationControllerTests.cs refactor(runtime): own interaction transactions 2026-07-26 11:13:09 +02:00
RetailMarkupIconResolverInstalledDatTests.cs fix(plugin-ui): plugin did icons use retail's keyed-white recolor, not a raw blit 2026-09-06 17:40:39 +02:00
RetailMarkupIconResolverMemoizationTests.cs fix(plugin-ui): plugin did icons use retail's keyed-white recolor, not a raw blit 2026-09-06 17:40:39 +02:00
RetailPanelCatalogTests.cs test(ui): FA3 -- social panel fixture dump, live-mount probe, conformance tests 2026-08-12 02:58:28 +02:00
RetailSkillTrainingConfirmationControllerTests.cs fix(ui): restore retail skill training confirmation 2026-07-13 17:57:29 +02:00
RetailUiAutomationProbeTests.cs fix(overhaul): integrate reviewed resize capture sequencing 2026-09-05 13:26:06 +02:00
RetailUiInteractionFlowTests.cs fix(client): restore retail interaction parity 2026-08-26 20:45:11 +02:00
RetailUiRuntimeLeaseTests.cs refactor(lifetime): own render resource prefixes 2026-07-22 14:42:14 +02:00
RetailWindowLayoutPersistenceTests.cs fix(plugin-ui): Slice A review fixes - real grip/toggle children, dialog z-order, persisted collapse/hide intent 2026-09-06 13:51:25 +02:00
RetailWindowLockPresentationControllerTests.cs fix(ui): restore retail vitals and window interactions 2026-08-20 13:26:35 +02:00
RetailWindowManagerTests.cs fix(ui): port retail window control feedback 2026-07-17 09:40:08 +02:00
RetailWindowOpacityControllerTests.cs fix #379: chat opacity fade was scoped to every window, not just chat 2026-08-11 23:00:57 +02:00
RetainedPanelControllerGroupTests.cs refactor(ui): own retained controller lifetimes 2026-07-10 23:35:26 +02:00
RetainedUiInputBindingTests.cs refactor(input): own pointer and callback lifetime 2026-07-22 11:59:33 +02:00
SpewBoxControllerTests.cs feat(chat): retail text style — two-plane glyph outlines, authored SpewBox/chat styles 2026-08-10 19:28:34 +02:00
SpewBoxLayoutDumpDiagnostic.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
UiAncestorClipTests.cs fix(CT-GF1): UiLabel opts out of the self-clip — plugin markup text restored 2026-08-25 07:28:26 +02:00
UiButtonStateMachineTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
UiButtonTests.cs fix: complete retail parity stability pass 2026-08-28 20:01:39 +02:00
UiClipRectTests.cs fix(ui): complete retail inventory scroll polish 2026-07-11 10:56:33 +02:00
UiCollapsibleFrameTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
UiCompositeShutdownTests.cs test(runtime): add unattended connected R6 soak 2026-07-20 12:12:08 +02:00
UiDatFontBorderPixelTests.cs fix(plugin-ui): Slice A review fixes - real grip/toggle children, dialog z-order, persisted collapse/hide intent 2026-09-06 13:51:25 +02:00
UiDatFontTests.cs test(app): measure the warmed path, not the path being warmed (#250) 2026-07-29 03:42:08 +02:00
UiElementChildOrderTests.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
UiFieldTests.cs feat(chat): CT-C2 Escape leaves the entry; CT-C3 the timestamp is grey 2026-08-21 08:28:45 +02:00
UiItemListGridTests.cs feat(ui): D.2b item interaction + retail cursors + live character sheet 2026-07-03 09:18:43 +02:00
UiItemListScrollTests.cs fix(ui): complete retail inventory scroll polish 2026-07-11 10:56:33 +02:00
UiItemListTests.cs feat(items): port retail shared cooldown overlays 2026-07-23 10:41:16 +02:00
UiItemSlotTests.cs fix(vendor): Slice 6 review corrections — ownership-checked retire, live slider display, drag-proof shop rows, hardened buy reservation 2026-08-07 23:12:50 +02:00
UiLayoutPolicyTests.cs fix(ui): preserve cropped chat and button faces 2026-07-10 18:11:14 +02:00
UiMenuPopupRoutingTests.cs fix #374: open dropdown popups get first claim on pointer routing 2026-08-11 15:17:17 +02:00
UiMenuTests.cs fix: complete retail parity stability pass 2026-08-28 20:01:39 +02:00
UiMeterTests.cs feat(D.2b): UiMeter vital bar + fill-geometry tests 2026-06-14 16:38:07 +02:00
UiMeterVerticalTests.cs feat(ui): D.2b-B — UiMeter vertical fill (burden bar, retail m_eDirection 2/4) 2026-06-21 08:58:37 +02:00
UiNineSlicePanelTests.cs feat(D.2b): UiNineSlicePanel — 8-piece retail window frame + geometry test 2026-06-14 16:36:11 +02:00
UiRadarTests.cs feat(ui): port retail radar and compass 2026-07-10 16:14:37 +02:00
UiRectOutlinePainterOrderTests.cs chore(plugin-ui): review cleanup — hermetic memo tests, shelf button anchors, outline pin, bounded miss cache; file #486/#487; correct #461 2026-09-06 17:09:46 +02:00
UiRenderContextAlphaTests.cs test: make prerequisite lanes fail honestly 2026-08-18 12:09:41 +02:00
UiRenderContextDrawStringDatOutlineTests.cs feat(chat): retail text style — two-plane glyph outlines, authored SpewBox/chat styles 2026-08-10 19:28:34 +02:00
UiRootFixedCanvasTests.cs fix(ui,runtime): Campaign LA gate-round-2 batch-review fixes F1,F3-F8; file #401 2026-08-15 12:28:06 +02:00
UiRootInputTests.cs fix(client): restore retail interaction parity 2026-08-26 20:45:11 +02:00
UiScrollablePanelTests.cs fix #371: straddling rows clip at the viewport edge instead of vanishing whole 2026-08-11 17:08:21 +02:00
UiScrollableTests.cs feat(ui): unify retained window mounts 2026-07-10 22:22:25 +02:00
UiScrollbarTests.cs fix(ui): disabled scrollbars keep retail hover hot-tracking 2026-08-24 19:54:28 +02:00
UiTemplateListBoxFlushPreservingScrollTests.cs feat(ui): FA4 -- fellowship page fully live 2026-08-12 04:40:53 +02:00
UiTemplateListBoxViewportTests.cs feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
UiTextDatFontTests.cs feat(D.2b): UiText (Type 12) -- generic text + Type-12 flip; transcript factory-built (widget-generalization Task 5) 2026-06-16 17:39:02 +02:00
UiTextTests.cs feat(ui): CT-A1 — multi-line text elements can carry coloured runs 2026-08-21 07:18:55 +02:00