using AcDream.App.UI; namespace AcDream.App.Tests.UI; /// /// Campaign OP slice OP3: pins the Options panel's entry in /// — the data the toolbar's ALREADY-GENERIC /// panel-button mechanism (ToolbarController.PanelButtonIds already /// includes 0x1000019B, byte-verified authored panel id 10 — /// tests/AcDream.App.Tests/UI/Layout/ToolbarControllerTests.cs's own /// PanelButtons fixture at (0x1000019Bu, 10u)) reads to route /// the toolbar Options button and RetailUiRuntime.OnWindowVisibilityChanged /// to the retail Options window. No new toolbar wiring was needed — only /// this catalog entry, which the existing generic mechanism ( /// RetailUiRuntime.BindToolbarPanelButtons, /// RetailPanelUiController) picks up automatically. /// public sealed class RetailPanelCatalogTests { [Fact] public void Options_PanelId_Is10_MatchingTheToolbarButtonsAuthoredProperty() => Assert.Equal(10u, RetailPanelCatalog.Options); [Fact] public void Options_ResolvesToTheOptionsWindowName() { Assert.True(RetailPanelCatalog.TryGetWindowName(RetailPanelCatalog.Options, out string name)); Assert.Equal(WindowNames.Options, name); } [Fact] public void OptionsWindowName_ResolvesBackToThePanelId() { Assert.True(RetailPanelCatalog.TryGetPanelId(WindowNames.Options, out uint panelId)); Assert.Equal(RetailPanelCatalog.Options, panelId); } [Fact] public void Options_IsListedInMountedPanels() => Assert.Contains( (RetailPanelCatalog.Options, WindowNames.Options), RetailPanelCatalog.MountedPanels); [Fact] public void Options_IsListedInToolbarPanels() => Assert.Contains( (RetailPanelCatalog.Options, WindowNames.Options), RetailPanelCatalog.ToolbarPanels); // ── Campaign FA slice FA3 ──────────────────────────────────────────── [Fact] public void SocialPanel_PanelId_Is12_MatchingTheLiveDatSlotProperty() => Assert.Equal(12u, RetailPanelCatalog.SocialPanel); [Fact] public void SocialPanel_ResolvesToTheSocialPanelWindowName() { Assert.True(RetailPanelCatalog.TryGetWindowName(RetailPanelCatalog.SocialPanel, out string name)); Assert.Equal(WindowNames.SocialPanel, name); } [Fact] public void SocialPanel_IsListedInMountedPanels() => Assert.Contains( (RetailPanelCatalog.SocialPanel, WindowNames.SocialPanel), RetailPanelCatalog.MountedPanels); /// Lane A §6.1: the open path is keyboard-only (F3/F4); retail /// authors no toolbar button for either action. [Fact] public void SocialPanel_IsNotListedInToolbarPanels() => Assert.DoesNotContain( (RetailPanelCatalog.SocialPanel, WindowNames.SocialPanel), RetailPanelCatalog.ToolbarPanels); }