예제 #1
0
        public void TestRetryFromResults()
        {
            Player        player  = null;
            ResultsScreen results = null;

            WorkingBeatmap beatmap() => Game.Beatmap.Value;

            PushAndConfirm(() => new TestSongSelect());

            AddStep("import beatmap", () => ImportBeatmapTest.LoadQuickOszIntoOsu(Game).Wait());

            AddUntilStep("wait for selected", () => !Game.Beatmap.IsDefault);

            AddStep("set autoplay", () => Game.SelectedMods.Value = new[] { new OsuModAutoplay() });

            AddStep("press enter", () => InputManager.Key(Key.Enter));
            AddUntilStep("wait for player", () => (player = Game.ScreenStack.CurrentScreen as Player) != null);
            AddStep("seek to end", () => player.ChildrenOfType <GameplayClockContainer>().First().Seek(beatmap().Track.Length));
            AddUntilStep("wait for pass", () => (results = Game.ScreenStack.CurrentScreen as ResultsScreen) != null && results.IsLoaded);
            AddStep("attempt to retry", () => results.ChildrenOfType <HotkeyRetryOverlay>().First().Action());
            AddUntilStep("wait for player", () => Game.ScreenStack.CurrentScreen != player && Game.ScreenStack.CurrentScreen is Player);
        }