mirror of
https://github.com/osukey/osukey.git
synced 2025-08-04 15:16:38 +09:00
fixed code
This commit is contained in:
@ -24,6 +24,8 @@ namespace osu.Game.Tests.Visual.Online
|
||||
|
||||
private BeatmapListingOverlay overlay;
|
||||
|
||||
private BeatmapListingSearchControl searchControl => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single();
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load()
|
||||
{
|
||||
@ -70,113 +72,123 @@ namespace osu.Game.Tests.Visual.Online
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestSupporterOnlyFiltersPlaceholderNoBeatmaps()
|
||||
public void TestNonSupportUseSupporterOnlyFiltersPlaceholderNoBeatmaps()
|
||||
{
|
||||
AddStep("fetch for 0 beatmaps", () => fetchFor());
|
||||
AddStep("set dummy as non-supporter", () => ((DummyAPIAccess)API).LocalUser.Value.IsSupporter = false);
|
||||
|
||||
// test non-supporter on Rank Achieved filter
|
||||
toggleRandomRankFilter();
|
||||
expectedPlaceholderShown(true, false);
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
supporterRequiredPlaceholderShown();
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
expectedPlaceholderShown(false, true);
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
notFoundPlaceholderShown();
|
||||
|
||||
// test non-supporter on Played filter
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(true, false);
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
supporterRequiredPlaceholderShown();
|
||||
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
expectedPlaceholderShown(false, true);
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
notFoundPlaceholderShown();
|
||||
|
||||
// test non-supporter on both Rank Achieved and Played filter
|
||||
toggleRandomRankFilter();
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(true, false);
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
supporterRequiredPlaceholderShown();
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
expectedPlaceholderShown(false, true);
|
||||
|
||||
AddStep("set dummy as supporter", () => ((DummyAPIAccess)API).LocalUser.Value.IsSupporter = true);
|
||||
|
||||
// test supporter on Rank Achieved filter
|
||||
toggleRandomRankFilter();
|
||||
expectedPlaceholderShown(false, true);
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
expectedPlaceholderShown(false, true);
|
||||
|
||||
// test supporter on Played filter
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(false, true);
|
||||
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
expectedPlaceholderShown(false, true);
|
||||
|
||||
// test supporter on both Rank Achieved and Played filter
|
||||
toggleRandomRankFilter();
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(false, true);
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
expectedPlaceholderShown(false, true);
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
notFoundPlaceholderShown();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestSupporterOnlyFiltersPlaceholderOneBeatmap()
|
||||
public void TestSupportUseSupporterOnlyFiltersPlaceholderNoBeatmaps()
|
||||
{
|
||||
AddStep("fetch for 0 beatmaps", () => fetchFor());
|
||||
AddStep("set dummy as supporter", () => ((DummyAPIAccess)API).LocalUser.Value.IsSupporter = true);
|
||||
|
||||
// test supporter on Rank Achieved filter
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
notFoundPlaceholderShown();
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
notFoundPlaceholderShown();
|
||||
|
||||
// test supporter on Played filter
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
notFoundPlaceholderShown();
|
||||
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
notFoundPlaceholderShown();
|
||||
|
||||
// test supporter on both Rank Achieved and Played filter
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
notFoundPlaceholderShown();
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
notFoundPlaceholderShown();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestNonSupporterUseSupporterOnlyFiltersPlaceholderOneBeatmap()
|
||||
{
|
||||
AddStep("fetch for 1 beatmap", () => fetchFor(CreateBeatmap(Ruleset.Value).BeatmapInfo.BeatmapSet));
|
||||
AddStep("set dummy as non-supporter", () => ((DummyAPIAccess)API).LocalUser.Value.IsSupporter = false);
|
||||
|
||||
// test non-supporter on Rank Achieved filter
|
||||
toggleRandomRankFilter();
|
||||
expectedPlaceholderShown(true, false);
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
supporterRequiredPlaceholderShown();
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
expectedPlaceholderShown(false, false);
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
noPlaceholderShown();
|
||||
|
||||
// test non-supporter on Played filter
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(true, false);
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
supporterRequiredPlaceholderShown();
|
||||
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
expectedPlaceholderShown(false, false);
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
noPlaceholderShown();
|
||||
|
||||
// test non-supporter on both Rank Achieved and Played filter
|
||||
toggleRandomRankFilter();
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(true, false);
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
supporterRequiredPlaceholderShown();
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
expectedPlaceholderShown(false, false);
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
noPlaceholderShown();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestSupporterUseSupporterOnlyFiltersPlaceholderOneBeatmap()
|
||||
{
|
||||
AddStep("fetch for 1 beatmap", () => fetchFor(CreateBeatmap(Ruleset.Value).BeatmapInfo.BeatmapSet));
|
||||
AddStep("set dummy as supporter", () => ((DummyAPIAccess)API).LocalUser.Value.IsSupporter = true);
|
||||
|
||||
// test supporter on Rank Achieved filter
|
||||
toggleRandomRankFilter();
|
||||
expectedPlaceholderShown(false, false);
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
noPlaceholderShown();
|
||||
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
expectedPlaceholderShown(false, false);
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
noPlaceholderShown();
|
||||
|
||||
// test supporter on Played filter
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(false, false);
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
noPlaceholderShown();
|
||||
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
expectedPlaceholderShown(false, false);
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
noPlaceholderShown();
|
||||
|
||||
// test supporter on both Rank Achieved and Played filter
|
||||
toggleRandomRankFilter();
|
||||
toggleRandomSupporterOnlyPlayedFilter();
|
||||
expectedPlaceholderShown(false, false);
|
||||
toggleRankFilter(Scoring.ScoreRank.XH);
|
||||
toggleSupporterOnlyPlayedFilter(SearchPlayed.Played);
|
||||
noPlaceholderShown();
|
||||
|
||||
AddStep("Set Played filter to Any", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = SearchPlayed.Any);
|
||||
AddStep("Clear Rank Achieved filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear());
|
||||
expectedPlaceholderShown(false, false);
|
||||
AddStep("Set Played filter to Any", () => searchControl.Played.Value = SearchPlayed.Any);
|
||||
AddStep("Clear Rank Achieved filter", () => searchControl.Ranks.Clear());
|
||||
noPlaceholderShown();
|
||||
}
|
||||
|
||||
private void fetchFor(params BeatmapSetInfo[] beatmaps)
|
||||
@ -185,44 +197,36 @@ namespace osu.Game.Tests.Visual.Online
|
||||
setsForResponse.AddRange(beatmaps.Select(b => new TestAPIBeatmapSet(b)));
|
||||
|
||||
// trigger arbitrary change for fetching.
|
||||
overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Query.TriggerChange();
|
||||
searchControl.Query.TriggerChange();
|
||||
}
|
||||
|
||||
private void toggleRandomRankFilter()
|
||||
private void toggleRankFilter(Scoring.ScoreRank rank)
|
||||
{
|
||||
short r = TestContext.CurrentContext.Random.NextShort();
|
||||
AddStep("toggle Random Rank Achieved filter", () =>
|
||||
AddStep("toggle Rank Achieved filter", () =>
|
||||
{
|
||||
overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Clear();
|
||||
overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Ranks.Add((Scoring.ScoreRank)(r % 8));
|
||||
searchControl.Ranks.Clear();
|
||||
searchControl.Ranks.Add(rank);
|
||||
});
|
||||
}
|
||||
|
||||
private void toggleRandomSupporterOnlyPlayedFilter()
|
||||
private void toggleSupporterOnlyPlayedFilter(SearchPlayed played)
|
||||
{
|
||||
short r = TestContext.CurrentContext.Random.NextShort();
|
||||
AddStep("toggle Random Played filter", () => overlay.ChildrenOfType<BeatmapListingSearchControl>().Single().Played.Value = (SearchPlayed)(r % 2 + 1));
|
||||
AddStep("toggle Played filter", () => searchControl.Played.Value = played);
|
||||
}
|
||||
|
||||
private void expectedPlaceholderShown(bool supporterRequiredShown, bool notFoundShown)
|
||||
private void supporterRequiredPlaceholderShown()
|
||||
{
|
||||
if (supporterRequiredShown)
|
||||
{
|
||||
AddUntilStep("supporter-placeholder shown", () => overlay.ChildrenOfType<BeatmapListingOverlay.SupporterRequiredDrawable>().SingleOrDefault()?.IsPresent == true);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddUntilStep("supporter-placeholder hidden", () => !overlay.ChildrenOfType<BeatmapListingOverlay.SupporterRequiredDrawable>().Any());
|
||||
}
|
||||
AddUntilStep("supporter-placeholder shown", () => overlay.ChildrenOfType<BeatmapListingOverlay.SupporterRequiredDrawable>().SingleOrDefault()?.IsPresent == true);
|
||||
}
|
||||
|
||||
if (notFoundShown)
|
||||
{
|
||||
AddUntilStep("not-found-placeholder shown", () => overlay.ChildrenOfType<BeatmapListingOverlay.NotFoundDrawable>().SingleOrDefault()?.IsPresent == true);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddUntilStep("not-found-placeholder hidden", () => !overlay.ChildrenOfType<BeatmapListingOverlay.NotFoundDrawable>().Any());
|
||||
}
|
||||
private void notFoundPlaceholderShown()
|
||||
{
|
||||
AddUntilStep("not-found-placeholder shown", () => overlay.ChildrenOfType<BeatmapListingOverlay.NotFoundDrawable>().SingleOrDefault()?.IsPresent == true);
|
||||
}
|
||||
|
||||
private void noPlaceholderShown()
|
||||
{
|
||||
AddUntilStep("no placeholder shown", () => !overlay.ChildrenOfType<BeatmapListingOverlay.SupporterRequiredDrawable>().Any() && !overlay.ChildrenOfType<BeatmapListingOverlay.NotFoundDrawable>().Any());
|
||||
}
|
||||
|
||||
private class TestAPIBeatmapSet : APIBeatmapSet
|
||||
|
Reference in New Issue
Block a user