Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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));
        }