1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-16 01:17:27 +08:00

Add slider tail dragging test

This commit is contained in:
OliBomby 2023-12-20 02:12:16 +01:00
parent 1365a1b7be
commit 3aaf0b39f5

View File

@ -163,6 +163,54 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
checkControlPointSelected(1, false);
}
[Test]
public void TestDragSliderTail()
{
AddStep($"move mouse to slider tail", () =>
{
Vector2 position = slider.EndPosition + new Vector2(10, 0);
InputManager.MoveMouseTo(drawableObject.Parent!.ToScreenSpace(position));
});
AddStep("shift + drag", () =>
{
InputManager.PressKey(Key.ShiftLeft);
InputManager.PressButton(MouseButton.Left);
});
moveMouseToControlPoint(1);
AddStep("release", () =>
{
InputManager.ReleaseButton(MouseButton.Left);
InputManager.ReleaseKey(Key.ShiftLeft);
});
AddAssert("expected distance halved",
() => Precision.AlmostEquals(slider.Path.Distance, 172.2, 0.1));
AddStep($"move mouse to slider tail", () =>
{
Vector2 position = slider.EndPosition + new Vector2(10, 0);
InputManager.MoveMouseTo(drawableObject.Parent!.ToScreenSpace(position));
});
AddStep("shift + drag", () =>
{
InputManager.PressKey(Key.ShiftLeft);
InputManager.PressButton(MouseButton.Left);
});
AddStep($"move mouse beyond last control point", () =>
{
Vector2 position = slider.Position + slider.Path.ControlPoints[2].Position + new Vector2(50, 0);
InputManager.MoveMouseTo(drawableObject.Parent!.ToScreenSpace(position));
});
AddStep("release", () =>
{
InputManager.ReleaseButton(MouseButton.Left);
InputManager.ReleaseKey(Key.ShiftLeft);
});
AddAssert("expected distance is calculated distance",
() => Precision.AlmostEquals(slider.Path.Distance, slider.Path.CalculatedDistance, 0.1));
}
private void moveHitObject()
{
AddStep("move hitobject", () =>