public void TestExternalHideDoesntAffectConfig() { HUDVisibilityMode originalConfigValue = HUDVisibilityMode.HideDuringGameplay; createNew(); AddStep("get original config value", () => originalConfigValue = config.Get <HUDVisibilityMode>(OsuSetting.HUDVisibilityMode)); AddStep("set showhud false", () => hudOverlay.ShowHud.Value = false); AddAssert("config unchanged", () => originalConfigValue == config.Get <HUDVisibilityMode>(OsuSetting.HUDVisibilityMode)); AddStep("set showhud true", () => hudOverlay.ShowHud.Value = true); AddAssert("config unchanged", () => originalConfigValue == config.Get <HUDVisibilityMode>(OsuSetting.HUDVisibilityMode)); }
public void TestHiddenHUDDoesntBlockSkinnableComponentsLoad() { HUDVisibilityMode originalConfigValue = default; AddStep("get original config value", () => originalConfigValue = config.Get <HUDVisibilityMode>(OsuSetting.HUDVisibilityMode)); AddStep("set hud to never show", () => config.SetValue(OsuSetting.HUDVisibilityMode, HUDVisibilityMode.Never)); createNew(); AddUntilStep("wait for hud load", () => hudOverlay.IsLoaded); AddUntilStep("skinnable components loaded", () => hudOverlay.ChildrenOfType <SkinnableTargetContainer>().Single().ComponentsLoaded); AddStep("set original config value", () => config.SetValue(OsuSetting.HUDVisibilityMode, originalConfigValue)); }
public void TestMomentaryShowHUD() { createNew(); HUDVisibilityMode originalConfigValue = HUDVisibilityMode.HideDuringGameplay; AddStep("get original config value", () => originalConfigValue = config.Get <HUDVisibilityMode>(OsuSetting.HUDVisibilityMode)); AddStep("set hud to never show", () => config.SetValue(OsuSetting.HUDVisibilityMode, HUDVisibilityMode.Never)); AddUntilStep("wait for fade", () => !hideTarget.IsPresent); AddStep("trigger momentary show", () => InputManager.PressKey(Key.ControlLeft)); AddUntilStep("wait for visible", () => hideTarget.IsPresent); AddStep("stop trigering", () => InputManager.ReleaseKey(Key.ControlLeft)); AddUntilStep("wait for fade", () => !hideTarget.IsPresent); AddStep("set original config value", () => config.SetValue(OsuSetting.HUDVisibilityMode, originalConfigValue)); }
public void TestSpectatorPlayerInteractiveElementsHidden() { HUDVisibilityMode originalConfigValue = default; AddStep("get original config hud visibility", () => originalConfigValue = config.Get <HUDVisibilityMode>(OsuSetting.HUDVisibilityMode)); AddStep("set config hud visibility to always", () => config.SetValue(OsuSetting.HUDVisibilityMode, HUDVisibilityMode.Always)); start(new[] { PLAYER_1_ID, PLAYER_2_ID }); loadSpectateScreen(false); AddUntilStep("wait for player loaders", () => this.ChildrenOfType <PlayerLoader>().Count() == 2); AddAssert("all player loader settings hidden", () => this.ChildrenOfType <PlayerLoader>().All(l => !l.ChildrenOfType <FillFlowContainer <PlayerSettingsGroup> >().Any())); AddUntilStep("wait for players to load", () => spectatorScreen.AllPlayersLoaded); // components wrapped in skinnable target containers load asynchronously, potentially taking more than one frame to load. // therefore use until step rather than direct assert to account for that. AddUntilStep("all interactive elements removed", () => this.ChildrenOfType <Player>().All(p => !p.ChildrenOfType <PlayerSettingsOverlay>().Any() && !p.ChildrenOfType <HoldForMenuButton>().Any() && p.ChildrenOfType <SongProgressBar>().SingleOrDefault()?.ShowHandle == false)); AddStep("restore config hud visibility", () => config.SetValue(OsuSetting.HUDVisibilityMode, originalConfigValue)); }