Fix crash when SyncPlay shuffle mode is set to sorted twice

This commit is contained in:
fmarcac
2026-09-05 14:19:01 +02:00
parent c80f05fad1
commit e5bfe562bc
2 changed files with 34 additions and 1 deletions
@@ -142,6 +142,36 @@ public class PlayQueueManagerTests
Assert.Equal(Guid.Empty, queue.GetPlayingItemPlaylistId());
}
[Fact]
public void SetShuffleMode_SortedWhileAlreadySorted_KeepsPlayingItem()
{
var queue = CreateQueue(3);
queue.SetPlayingItemByIndex(1);
var expectedItemId = queue.GetPlayingItemId();
queue.SetShuffleMode(GroupShuffleMode.Sorted);
Assert.Equal(GroupShuffleMode.Sorted, queue.ShuffleMode);
Assert.Equal(1, queue.PlayingItemIndex);
Assert.Equal(expectedItemId, queue.GetPlayingItemId());
}
[Fact]
public void SetShuffleMode_SortedTwiceAfterShuffle_KeepsPlayingItem()
{
var queue = CreateQueue(5);
queue.SetPlayingItemByIndex(2);
var expectedItemId = queue.GetPlayingItemId();
queue.SetShuffleMode(GroupShuffleMode.Shuffle);
queue.SetShuffleMode(GroupShuffleMode.Sorted);
queue.SetShuffleMode(GroupShuffleMode.Sorted);
Assert.Equal(GroupShuffleMode.Sorted, queue.ShuffleMode);
Assert.Equal(5, queue.GetPlaylist().Count);
Assert.Equal(expectedItemId, queue.GetPlayingItemId());
}
[Fact]
public void SetPlayingItemByIndex_InBounds_SetsPlayingItem()
{