mirror of
https://github.com/osukey/osukey.git
synced 2025-06-30 07:38:04 +09:00
Add tests ensuring correct behaviour with ruleset selection
This commit is contained in:
parent
555c82e9c9
commit
4f40a04425
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
using osu.Game.Overlays.BeatmapSet;
|
using osu.Game.Overlays.BeatmapSet;
|
||||||
@ -40,24 +41,19 @@ namespace osu.Game.Tests.Visual.Online
|
|||||||
typeof(PreviewButton),
|
typeof(PreviewButton),
|
||||||
typeof(SuccessRate),
|
typeof(SuccessRate),
|
||||||
typeof(BeatmapAvailability),
|
typeof(BeatmapAvailability),
|
||||||
|
typeof(BeatmapRulesetSelector),
|
||||||
|
typeof(BeatmapRulesetTabItem),
|
||||||
};
|
};
|
||||||
|
|
||||||
protected override bool UseOnlineAPI => true;
|
protected override bool UseOnlineAPI => true;
|
||||||
|
|
||||||
private RulesetInfo taikoRuleset;
|
|
||||||
private RulesetInfo maniaRuleset;
|
|
||||||
|
|
||||||
public TestSceneBeatmapSetOverlay()
|
public TestSceneBeatmapSetOverlay()
|
||||||
{
|
{
|
||||||
Add(overlay = new TestBeatmapSetOverlay());
|
Add(overlay = new TestBeatmapSetOverlay());
|
||||||
}
|
}
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[Resolved]
|
||||||
private void load(RulesetStore rulesets)
|
private RulesetStore rulesets { get; set; }
|
||||||
{
|
|
||||||
taikoRuleset = rulesets.GetRuleset(1);
|
|
||||||
maniaRuleset = rulesets.GetRuleset(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestLoading()
|
public void TestLoading()
|
||||||
@ -111,7 +107,7 @@ namespace osu.Game.Tests.Visual.Online
|
|||||||
StarDifficulty = 9.99,
|
StarDifficulty = 9.99,
|
||||||
Version = @"TEST",
|
Version = @"TEST",
|
||||||
Length = 456000,
|
Length = 456000,
|
||||||
Ruleset = maniaRuleset,
|
Ruleset = rulesets.GetRuleset(3),
|
||||||
BaseDifficulty = new BeatmapDifficulty
|
BaseDifficulty = new BeatmapDifficulty
|
||||||
{
|
{
|
||||||
CircleSize = 1,
|
CircleSize = 1,
|
||||||
@ -189,7 +185,7 @@ namespace osu.Game.Tests.Visual.Online
|
|||||||
StarDifficulty = 5.67,
|
StarDifficulty = 5.67,
|
||||||
Version = @"ANOTHER TEST",
|
Version = @"ANOTHER TEST",
|
||||||
Length = 123000,
|
Length = 123000,
|
||||||
Ruleset = taikoRuleset,
|
Ruleset = rulesets.GetRuleset(1),
|
||||||
BaseDifficulty = new BeatmapDifficulty
|
BaseDifficulty = new BeatmapDifficulty
|
||||||
{
|
{
|
||||||
CircleSize = 9,
|
CircleSize = 9,
|
||||||
@ -217,6 +213,54 @@ namespace osu.Game.Tests.Visual.Online
|
|||||||
downloadAssert(false);
|
downloadAssert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMultipleRulesets()
|
||||||
|
{
|
||||||
|
AddStep("show multiple rulesets beatmap", () =>
|
||||||
|
{
|
||||||
|
var beatmaps = new List<BeatmapInfo>();
|
||||||
|
|
||||||
|
foreach (var ruleset in rulesets.AvailableRulesets.Skip(1))
|
||||||
|
{
|
||||||
|
beatmaps.Add(new BeatmapInfo
|
||||||
|
{
|
||||||
|
Version = ruleset.Name,
|
||||||
|
Ruleset = ruleset,
|
||||||
|
BaseDifficulty = new BeatmapDifficulty(),
|
||||||
|
OnlineInfo = new BeatmapOnlineInfo(),
|
||||||
|
Metrics = new BeatmapMetrics
|
||||||
|
{
|
||||||
|
Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6).ToArray(),
|
||||||
|
Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6).ToArray(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
overlay.ShowBeatmapSet(new BeatmapSetInfo
|
||||||
|
{
|
||||||
|
Metadata = new BeatmapMetadata
|
||||||
|
{
|
||||||
|
Title = @"multiple rulesets beatmap",
|
||||||
|
Artist = @"none",
|
||||||
|
Author = new User
|
||||||
|
{
|
||||||
|
Username = "BanchoBot",
|
||||||
|
Id = 3,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
OnlineInfo = new BeatmapSetOnlineInfo
|
||||||
|
{
|
||||||
|
Covers = new BeatmapSetOnlineCovers(),
|
||||||
|
},
|
||||||
|
Metrics = new BeatmapSetMetrics { Ratings = Enumerable.Range(0, 11).ToArray() },
|
||||||
|
Beatmaps = beatmaps
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
AddAssert("shown beatmaps of current ruleset", () => overlay.Header.Picker.Difficulties.All(b => b.Beatmap.Ruleset.Equals(overlay.Header.RulesetSelector.Current.Value)));
|
||||||
|
AddAssert("left-most beatmap selected", () => overlay.Header.Picker.Difficulties.First().State == BeatmapPicker.DifficultySelectorState.Selected);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestHide()
|
public void TestHide()
|
||||||
{
|
{
|
||||||
@ -281,12 +325,12 @@ namespace osu.Game.Tests.Visual.Online
|
|||||||
|
|
||||||
private void downloadAssert(bool shown)
|
private void downloadAssert(bool shown)
|
||||||
{
|
{
|
||||||
AddAssert($"is download button {(shown ? "shown" : "hidden")}", () => overlay.DownloadButtonsVisible == shown);
|
AddAssert($"is download button {(shown ? "shown" : "hidden")}", () => overlay.Header.DownloadButtonsVisible == shown);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TestBeatmapSetOverlay : BeatmapSetOverlay
|
private class TestBeatmapSetOverlay : BeatmapSetOverlay
|
||||||
{
|
{
|
||||||
public bool DownloadButtonsVisible => Header.DownloadButtonsVisible;
|
public new Header Header => base.Header;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user