mirror of
https://github.com/ppy/osu.git
synced 2025-01-06 08:22:56 +08:00
Fix potential nullref in certain beatmap carousel tests
This commit is contained in:
parent
777c3f447c
commit
e6ff262521
@ -16,7 +16,9 @@ using osu.Framework.Utils;
|
|||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Configuration;
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
|
using osu.Game.Rulesets.Catch;
|
||||||
using osu.Game.Rulesets.Osu;
|
using osu.Game.Rulesets.Osu;
|
||||||
|
using osu.Game.Rulesets.Taiko;
|
||||||
using osu.Game.Screens.Select;
|
using osu.Game.Screens.Select;
|
||||||
using osu.Game.Screens.Select.Carousel;
|
using osu.Game.Screens.Select.Carousel;
|
||||||
using osu.Game.Screens.Select.Filter;
|
using osu.Game.Screens.Select.Filter;
|
||||||
@ -926,10 +928,7 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
|
|
||||||
// 10 sets that go osu! -> taiko -> catch -> osu! -> ...
|
// 10 sets that go osu! -> taiko -> catch -> osu! -> ...
|
||||||
for (int i = 0; i < 10; i++)
|
for (int i = 0; i < 10; i++)
|
||||||
{
|
sets.Add(TestResources.CreateTestBeatmapSetInfo(5, new[] { getRuleset(i) }));
|
||||||
var rulesetInfo = rulesets.AvailableRulesets.ElementAt(i % 3);
|
|
||||||
sets.Add(TestResources.CreateTestBeatmapSetInfo(5, new[] { rulesetInfo }));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sort mode is important to keep the ruleset order
|
// Sort mode is important to keep the ruleset order
|
||||||
loadBeatmaps(sets, () => new FilterCriteria { Sort = SortMode.Title });
|
loadBeatmaps(sets, () => new FilterCriteria { Sort = SortMode.Title });
|
||||||
@ -937,13 +936,29 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
|
|
||||||
for (int i = 1; i < 10; i++)
|
for (int i = 1; i < 10; i++)
|
||||||
{
|
{
|
||||||
var rulesetInfo = rulesets.AvailableRulesets.ElementAt(i % 3);
|
var rulesetInfo = getRuleset(i % 3);
|
||||||
|
|
||||||
AddStep($"Set ruleset to {rulesetInfo.ShortName}", () =>
|
AddStep($"Set ruleset to {rulesetInfo.ShortName}", () =>
|
||||||
{
|
{
|
||||||
carousel.Filter(new FilterCriteria { Ruleset = rulesetInfo, Sort = SortMode.Title }, false);
|
carousel.Filter(new FilterCriteria { Ruleset = rulesetInfo, Sort = SortMode.Title }, false);
|
||||||
});
|
});
|
||||||
waitForSelection(i + 1, 1);
|
waitForSelection(i + 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static RulesetInfo getRuleset(int index)
|
||||||
|
{
|
||||||
|
switch (index % 3)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
return new OsuRuleset().RulesetInfo;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
return new TaikoRuleset().RulesetInfo;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
return new CatchRuleset().RulesetInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -953,10 +968,7 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
|
|
||||||
// 10 sets that go taiko, osu!, osu!, osu!, taiko, osu!, osu!, osu!, ...
|
// 10 sets that go taiko, osu!, osu!, osu!, taiko, osu!, osu!, osu!, ...
|
||||||
for (int i = 0; i < 10; i++)
|
for (int i = 0; i < 10; i++)
|
||||||
{
|
sets.Add(TestResources.CreateTestBeatmapSetInfo(5, new[] { getRuleset(i) }));
|
||||||
var rulesetInfo = rulesets.AvailableRulesets.ElementAt(i % 4 == 0 ? 1 : 0);
|
|
||||||
sets.Add(TestResources.CreateTestBeatmapSetInfo(5, new[] { rulesetInfo }));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sort mode is important to keep the ruleset order
|
// Sort mode is important to keep the ruleset order
|
||||||
loadBeatmaps(sets, () => new FilterCriteria { Sort = SortMode.Title });
|
loadBeatmaps(sets, () => new FilterCriteria { Sort = SortMode.Title });
|
||||||
@ -974,6 +986,18 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
carousel.Filter(new FilterCriteria { Sort = SortMode.Title }, false);
|
carousel.Filter(new FilterCriteria { Sort = SortMode.Title }, false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static RulesetInfo getRuleset(int index)
|
||||||
|
{
|
||||||
|
switch (index % 4)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
return new TaikoRuleset().RulesetInfo;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return new OsuRuleset().RulesetInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadBeatmaps(List<BeatmapSetInfo> beatmapSets = null, Func<FilterCriteria> initialCriteria = null, Action<BeatmapCarousel> carouselAdjust = null, int? count = null,
|
private void loadBeatmaps(List<BeatmapSetInfo> beatmapSets = null, Func<FilterCriteria> initialCriteria = null, Action<BeatmapCarousel> carouselAdjust = null, int? count = null,
|
||||||
|
Loading…
Reference in New Issue
Block a user