@@ -411,6 +411,52 @@ TEST(projectMPlaylistPlaylist, SortFilenameOnlyDescending)
411
411
}
412
412
413
413
414
+ TEST (projectMPlaylistPlaylist, SortOutOfBoundsStart)
415
+ {
416
+ Playlist playlist;
417
+ EXPECT_TRUE (playlist.AddItem (" /some/PresetZ.milk" , Playlist::InsertAtEnd, false ));
418
+ EXPECT_TRUE (playlist.AddItem (" /some/PresetA.milk" , Playlist::InsertAtEnd, false ));
419
+ EXPECT_TRUE (playlist.AddItem (" /some/other/PresetC.milk" , Playlist::InsertAtEnd, false ));
420
+ EXPECT_TRUE (playlist.AddItem (" /yet/another/PresetD.milk" , Playlist::InsertAtEnd, false ));
421
+
422
+ ASSERT_EQ (playlist.Size (), 4 );
423
+
424
+ playlist.Sort (std::numeric_limits<uint32_t >::max (), 1 , Playlist::SortPredicate::FilenameOnly, Playlist::SortOrder::Ascending);
425
+
426
+ ASSERT_EQ (playlist.Size (), 4 );
427
+
428
+ const auto & items = playlist.Items ();
429
+ ASSERT_EQ (items.size (), 4 );
430
+ EXPECT_EQ (items.at (0 ).Filename (), " /some/PresetZ.milk" );
431
+ EXPECT_EQ (items.at (1 ).Filename (), " /some/PresetA.milk" );
432
+ EXPECT_EQ (items.at (2 ).Filename (), " /some/other/PresetC.milk" );
433
+ EXPECT_EQ (items.at (3 ).Filename (), " /yet/another/PresetD.milk" );
434
+ }
435
+
436
+
437
+ TEST (projectMPlaylistPlaylist, SortOutOfBoundsCount)
438
+ {
439
+ Playlist playlist;
440
+ EXPECT_TRUE (playlist.AddItem (" /some/PresetZ.milk" , Playlist::InsertAtEnd, false ));
441
+ EXPECT_TRUE (playlist.AddItem (" /some/PresetA.milk" , Playlist::InsertAtEnd, false ));
442
+ EXPECT_TRUE (playlist.AddItem (" /some/other/PresetC.milk" , Playlist::InsertAtEnd, false ));
443
+ EXPECT_TRUE (playlist.AddItem (" /yet/another/PresetD.milk" , Playlist::InsertAtEnd, false ));
444
+
445
+ ASSERT_EQ (playlist.Size (), 4 );
446
+
447
+ playlist.Sort (0 , std::numeric_limits<uint32_t >::max (), Playlist::SortPredicate::FilenameOnly, Playlist::SortOrder::Ascending);
448
+
449
+ ASSERT_EQ (playlist.Size (), 4 );
450
+
451
+ const auto & items = playlist.Items ();
452
+ ASSERT_EQ (items.size (), 4 );
453
+ EXPECT_EQ (items.at (0 ).Filename (), " /some/PresetA.milk" );
454
+ EXPECT_EQ (items.at (1 ).Filename (), " /some/other/PresetC.milk" );
455
+ EXPECT_EQ (items.at (2 ).Filename (), " /yet/another/PresetD.milk" );
456
+ EXPECT_EQ (items.at (3 ).Filename (), " /some/PresetZ.milk" );
457
+ }
458
+
459
+
414
460
TEST (projectMPlaylistPlaylist, NextPresetIndexEmptyPlaylist)
415
461
{
416
462
Playlist playlist;
0 commit comments