diff --git a/osu.Game.Tests/Visual/SongSelectV2/TestSceneSongSelectFiltering.cs b/osu.Game.Tests/Visual/SongSelectV2/TestSceneSongSelectFiltering.cs index 7134bb9ba2..da78f19dc5 100644 --- a/osu.Game.Tests/Visual/SongSelectV2/TestSceneSongSelectFiltering.cs +++ b/osu.Game.Tests/Visual/SongSelectV2/TestSceneSongSelectFiltering.cs @@ -17,6 +17,7 @@ using osu.Game.Beatmaps; using osu.Game.Configuration; using osu.Game.Database; using osu.Game.Graphics.UserInterface; +using osu.Game.Online.Chat; using osu.Game.Overlays; using osu.Game.Overlays.Toolbar; using osu.Game.Rulesets; @@ -264,6 +265,54 @@ namespace osu.Game.Tests.Visual.SongSelectV2 AddAssert("filter count is 5", () => filterOperationsCount, () => Is.EqualTo(5)); } + [Test] + public void TestPlaceholderBeatmapPresence() + { + loadSongSelect(); + + AddUntilStep("wait for placeholder visible", () => getPlaceholder()?.State.Value == Visibility.Visible); + + importBeatmapForRuleset(0); + AddUntilStep("wait for placeholder hidden", () => getPlaceholder()?.State.Value == Visibility.Hidden); + + AddStep("delete all beatmaps", () => manager.Delete()); + AddUntilStep("wait for placeholder visible", () => getPlaceholder()?.State.Value == Visibility.Visible); + } + + [Test] + public void TestPlaceholderStarDifficulty() + { + importBeatmapForRuleset(0); + AddStep("change star filter", () => config.SetValue(OsuSetting.DisplayStarsMinimum, 10.0)); + + loadSongSelect(); + + AddUntilStep("wait for placeholder visible", () => getPlaceholder()?.State.Value == Visibility.Visible); + + AddStep("click link in placeholder", () => getPlaceholder().ChildrenOfType().First().TriggerClick()); + + AddUntilStep("star filter reset", () => config.Get(OsuSetting.DisplayStarsMinimum) == 0.0); + AddUntilStep("wait for placeholder visible", () => getPlaceholder()?.State.Value == Visibility.Hidden); + } + + [Test] + public void TestPlaceholderConvertSetting() + { + importBeatmapForRuleset(0); + AddStep("change convert setting", () => config.SetValue(OsuSetting.ShowConvertedBeatmaps, false)); + + loadSongSelect(); + + changeRuleset(2); + + AddUntilStep("wait for placeholder visible", () => getPlaceholder()?.State.Value == Visibility.Visible); + + AddStep("click link in placeholder", () => getPlaceholder().ChildrenOfType().First().TriggerClick()); + + AddUntilStep("convert setting changed", () => config.Get(OsuSetting.ShowConvertedBeatmaps)); + AddUntilStep("wait for placeholder visible", () => getPlaceholder()?.State.Value == Visibility.Hidden); + } + private void loadSongSelect() { AddStep("load screen", () => Stack.Push(songSelect = new SoloSongSelect())); @@ -275,6 +324,8 @@ namespace osu.Game.Tests.Visual.SongSelectV2 }); } + private NoResultsPlaceholder? getPlaceholder() => songSelect.ChildrenOfType().FirstOrDefault(); + private void importBeatmapForRuleset(int rulesetId) { int beatmapsCount = 0;