Add regression test

This commit is contained in:
Dean Herbert 2020-03-29 23:29:46 +09:00
parent 4f5557096c
commit 653480b2f8
3 changed files with 17 additions and 10 deletions

View File

@ -4,7 +4,6 @@
using System.Linq;
using NUnit.Framework;
using osu.Framework.Allocation;
using osu.Framework.Screens;
using osu.Game.Configuration;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Catch;
@ -74,9 +73,6 @@ private Player loadPlayerFor(RulesetInfo rulesetInfo)
Beatmap.Value = working;
SelectedMods.Value = new[] { ruleset.GetAllMods().First(m => m is ModNoFail) };
Player?.Exit();
Player = null;
Player = CreatePlayer(ruleset);
LoadScreen(Player);

View File

@ -5,8 +5,11 @@
using System.Linq;
using osu.Framework.Testing;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Objects;
using osu.Game.Rulesets.Scoring;
using osu.Game.Screens.Play;
using osu.Game.Screens.Play.Break;
using osu.Game.Screens.Ranking;
namespace osu.Game.Tests.Visual.Gameplay
{
@ -17,8 +20,8 @@ public class TestSceneAutoplay : TestSceneAllRulesetPlayers
protected override Player CreatePlayer(Ruleset ruleset)
{
SelectedMods.Value = SelectedMods.Value.Concat(new[] { ruleset.GetAutoplayMod() }).ToArray();
return new TestPlayer(false, false);
SelectedMods.Value = new[] { ruleset.GetAutoplayMod() };
return new TestPlayer(false);
}
protected override void AddCheckSteps()
@ -32,6 +35,14 @@ protected override void AddCheckSteps()
AddAssert("overlay displays 100% accuracy", () => Player.BreakOverlay.ChildrenOfType<BreakInfo>().Single().AccuracyDisplay.Current.Value == 1);
AddStep("rewind", () => Player.GameplayClockContainer.Seek(-80000));
AddUntilStep("key counter reset", () => Player.HUDOverlay.KeyCounter.Children.All(kc => kc.CountPresses == 0));
AddStep("complete", () => Player.GameplayClockContainer.Seek(Player.DrawableRuleset.Objects.Last().GetEndTime()));
AddUntilStep("results displayed", () => getResultsScreen() != null);
AddAssert("score has combo", () => getResultsScreen().Score.Combo > 100);
AddAssert("score has no misses", () => getResultsScreen().Score.Statistics[HitResult.Miss] == 0);
ResultsScreen getResultsScreen() => Stack.CurrentScreen as ResultsScreen;
}
}
}

View File

@ -31,13 +31,13 @@ public class ResultsScreen : OsuScreen
[Resolved(CanBeNull = true)]
private Player player { get; set; }
private readonly ScoreInfo score;
public readonly ScoreInfo Score;
private Drawable bottomPanel;
public ResultsScreen(ScoreInfo score)
{
this.score = score;
this.Score = score;
}
[BackgroundDependencyLoader]
@ -47,7 +47,7 @@ private void load()
{
new ResultsScrollContainer
{
Child = new ScorePanel(score)
Child = new ScorePanel(Score)
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
@ -77,7 +77,7 @@ private void load()
Direction = FillDirection.Horizontal,
Children = new Drawable[]
{
new ReplayDownloadButton(score) { Width = 300 },
new ReplayDownloadButton(Score) { Width = 300 },
new RetryButton { Width = 300 },
}
}