mirror of
https://github.com/ppy/osu.git
synced 2024-11-12 06:47:25 +08:00
9ba412d27e
Makes no sense to add a test intended to test visual behaviour with one of the main elements missing. Not sure how you would be able to test the flow with the logo's presence.
90 lines
2.9 KiB
C#
90 lines
2.9 KiB
C#
// 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;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using NUnit.Framework;
|
|
using osu.Framework.Allocation;
|
|
using osu.Framework.Bindables;
|
|
using osu.Framework.Graphics;
|
|
using osu.Framework.Utils;
|
|
using osu.Game.Beatmaps;
|
|
using osu.Game.Rulesets.Mods;
|
|
using osu.Game.Screens.Menu;
|
|
using osu.Game.Screens.Play;
|
|
using osuTK;
|
|
|
|
namespace osu.Game.Tests.Visual.SongSelect
|
|
{
|
|
public class TestSceneBeatmapMetadataDisplay : OsuTestScene
|
|
{
|
|
private BeatmapMetadataDisplay display;
|
|
|
|
[Resolved]
|
|
private BeatmapManager manager { get; set; }
|
|
|
|
[Test]
|
|
public void TestLocal([Values("Beatmap", "Some long title and stuff")]
|
|
string title,
|
|
[Values("Trial", "Some1's very hardest difficulty")]
|
|
string version)
|
|
{
|
|
showMetadataForBeatmap(() => CreateWorkingBeatmap(new Beatmap
|
|
{
|
|
BeatmapInfo =
|
|
{
|
|
Metadata = new BeatmapMetadata
|
|
{
|
|
Title = title,
|
|
},
|
|
Version = version,
|
|
StarDifficulty = RNG.NextDouble(0, 10),
|
|
}
|
|
}));
|
|
}
|
|
|
|
[Test]
|
|
public void TestRandomFromDatabase()
|
|
{
|
|
showMetadataForBeatmap(() =>
|
|
{
|
|
var allBeatmapSets = manager.GetAllUsableBeatmapSets(IncludedDetails.Minimal);
|
|
if (allBeatmapSets.Count == 0)
|
|
return manager.DefaultBeatmap;
|
|
|
|
var randomBeatmapSet = allBeatmapSets[RNG.Next(0, allBeatmapSets.Count - 1)];
|
|
var randomBeatmap = randomBeatmapSet.Beatmaps[RNG.Next(0, randomBeatmapSet.Beatmaps.Count - 1)];
|
|
|
|
return manager.GetWorkingBeatmap(randomBeatmap);
|
|
});
|
|
}
|
|
|
|
private void showMetadataForBeatmap(Func<WorkingBeatmap> getBeatmap)
|
|
{
|
|
AddStep("setup display", () =>
|
|
{
|
|
var randomMods = Ruleset.Value.CreateInstance().GetAllMods().OrderBy(_ => RNG.Next()).Take(5).ToList();
|
|
|
|
OsuLogo logo = new OsuLogo { Scale = new Vector2(0.15f) };
|
|
|
|
Children = new Drawable[]
|
|
{
|
|
display = new BeatmapMetadataDisplay(getBeatmap(), new Bindable<IReadOnlyList<Mod>>(randomMods), logo)
|
|
{
|
|
Anchor = Anchor.Centre,
|
|
Origin = Anchor.Centre,
|
|
Alpha = 0f,
|
|
}
|
|
};
|
|
|
|
display.FadeIn(400, Easing.OutQuint);
|
|
});
|
|
|
|
AddWaitStep("wait a bit", 5);
|
|
|
|
AddStep("finish loading", () => display.Loading = false);
|
|
}
|
|
}
|
|
}
|