mirror of
https://github.com/ppy/osu.git
synced 2025-01-18 11:02:57 +08:00
Remove BeatmapCarousel
testing backdoor
This commit is contained in:
parent
c94b393e30
commit
a868c33380
@ -54,7 +54,7 @@ namespace osu.Game.Tests.Visual.Background
|
|||||||
Dependencies.Cache(rulesets = new RealmRulesetStore(Realm));
|
Dependencies.Cache(rulesets = new RealmRulesetStore(Realm));
|
||||||
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
||||||
Dependencies.Cache(new OsuConfigManager(LocalStorage));
|
Dependencies.Cache(new OsuConfigManager(LocalStorage));
|
||||||
Dependencies.Cache(beatmapStore = new RealmDetachedBeatmapStore());
|
Dependencies.CacheAs(beatmapStore = new RealmDetachedBeatmapStore());
|
||||||
Dependencies.Cache(Realm);
|
Dependencies.Cache(Realm);
|
||||||
|
|
||||||
manager.Import(TestResources.GetQuickTestBeatmapForImport()).WaitSafely();
|
manager.Import(TestResources.GetQuickTestBeatmapForImport()).WaitSafely();
|
||||||
|
@ -48,7 +48,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
|
|
||||||
Dependencies.Cache(new RealmRulesetStore(Realm));
|
Dependencies.Cache(new RealmRulesetStore(Realm));
|
||||||
Dependencies.Cache(beatmaps = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
Dependencies.Cache(beatmaps = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
||||||
Dependencies.Cache(beatmapStore = new RealmDetachedBeatmapStore());
|
Dependencies.CacheAs(beatmapStore = new RealmDetachedBeatmapStore());
|
||||||
Dependencies.Cache(Realm);
|
Dependencies.Cache(Realm);
|
||||||
|
|
||||||
Add(beatmapStore);
|
Add(beatmapStore);
|
||||||
|
@ -70,7 +70,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
|
|
||||||
Dependencies.Cache(new RealmRulesetStore(Realm));
|
Dependencies.Cache(new RealmRulesetStore(Realm));
|
||||||
Dependencies.Cache(beatmaps = new BeatmapManager(LocalStorage, Realm, API, audio, Resources, host, Beatmap.Default));
|
Dependencies.Cache(beatmaps = new BeatmapManager(LocalStorage, Realm, API, audio, Resources, host, Beatmap.Default));
|
||||||
Dependencies.Cache(beatmapStore = new RealmDetachedBeatmapStore());
|
Dependencies.CacheAs(beatmapStore = new RealmDetachedBeatmapStore());
|
||||||
Dependencies.Cache(Realm);
|
Dependencies.Cache(Realm);
|
||||||
|
|
||||||
Add(beatmapStore);
|
Add(beatmapStore);
|
||||||
|
@ -50,7 +50,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
|
|
||||||
Dependencies.Cache(rulesets = new RealmRulesetStore(Realm));
|
Dependencies.Cache(rulesets = new RealmRulesetStore(Realm));
|
||||||
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
||||||
Dependencies.Cache(beatmapStore = new RealmDetachedBeatmapStore());
|
Dependencies.CacheAs(beatmapStore = new RealmDetachedBeatmapStore());
|
||||||
Dependencies.Cache(Realm);
|
Dependencies.Cache(Realm);
|
||||||
|
|
||||||
importedBeatmapSet = manager.Import(TestResources.CreateTestBeatmapSetInfo(8, rulesets.AvailableRulesets.ToArray()))!;
|
importedBeatmapSet = manager.Import(TestResources.CreateTestBeatmapSetInfo(8, rulesets.AvailableRulesets.ToArray()))!;
|
||||||
|
@ -35,7 +35,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
|
|
||||||
Dependencies.Cache(new RealmRulesetStore(Realm));
|
Dependencies.Cache(new RealmRulesetStore(Realm));
|
||||||
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, Beatmap.Default));
|
||||||
Dependencies.Cache(beatmapStore = new RealmDetachedBeatmapStore());
|
Dependencies.CacheAs(beatmapStore = new RealmDetachedBeatmapStore());
|
||||||
Dependencies.Cache(Realm);
|
Dependencies.Cache(Realm);
|
||||||
|
|
||||||
var beatmapSet = TestResources.CreateTestBeatmapSetInfo();
|
var beatmapSet = TestResources.CreateTestBeatmapSetInfo();
|
||||||
|
@ -16,6 +16,7 @@ using osu.Framework.Testing;
|
|||||||
using osu.Framework.Utils;
|
using osu.Framework.Utils;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Configuration;
|
using osu.Game.Configuration;
|
||||||
|
using osu.Game.Database;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Rulesets.Catch;
|
using osu.Game.Rulesets.Catch;
|
||||||
using osu.Game.Rulesets.Osu;
|
using osu.Game.Rulesets.Osu;
|
||||||
@ -23,6 +24,7 @@ using osu.Game.Rulesets.Taiko;
|
|||||||
using osu.Game.Screens.Select;
|
using osu.Game.Screens.Select;
|
||||||
using osu.Game.Screens.Select.Carousel;
|
using osu.Game.Screens.Select.Carousel;
|
||||||
using osu.Game.Screens.Select.Filter;
|
using osu.Game.Screens.Select.Filter;
|
||||||
|
using osu.Game.Tests.Beatmaps;
|
||||||
using osu.Game.Tests.Resources;
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK.Input;
|
using osuTK.Input;
|
||||||
|
|
||||||
@ -42,6 +44,9 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
private const int set_count = 5;
|
private const int set_count = 5;
|
||||||
private const int diff_count = 3;
|
private const int diff_count = 3;
|
||||||
|
|
||||||
|
[Cached(typeof(BeatmapStore))]
|
||||||
|
private TestBeatmapStore beatmaps = new TestBeatmapStore();
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(RulesetStore rulesets)
|
private void load(RulesetStore rulesets)
|
||||||
{
|
{
|
||||||
@ -1329,7 +1334,8 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
|
|
||||||
carouselAdjust?.Invoke(carousel);
|
carouselAdjust?.Invoke(carousel);
|
||||||
|
|
||||||
carousel.BeatmapSets = beatmapSets;
|
beatmaps.BeatmapSets.Clear();
|
||||||
|
beatmaps.BeatmapSets.AddRange(beatmapSets);
|
||||||
|
|
||||||
(target ?? this).Child = carousel;
|
(target ?? this).Child = carousel;
|
||||||
});
|
});
|
||||||
|
@ -63,7 +63,7 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
Dependencies.Cache(rulesets = new RealmRulesetStore(Realm));
|
Dependencies.Cache(rulesets = new RealmRulesetStore(Realm));
|
||||||
Dependencies.Cache(Realm);
|
Dependencies.Cache(Realm);
|
||||||
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, defaultBeatmap = Beatmap.Default));
|
Dependencies.Cache(manager = new BeatmapManager(LocalStorage, Realm, null, audio, Resources, host, defaultBeatmap = Beatmap.Default));
|
||||||
Dependencies.Cache(beatmapStore = new RealmDetachedBeatmapStore());
|
Dependencies.CacheAs(beatmapStore = new RealmDetachedBeatmapStore());
|
||||||
|
|
||||||
Dependencies.Cache(music = new MusicController());
|
Dependencies.Cache(music = new MusicController());
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
@ -10,12 +9,14 @@ using osu.Framework.Extensions.ObjectExtensions;
|
|||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Database;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
using osu.Game.Overlays.Dialog;
|
using osu.Game.Overlays.Dialog;
|
||||||
using osu.Game.Screens.Select;
|
using osu.Game.Screens.Select;
|
||||||
using osu.Game.Screens.Select.Carousel;
|
using osu.Game.Screens.Select.Carousel;
|
||||||
using osu.Game.Screens.Select.Filter;
|
using osu.Game.Screens.Select.Filter;
|
||||||
|
using osu.Game.Tests.Beatmaps;
|
||||||
using osu.Game.Tests.Online;
|
using osu.Game.Tests.Online;
|
||||||
using osu.Game.Tests.Resources;
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK.Input;
|
using osuTK.Input;
|
||||||
@ -31,6 +32,9 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
|
|
||||||
private BeatmapSetInfo testBeatmapSetInfo = null!;
|
private BeatmapSetInfo testBeatmapSetInfo = null!;
|
||||||
|
|
||||||
|
[Cached(typeof(BeatmapStore))]
|
||||||
|
private TestBeatmapStore beatmaps = new TestBeatmapStore();
|
||||||
|
|
||||||
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
|
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
|
||||||
{
|
{
|
||||||
var dependencies = new DependencyContainer(base.CreateChildDependencies(parent));
|
var dependencies = new DependencyContainer(base.CreateChildDependencies(parent));
|
||||||
@ -246,13 +250,12 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
|
|
||||||
private BeatmapCarousel createCarousel()
|
private BeatmapCarousel createCarousel()
|
||||||
{
|
{
|
||||||
|
beatmaps.BeatmapSets.Clear();
|
||||||
|
beatmaps.BeatmapSets.Add(testBeatmapSetInfo = TestResources.CreateTestBeatmapSetInfo(5));
|
||||||
|
|
||||||
return carousel = new BeatmapCarousel(new FilterCriteria())
|
return carousel = new BeatmapCarousel(new FilterCriteria())
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
BeatmapSets = new List<BeatmapSetInfo>
|
|
||||||
{
|
|
||||||
(testBeatmapSetInfo = TestResources.CreateTestBeatmapSetInfo(5)),
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,10 @@
|
|||||||
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Screens;
|
using osu.Framework.Screens;
|
||||||
|
using osu.Game.Database;
|
||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
using osu.Game.Overlays.FirstRunSetup;
|
using osu.Game.Overlays.FirstRunSetup;
|
||||||
|
using osu.Game.Tests.Beatmaps;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.UserInterface
|
namespace osu.Game.Tests.Visual.UserInterface
|
||||||
{
|
{
|
||||||
@ -13,6 +15,9 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
[Cached]
|
[Cached]
|
||||||
private OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Purple);
|
private OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Purple);
|
||||||
|
|
||||||
|
[Cached(typeof(BeatmapStore))]
|
||||||
|
private BeatmapStore beatmapStore = new TestBeatmapStore();
|
||||||
|
|
||||||
public TestSceneFirstRunScreenUIScale()
|
public TestSceneFirstRunScreenUIScale()
|
||||||
{
|
{
|
||||||
AddStep("load screen", () =>
|
AddStep("load screen", () =>
|
||||||
|
@ -17,12 +17,14 @@ using osu.Framework.Graphics.Containers;
|
|||||||
using osu.Framework.Screens;
|
using osu.Framework.Screens;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Configuration;
|
using osu.Game.Configuration;
|
||||||
|
using osu.Game.Database;
|
||||||
using osu.Game.Localisation;
|
using osu.Game.Localisation;
|
||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
using osu.Game.Overlays.FirstRunSetup;
|
using osu.Game.Overlays.FirstRunSetup;
|
||||||
using osu.Game.Overlays.Notifications;
|
using osu.Game.Overlays.Notifications;
|
||||||
using osu.Game.Screens;
|
using osu.Game.Screens;
|
||||||
using osu.Game.Screens.Footer;
|
using osu.Game.Screens.Footer;
|
||||||
|
using osu.Game.Tests.Beatmaps;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Input;
|
using osuTK.Input;
|
||||||
|
|
||||||
@ -47,6 +49,7 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
Dependencies.Cache(LocalConfig = new OsuConfigManager(LocalStorage));
|
Dependencies.Cache(LocalConfig = new OsuConfigManager(LocalStorage));
|
||||||
Dependencies.CacheAs<IPerformFromScreenRunner>(performer.Object);
|
Dependencies.CacheAs<IPerformFromScreenRunner>(performer.Object);
|
||||||
Dependencies.CacheAs<INotificationOverlay>(notificationOverlay.Object);
|
Dependencies.CacheAs<INotificationOverlay>(notificationOverlay.Object);
|
||||||
|
Dependencies.CacheAs<BeatmapStore>(new TestBeatmapStore());
|
||||||
}
|
}
|
||||||
|
|
||||||
[SetUpSteps]
|
[SetUpSteps]
|
||||||
|
@ -30,6 +30,6 @@ namespace osu.Game.Database
|
|||||||
/// It is generally expected that once a beatmap store is in a good state, the overhead of this call
|
/// It is generally expected that once a beatmap store is in a good state, the overhead of this call
|
||||||
/// should be negligible.
|
/// should be negligible.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public abstract IBindableList<BeatmapSetInfo> GetBeatmaps(CancellationToken? cancellationToken);
|
public abstract IBindableList<BeatmapSetInfo> GetBeatmapSets(CancellationToken? cancellationToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ namespace osu.Game.Database
|
|||||||
[Resolved]
|
[Resolved]
|
||||||
private RealmAccess realm { get; set; } = null!;
|
private RealmAccess realm { get; set; } = null!;
|
||||||
|
|
||||||
public override IBindableList<BeatmapSetInfo> GetBeatmaps(CancellationToken? cancellationToken)
|
public override IBindableList<BeatmapSetInfo> GetBeatmapSets(CancellationToken? cancellationToken)
|
||||||
{
|
{
|
||||||
loaded.Wait(cancellationToken ?? CancellationToken.None);
|
loaded.Wait(cancellationToken ?? CancellationToken.None);
|
||||||
return detachedBeatmapSets.GetBoundCopy();
|
return detachedBeatmapSets.GetBoundCopy();
|
||||||
|
@ -112,27 +112,13 @@ namespace osu.Game.Screens.Select
|
|||||||
[Resolved]
|
[Resolved]
|
||||||
private RealmAccess realm { get; set; } = null!;
|
private RealmAccess realm { get; set; } = null!;
|
||||||
|
|
||||||
[Resolved]
|
|
||||||
private BeatmapStore? beatmapStore { get; set; }
|
|
||||||
|
|
||||||
private IBindableList<BeatmapSetInfo>? detachedBeatmapSets;
|
private IBindableList<BeatmapSetInfo>? detachedBeatmapSets;
|
||||||
|
|
||||||
private readonly NoResultsPlaceholder noResultsPlaceholder;
|
private readonly NoResultsPlaceholder noResultsPlaceholder;
|
||||||
|
|
||||||
private IEnumerable<CarouselBeatmapSet> beatmapSets => root.Items.OfType<CarouselBeatmapSet>();
|
private IEnumerable<CarouselBeatmapSet> beatmapSets => root.Items.OfType<CarouselBeatmapSet>();
|
||||||
|
|
||||||
internal IEnumerable<BeatmapSetInfo> BeatmapSets
|
internal IEnumerable<BeatmapSetInfo> BeatmapSets => beatmapSets.Select(g => g.BeatmapSet);
|
||||||
{
|
|
||||||
get => beatmapSets.Select(g => g.BeatmapSet);
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (LoadState != LoadState.NotLoaded)
|
|
||||||
throw new InvalidOperationException("If not using a realm source, beatmap sets must be set before load.");
|
|
||||||
|
|
||||||
detachedBeatmapSets = new BindableList<BeatmapSetInfo>(value);
|
|
||||||
Schedule(loadNewRoot);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void loadNewRoot()
|
private void loadNewRoot()
|
||||||
{
|
{
|
||||||
@ -234,7 +220,7 @@ namespace osu.Game.Screens.Select
|
|||||||
}
|
}
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(OsuConfigManager config, AudioManager audio, CancellationToken? cancellationToken)
|
private void load(OsuConfigManager config, AudioManager audio, BeatmapStore beatmaps, CancellationToken? cancellationToken)
|
||||||
{
|
{
|
||||||
spinSample = audio.Samples.Get("SongSelect/random-spin");
|
spinSample = audio.Samples.Get("SongSelect/random-spin");
|
||||||
randomSelectSample = audio.Samples.Get(@"SongSelect/select-random");
|
randomSelectSample = audio.Samples.Get(@"SongSelect/select-random");
|
||||||
@ -244,12 +230,9 @@ namespace osu.Game.Screens.Select
|
|||||||
|
|
||||||
RightClickScrollingEnabled.BindValueChanged(enabled => Scroll.RightMouseScrollbar = enabled.NewValue, true);
|
RightClickScrollingEnabled.BindValueChanged(enabled => Scroll.RightMouseScrollbar = enabled.NewValue, true);
|
||||||
|
|
||||||
if (beatmapStore != null && detachedBeatmapSets == null)
|
detachedBeatmapSets = beatmaps.GetBeatmapSets(cancellationToken);
|
||||||
{
|
detachedBeatmapSets.BindCollectionChanged(beatmapSetsChanged);
|
||||||
detachedBeatmapSets = beatmapStore.GetBeatmaps(cancellationToken);
|
loadNewRoot();
|
||||||
detachedBeatmapSets.BindCollectionChanged(beatmapSetsChanged);
|
|
||||||
loadNewRoot();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly HashSet<BeatmapSetInfo> setsRequiringUpdate = new HashSet<BeatmapSetInfo>();
|
private readonly HashSet<BeatmapSetInfo> setsRequiringUpdate = new HashSet<BeatmapSetInfo>();
|
||||||
|
16
osu.Game/Tests/Beatmaps/TestBeatmapStore.cs
Normal file
16
osu.Game/Tests/Beatmaps/TestBeatmapStore.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using System.Threading;
|
||||||
|
using osu.Framework.Bindables;
|
||||||
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Database;
|
||||||
|
|
||||||
|
namespace osu.Game.Tests.Beatmaps
|
||||||
|
{
|
||||||
|
internal partial class TestBeatmapStore : BeatmapStore
|
||||||
|
{
|
||||||
|
public readonly BindableList<BeatmapSetInfo> BeatmapSets = new BindableList<BeatmapSetInfo>();
|
||||||
|
public override IBindableList<BeatmapSetInfo> GetBeatmapSets(CancellationToken? cancellationToken) => BeatmapSets;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user