diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerQueueList.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerQueueList.cs
index 9e002a7f71..bd513ddf64 100644
--- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerQueueList.cs
+++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerQueueList.cs
@@ -146,21 +146,51 @@ namespace osu.Game.Tests.Visual.Multiplayer
}
}
+ [Test]
+ public void TestPreviouslyExpiredItemsConsideredInRoundRobinMode()
+ {
+ changeQueueModeStep(QueueMode.AllPlayersRoundRobin);
+
+ // User 1.
+
+ addItemStep(1, true);
+ addItemStep(1, true);
+ PlaylistItem item3 = addItemStep(1);
+ PlaylistItem item4 = addItemStep(1);
+
+ // User2.
+
+ PlaylistItem item5 = addItemStep(2);
+ PlaylistItem item6 = addItemStep(2);
+
+ assertPositionStep(item5, 0);
+ assertPositionStep(item6, 1);
+ assertPositionStep(item3, 2);
+ assertPositionStep(item4, 3);
+ }
+
///
/// Adds a step to create a new playlist item.
///
/// The item owner.
+ /// Whether the item should be added in an expired state.
/// The playlist item's ID.
- private PlaylistItem addItemStep(int ownerId)
+ private PlaylistItem addItemStep(int ownerId, bool expired = false)
{
var item = new PlaylistItem
{
ID = ++currentItemId,
OwnerID = ownerId,
- Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo, false).BeatmapInfo }
+ Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo, false).BeatmapInfo },
+ Expired = expired
};
- AddStep($"add {{ item: {item.ID}, user: {ownerId} }}", () => list.Items.Add(item));
+ AddStep($"add {{ item: {item.ID}, user: {ownerId} }}", () =>
+ {
+ SelectedRoom.Value.Playlist.Add(item);
+ if (!expired)
+ list.Items.Add(item);
+ });
return item;
}