From 5bdeac4435d421f9c678b4a5528e47eebeff1165 Mon Sep 17 00:00:00 2001 From: kongehund <63306696+kongehund@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:00:03 +0100 Subject: [PATCH] Add test --- .../Editor/TestSceneContextMenuClose.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 osu.Game.Rulesets.Osu.Tests/Editor/TestSceneContextMenuClose.cs diff --git a/osu.Game.Rulesets.Osu.Tests/Editor/TestSceneContextMenuClose.cs b/osu.Game.Rulesets.Osu.Tests/Editor/TestSceneContextMenuClose.cs new file mode 100644 index 000000000000..628e9a4cacc4 --- /dev/null +++ b/osu.Game.Rulesets.Osu.Tests/Editor/TestSceneContextMenuClose.cs @@ -0,0 +1,40 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.Linq; +using NUnit.Framework; +using osu.Framework.Graphics.Cursor; +using osu.Framework.Graphics.UserInterface; +using osu.Framework.Testing; +using osu.Game.Graphics.UserInterface; +using osu.Game.Rulesets.UI; +using osuTK.Input; + +namespace osu.Game.Rulesets.Osu.Tests.Editor +{ + public partial class TestSceneContextMenuClose : TestSceneOsuEditor + { + private ContextMenuContainer contextMenuContainer + => Editor.ChildrenOfType().First(); + + + [Test] + public void TestToolChangeClosesMenu() + { + Playfield playfield = null!; + + AddStep("select circle placement tool", () => InputManager.Key(Key.Number2)); + AddStep("move mouse to top left of playfield", () => + { + playfield = this.ChildrenOfType().Single(); + var location = (3 * playfield.ScreenSpaceDrawQuad.TopLeft + playfield.ScreenSpaceDrawQuad.BottomRight) / 4; + InputManager.MoveMouseTo(location); + }); + AddStep("place circle", () => InputManager.Click(MouseButton.Left)); + AddStep("right click circle", () => InputManager.Click(MouseButton.Right)); + AddUntilStep("context menu is visible", () => contextMenuContainer.ChildrenOfType().Single().State == MenuState.Open); + AddStep("select slider placement tool", () => InputManager.Key(Key.Number3)); + AddUntilStep("context menu is not visible", () => contextMenuContainer.ChildrenOfType().Single().State == MenuState.Closed); + } + } +}