mirror of
https://github.com/ppy/osu.git
synced 2025-02-22 22:32:54 +08:00
Add testing for keyboard control of path during selection
This commit is contained in:
parent
1e137271ab
commit
7898100698
@ -15,6 +15,7 @@ using osu.Game.Rulesets.Osu.Edit.Blueprints.Sliders.Components;
|
|||||||
using osu.Game.Rulesets.Osu.Objects;
|
using osu.Game.Rulesets.Osu.Objects;
|
||||||
using osu.Game.Tests.Visual;
|
using osu.Game.Tests.Visual;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
using osuTK.Input;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Osu.Tests.Editor
|
namespace osu.Game.Rulesets.Osu.Tests.Editor
|
||||||
{
|
{
|
||||||
@ -177,6 +178,60 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
|
|||||||
addAssertPointPositionChanged(points, i);
|
addAssertPointPositionChanged(points, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestChangingControlPointTypeViaTab()
|
||||||
|
{
|
||||||
|
createVisualiser(true);
|
||||||
|
|
||||||
|
addControlPointStep(new Vector2(200), PathType.LINEAR);
|
||||||
|
addControlPointStep(new Vector2(300));
|
||||||
|
addControlPointStep(new Vector2(500, 300));
|
||||||
|
addControlPointStep(new Vector2(700, 200));
|
||||||
|
addControlPointStep(new Vector2(500, 100));
|
||||||
|
|
||||||
|
AddStep("select first control point", () => visualiser.Pieces[0].IsSelected.Value = true);
|
||||||
|
AddStep("press tab", () => InputManager.Key(Key.Tab));
|
||||||
|
assertControlPointPathType(0, PathType.BEZIER);
|
||||||
|
|
||||||
|
AddStep("press shift-tab", () =>
|
||||||
|
{
|
||||||
|
InputManager.PressKey(Key.LShift);
|
||||||
|
InputManager.Key(Key.Tab);
|
||||||
|
InputManager.ReleaseKey(Key.LShift);
|
||||||
|
});
|
||||||
|
assertControlPointPathType(0, PathType.LINEAR);
|
||||||
|
|
||||||
|
AddStep("press shift-tab", () =>
|
||||||
|
{
|
||||||
|
InputManager.PressKey(Key.LShift);
|
||||||
|
InputManager.Key(Key.Tab);
|
||||||
|
InputManager.ReleaseKey(Key.LShift);
|
||||||
|
});
|
||||||
|
assertControlPointPathType(0, PathType.BSpline(4));
|
||||||
|
|
||||||
|
AddStep("press shift-tab", () =>
|
||||||
|
{
|
||||||
|
InputManager.PressKey(Key.LShift);
|
||||||
|
InputManager.Key(Key.Tab);
|
||||||
|
InputManager.ReleaseKey(Key.LShift);
|
||||||
|
});
|
||||||
|
assertControlPointPathType(0, PathType.BEZIER);
|
||||||
|
|
||||||
|
AddStep("select third last control point", () =>
|
||||||
|
{
|
||||||
|
visualiser.Pieces[0].IsSelected.Value = false;
|
||||||
|
visualiser.Pieces[2].IsSelected.Value = true;
|
||||||
|
});
|
||||||
|
AddRepeatStep("press tab", () => InputManager.Key(Key.Tab), 3);
|
||||||
|
assertControlPointPathType(2, PathType.PERFECT_CURVE);
|
||||||
|
|
||||||
|
AddStep("press tab", () => InputManager.Key(Key.Tab));
|
||||||
|
assertControlPointPathType(2, PathType.BSpline(4));
|
||||||
|
|
||||||
|
AddStep("press tab", () => InputManager.Key(Key.Tab));
|
||||||
|
assertControlPointPathType(2, null);
|
||||||
|
}
|
||||||
|
|
||||||
private void addAssertPointPositionChanged(Vector2[] points, int index)
|
private void addAssertPointPositionChanged(Vector2[] points, int index)
|
||||||
{
|
{
|
||||||
AddAssert($"Point at {points.ElementAt(index)} changed",
|
AddAssert($"Point at {points.ElementAt(index)} changed",
|
||||||
|
Loading…
Reference in New Issue
Block a user