mirror of
https://github.com/ppy/osu.git
synced 2025-01-27 15:53:19 +08:00
Merge pull request #19924 from peppy/fix-playlist-overlay-test-failures
Fix intermittent test failures in `TestScenePlaylistOverlay`
This commit is contained in:
commit
289b6f1a58
@ -5,7 +5,6 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Extensions;
|
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Platform;
|
using osu.Framework.Platform;
|
||||||
@ -39,8 +38,6 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
Dependencies.Cache(new RealmRulesetStore(Realm));
|
Dependencies.Cache(new RealmRulesetStore(Realm));
|
||||||
Dependencies.Cache(beatmapManager = new BeatmapManager(LocalStorage, Realm, null, Audio, Resources, host, Beatmap.Default));
|
Dependencies.Cache(beatmapManager = new BeatmapManager(LocalStorage, Realm, null, Audio, Resources, host, Beatmap.Default));
|
||||||
Dependencies.Cache(Realm);
|
Dependencies.Cache(Realm);
|
||||||
|
|
||||||
beatmapManager.Import(TestResources.GetQuickTestBeatmapForImport()).WaitSafely();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[SetUp]
|
[SetUp]
|
||||||
@ -66,6 +63,9 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
beatmapSets.First().ToLive(Realm);
|
beatmapSets.First().ToLive(Realm);
|
||||||
|
|
||||||
|
// Ensure all the initial imports are present before running any tests.
|
||||||
|
Realm.Run(r => r.Refresh());
|
||||||
});
|
});
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -138,7 +138,7 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
|
|
||||||
AddStep("Add collection", () =>
|
AddStep("Add collection", () =>
|
||||||
{
|
{
|
||||||
Dependencies.Get<RealmAccess>().Write(r =>
|
Realm.Write(r =>
|
||||||
{
|
{
|
||||||
r.RemoveAll<BeatmapCollection>();
|
r.RemoveAll<BeatmapCollection>();
|
||||||
r.Add(new BeatmapCollection("wang"));
|
r.Add(new BeatmapCollection("wang"));
|
||||||
|
@ -75,7 +75,14 @@ namespace osu.Game.Collections
|
|||||||
// changes. It's not great but honestly the whole dropdown menu structure isn't great. This needs to be fixed, but I'll issue
|
// changes. It's not great but honestly the whole dropdown menu structure isn't great. This needs to be fixed, but I'll issue
|
||||||
// a warning that it's going to be a frustrating journey.
|
// a warning that it's going to be a frustrating journey.
|
||||||
Current.Value = allBeatmaps;
|
Current.Value = allBeatmaps;
|
||||||
Schedule(() => Current.Value = filters.SingleOrDefault(f => f.Collection != null && f.Collection.ID == selectedItem?.ID) ?? filters[0]);
|
Schedule(() =>
|
||||||
|
{
|
||||||
|
// current may have changed before the scheduled call is run.
|
||||||
|
if (Current.Value != allBeatmaps)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Current.Value = filters.SingleOrDefault(f => f.Collection != null && f.Collection.ID == selectedItem?.ID) ?? filters[0];
|
||||||
|
});
|
||||||
|
|
||||||
// Trigger a re-filter if the current item was in the change set.
|
// Trigger a re-filter if the current item was in the change set.
|
||||||
if (selectedItem != null && changes != null)
|
if (selectedItem != null && changes != null)
|
||||||
|
@ -27,6 +27,12 @@ namespace osu.Game.Overlays.Music
|
|||||||
set => base.Padding = value;
|
set => base.Padding = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnItemsChanged()
|
||||||
|
{
|
||||||
|
base.OnItemsChanged();
|
||||||
|
Filter(currentCriteria);
|
||||||
|
}
|
||||||
|
|
||||||
public void Filter(FilterCriteria criteria)
|
public void Filter(FilterCriteria criteria)
|
||||||
{
|
{
|
||||||
var items = (SearchContainer<RearrangeableListItem<Live<BeatmapSetInfo>>>)ListContainer;
|
var items = (SearchContainer<RearrangeableListItem<Live<BeatmapSetInfo>>>)ListContainer;
|
||||||
@ -44,12 +50,12 @@ namespace osu.Game.Overlays.Music
|
|||||||
|
|
||||||
public Live<BeatmapSetInfo>? FirstVisibleSet => Items.FirstOrDefault(i => ((PlaylistItem)ItemMap[i]).MatchingFilter);
|
public Live<BeatmapSetInfo>? FirstVisibleSet => Items.FirstOrDefault(i => ((PlaylistItem)ItemMap[i]).MatchingFilter);
|
||||||
|
|
||||||
protected override OsuRearrangeableListItem<Live<BeatmapSetInfo>> CreateOsuDrawable(Live<BeatmapSetInfo> item) => new PlaylistItem(item)
|
protected override OsuRearrangeableListItem<Live<BeatmapSetInfo>> CreateOsuDrawable(Live<BeatmapSetInfo> item) =>
|
||||||
{
|
new PlaylistItem(item)
|
||||||
InSelectedCollection = currentCriteria.Collection?.PerformRead(c => item.Value.Beatmaps.Select(b => b.MD5Hash).Any(c.BeatmapMD5Hashes.Contains)) != false,
|
{
|
||||||
SelectedSet = { BindTarget = SelectedSet },
|
SelectedSet = { BindTarget = SelectedSet },
|
||||||
RequestSelection = set => RequestSelection?.Invoke(set)
|
RequestSelection = set => RequestSelection?.Invoke(set)
|
||||||
};
|
};
|
||||||
|
|
||||||
protected override FillFlowContainer<RearrangeableListItem<Live<BeatmapSetInfo>>> CreateListFillFlowContainer() => new SearchContainer<RearrangeableListItem<Live<BeatmapSetInfo>>>
|
protected override FillFlowContainer<RearrangeableListItem<Live<BeatmapSetInfo>>> CreateListFillFlowContainer() => new SearchContainer<RearrangeableListItem<Live<BeatmapSetInfo>>>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user