mirror of
https://github.com/ppy/osu.git
synced 2026-05-27 01:21:31 +08:00
Add failing test case
This commit is contained in:
@@ -6,6 +6,7 @@ using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Sprites;
|
||||
using osu.Framework.Testing;
|
||||
using osu.Framework.Utils;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
@@ -16,7 +17,7 @@ using osu.Game.Screens.Play.HUD;
|
||||
|
||||
namespace osu.Game.Tests.Visual.UserInterface
|
||||
{
|
||||
public partial class TestSceneModIcon : OsuTestScene
|
||||
public partial class TestSceneModIcon : OsuManualInputManagerTestScene
|
||||
{
|
||||
private FillFlowContainer spreadOutFlow = null!;
|
||||
private ModDisplay modDisplay = null!;
|
||||
@@ -181,5 +182,40 @@ namespace osu.Game.Tests.Visual.UserInterface
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTooltip()
|
||||
{
|
||||
OsuModDoubleTime mod = null!;
|
||||
|
||||
AddStep("create icon", () => addRange([mod = new OsuModDoubleTime()]));
|
||||
AddStep("hover", () => InputManager.MoveMouseTo(this.ChildrenOfType<ModIcon>().First()));
|
||||
AddUntilStep("tooltip displayed", () => getTooltip()?.IsPresent, () => Is.True);
|
||||
AddAssert("tooltip text = \"Double Time\"", getTooltipText, () => Is.EqualTo("Double Time"));
|
||||
AddAssert("tooltip settings empty", () => getTooltipSettingsLabels().Concat(getTooltipSettingsValues()), () => Is.Empty);
|
||||
|
||||
AddStep("change settings", () => mod.SpeedChange.Value = 1.75f);
|
||||
AddAssert("tooltip text = \"Double Time\"", getTooltipText, () => Is.EqualTo("Double Time"));
|
||||
AddAssert("tooltip settings updated",
|
||||
() => getTooltipSettingsLabels().Concat(getTooltipSettingsValues()),
|
||||
() => Is.EquivalentTo(new[] { "Speed ", "change", "1.75x" }));
|
||||
|
||||
AddStep("change settings", () => mod.SpeedChange.Value = 1.25f);
|
||||
AddAssert("tooltip text = \"Double Time\"", getTooltipText, () => Is.EqualTo("Double Time"));
|
||||
AddAssert("tooltip settings updated",
|
||||
() => getTooltipSettingsLabels().Concat(getTooltipSettingsValues()),
|
||||
() => Is.EquivalentTo(new[] { "Speed ", "change", "1.25x" }));
|
||||
|
||||
AddStep("rest settings", () => mod.SpeedChange.SetDefault());
|
||||
AddAssert("tooltip text = \"Double Time\"", getTooltipText, () => Is.EqualTo("Double Time"));
|
||||
AddAssert("tooltip settings empty", () => getTooltipSettingsLabels().Concat(getTooltipSettingsValues()), () => Is.Empty);
|
||||
|
||||
ModTooltip? getTooltip() => this.ChildrenOfType<ModTooltip>().SingleOrDefault();
|
||||
|
||||
// we could also just expose those directly from ModTooltip, but this works.
|
||||
string getTooltipText() => getTooltip().ChildrenOfType<SpriteText>().First().Text.ToString();
|
||||
IEnumerable<string> getTooltipSettingsLabels() => getTooltip().ChildrenOfType<TextFlowContainer>().First().ChildrenOfType<SpriteText>().Select(t => t.Text.ToString());
|
||||
IEnumerable<string> getTooltipSettingsValues() => getTooltip().ChildrenOfType<TextFlowContainer>().Last().ChildrenOfType<SpriteText>().Select(t => t.Text.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user