mirror of https://github.com/ppy/osu
Add failing test case
This commit is contained in:
parent
f318452510
commit
b6701dd578
|
@ -32,6 +32,7 @@ public class TestSceneStoryboardWithOutro : PlayerTestScene
|
||||||
|
|
||||||
protected new OutroPlayer Player => (OutroPlayer)base.Player;
|
protected new OutroPlayer Player => (OutroPlayer)base.Player;
|
||||||
|
|
||||||
|
private double currentBeatmapDuration;
|
||||||
private double currentStoryboardDuration;
|
private double currentStoryboardDuration;
|
||||||
|
|
||||||
private bool showResults = true;
|
private bool showResults = true;
|
||||||
|
@ -45,7 +46,8 @@ public override void SetUpSteps()
|
||||||
AddStep("enable storyboard", () => LocalConfig.SetValue(OsuSetting.ShowStoryboard, true));
|
AddStep("enable storyboard", () => LocalConfig.SetValue(OsuSetting.ShowStoryboard, true));
|
||||||
AddStep("set dim level to 0", () => LocalConfig.SetValue<double>(OsuSetting.DimLevel, 0));
|
AddStep("set dim level to 0", () => LocalConfig.SetValue<double>(OsuSetting.DimLevel, 0));
|
||||||
AddStep("reset fail conditions", () => currentFailConditions = (_, _) => false);
|
AddStep("reset fail conditions", () => currentFailConditions = (_, _) => false);
|
||||||
AddStep("set storyboard duration to 2s", () => currentStoryboardDuration = 2000);
|
AddStep("set beatmap duration to 0s", () => currentBeatmapDuration = 0);
|
||||||
|
AddStep("set storyboard duration to 8s", () => currentStoryboardDuration = 8000);
|
||||||
AddStep("set ShowResults = true", () => showResults = true);
|
AddStep("set ShowResults = true", () => showResults = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,6 +153,24 @@ public void TestPerformExitNoOutro()
|
||||||
AddAssert("player exited", () => Stack.CurrentScreen == null);
|
AddAssert("player exited", () => Stack.CurrentScreen == null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestPerformExitAfterOutro()
|
||||||
|
{
|
||||||
|
CreateTest(() =>
|
||||||
|
{
|
||||||
|
AddStep("set beatmap duration to 4s", () => currentBeatmapDuration = 4000);
|
||||||
|
AddStep("set storyboard duration to 1s", () => currentStoryboardDuration = 1000);
|
||||||
|
});
|
||||||
|
|
||||||
|
AddUntilStep("storyboard ends", () => Player.GameplayClockContainer.CurrentTime >= currentStoryboardDuration);
|
||||||
|
AddStep("exit via pause", () => Player.ExitViaPause());
|
||||||
|
AddAssert("player paused", () => !Player.IsResuming);
|
||||||
|
|
||||||
|
AddStep("resume player", () => Player.Resume());
|
||||||
|
AddUntilStep("completion set by processor", () => Player.ScoreProcessor.HasCompleted.Value);
|
||||||
|
AddUntilStep("wait for score shown", () => Player.IsScoreShown);
|
||||||
|
}
|
||||||
|
|
||||||
protected override bool AllowFail => true;
|
protected override bool AllowFail => true;
|
||||||
|
|
||||||
protected override Ruleset CreatePlayerRuleset() => new OsuRuleset();
|
protected override Ruleset CreatePlayerRuleset() => new OsuRuleset();
|
||||||
|
@ -160,7 +180,7 @@ public void TestPerformExitNoOutro()
|
||||||
protected override IBeatmap CreateBeatmap(RulesetInfo ruleset)
|
protected override IBeatmap CreateBeatmap(RulesetInfo ruleset)
|
||||||
{
|
{
|
||||||
var beatmap = new Beatmap();
|
var beatmap = new Beatmap();
|
||||||
beatmap.HitObjects.Add(new HitCircle());
|
beatmap.HitObjects.Add(new HitCircle { StartTime = currentBeatmapDuration });
|
||||||
return beatmap;
|
return beatmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +209,7 @@ protected class OutroPlayer : TestPlayer
|
||||||
private event Func<HealthProcessor, JudgementResult, bool> failConditions;
|
private event Func<HealthProcessor, JudgementResult, bool> failConditions;
|
||||||
|
|
||||||
public OutroPlayer(Func<HealthProcessor, JudgementResult, bool> failConditions, bool showResults = true)
|
public OutroPlayer(Func<HealthProcessor, JudgementResult, bool> failConditions, bool showResults = true)
|
||||||
: base(false, showResults)
|
: base(showResults: showResults)
|
||||||
{
|
{
|
||||||
this.failConditions = failConditions;
|
this.failConditions = failConditions;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue