1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-23 02:21:19 +08:00

Add test for metadata wedge loading transitions

This commit is contained in:
Salman Alshamrani
2025-05-20 23:22:44 +03:00
Unverified
parent 23bd1e5d72
commit c23abe818c
@@ -24,6 +24,15 @@ namespace osu.Game.Tests.Visual.SongSelectV2
{
base.LoadComplete();
Child = wedge = new BeatmapMetadataWedge
{
State = { Value = Visibility.Visible },
};
}
[SetUp]
public void SetUp()
{
((DummyAPIAccess)API).HandleRequest = request =>
{
switch (request)
@@ -41,11 +50,6 @@ namespace osu.Game.Tests.Visual.SongSelectV2
return false;
}
};
Child = wedge = new BeatmapMetadataWedge
{
State = { Value = Visibility.Visible },
};
}
[Test]
@@ -205,6 +209,76 @@ namespace osu.Game.Tests.Visual.SongSelectV2
});
}
[Test]
public void TestLoading()
{
Action proceed = null!;
AddStep("setup", () =>
{
currentOnlineSet = null;
((DummyAPIAccess)API).HandleRequest = request =>
{
switch (request)
{
case GetBeatmapSetRequest set:
proceed = () => set.TriggerSuccess(currentOnlineSet!);
return true;
default:
return false;
}
};
});
AddStep("set beatmap", () =>
{
var (working, onlineSet) = createTestBeatmap();
currentOnlineSet = onlineSet;
Beatmap.Value = working;
});
AddStep("finish load", () => proceed());
AddStep("set beatmap", () =>
{
var (working, onlineSet) = createTestBeatmap();
onlineSet.RelatedTags![0].Name = "other/tag";
onlineSet.RelatedTags[1].Name = "another/tag";
onlineSet.RelatedTags[2].Name = "some/tag";
currentOnlineSet = onlineSet;
Beatmap.Value = working;
});
AddStep("finish load", () => proceed());
AddStep("no user tags", () =>
{
var (working, onlineSet) = createTestBeatmap();
onlineSet.Beatmaps.Single().TopTags = null;
onlineSet.RelatedTags = null;
currentOnlineSet = onlineSet;
Beatmap.Value = working;
});
AddStep("finish load", () => proceed());
AddStep("no user tags", () =>
{
var (working, onlineSet) = createTestBeatmap();
onlineSet.Beatmaps.Single().TopTags = null;
onlineSet.RelatedTags = null;
currentOnlineSet = onlineSet;
Beatmap.Value = working;
});
AddStep("finish load", () => proceed());
}
private (WorkingBeatmap, APIBeatmapSet) createTestBeatmap()
{
var working = CreateWorkingBeatmap(Ruleset.Value);