From a1c649b2d1abc744cb61ee822b95f3d286d11668 Mon Sep 17 00:00:00 2001 From: "Yaqing Mi (from Dev Box)" Date: Wed, 16 Apr 2025 17:35:46 +0800 Subject: [PATCH] Update NameSpace and remove redundant code --- PowerToys.sln | 6 +- src/common/UITestAutomation/Program.cs | 170 ------------------ .../util/MouseSimulator.cs | 119 ------------ .../FindMyMouseTests.cs | 2 +- .../MouseHighlighterTests.cs | 10 +- .../MouseUtils.UITests.csproj} | 6 +- ...lease-Test-Checklist-Migration-Progress.md | 0 .../util/FindMyMouseSettings.cs | 2 +- .../util/IOUtil.cs | 2 +- .../util/MouseHighlighterSettings.cs | 2 +- 10 files changed, 12 insertions(+), 307 deletions(-) delete mode 100644 src/common/UITestAutomation/Program.cs delete mode 100644 src/modules/MouseUtils/FindMyMouse.UITests/util/MouseSimulator.cs rename src/modules/MouseUtils/{FindMyMouse.UITests => MouseUtils.UITests}/FindMyMouseTests.cs (99%) rename src/modules/MouseUtils/{FindMyMouse.UITests => MouseUtils.UITests}/MouseHighlighterTests.cs (98%) rename src/modules/MouseUtils/{FindMyMouse.UITests/FindMyMouse.UITests.csproj => MouseUtils.UITests/MouseUtils.UITests.csproj} (82%) rename src/modules/MouseUtils/{FindMyMouse.UITests => MouseUtils.UITests}/Release-Test-Checklist-Migration-Progress.md (100%) rename src/modules/MouseUtils/{FindMyMouse.UITests => MouseUtils.UITests}/util/FindMyMouseSettings.cs (98%) rename src/modules/MouseUtils/{FindMyMouse.UITests => MouseUtils.UITests}/util/IOUtil.cs (99%) rename src/modules/MouseUtils/{FindMyMouse.UITests => MouseUtils.UITests}/util/MouseHighlighterSettings.cs (98%) diff --git a/PowerToys.sln b/PowerToys.sln index 746d09e543..4484032f74 100644 --- a/PowerToys.sln +++ b/PowerToys.sln @@ -706,7 +706,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegistryPreview.FuzzTests", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.System", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.System\Microsoft.CmdPal.Ext.System.csproj", "{64B88F02-CD88-4ED8-9624-989A800230F9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindMyMouse.UITests", "src\modules\MouseUtils\FindMyMouse.UITests\FindMyMouse.UITests.csproj", "{4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MouseUtils.UITests", "src\modules\MouseUtils\MouseUtils.UITests\MouseUtils.UITests.csproj", "{4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -2576,14 +2576,10 @@ Global {64B88F02-CD88-4ED8-9624-989A800230F9}.Debug|ARM64.Build.0 = Debug|ARM64 {64B88F02-CD88-4ED8-9624-989A800230F9}.Debug|x64.ActiveCfg = Debug|x64 {64B88F02-CD88-4ED8-9624-989A800230F9}.Debug|x64.Build.0 = Debug|x64 - {64B88F02-CD88-4ED8-9624-989A800230F9}.Debug|x86.ActiveCfg = Debug|x64 - {64B88F02-CD88-4ED8-9624-989A800230F9}.Debug|x86.Build.0 = Debug|x64 {64B88F02-CD88-4ED8-9624-989A800230F9}.Release|ARM64.ActiveCfg = Release|ARM64 {64B88F02-CD88-4ED8-9624-989A800230F9}.Release|ARM64.Build.0 = Release|ARM64 {64B88F02-CD88-4ED8-9624-989A800230F9}.Release|x64.ActiveCfg = Release|x64 {64B88F02-CD88-4ED8-9624-989A800230F9}.Release|x64.Build.0 = Release|x64 - {64B88F02-CD88-4ED8-9624-989A800230F9}.Release|x86.ActiveCfg = Release|x64 - {64B88F02-CD88-4ED8-9624-989A800230F9}.Release|x86.Build.0 = Release|x64 {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Debug|ARM64.ActiveCfg = Debug|ARM64 {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Debug|ARM64.Build.0 = Debug|ARM64 {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/src/common/UITestAutomation/Program.cs b/src/common/UITestAutomation/Program.cs deleted file mode 100644 index 63de68b568..0000000000 --- a/src/common/UITestAutomation/Program.cs +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.PowerToys.UITest -{ - public class Program - { - private readonly UIntPtr ignoreKeyEventFlag = 0x5555; - - [DllImport("user32.dll")] - private static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize); - - [StructLayout(LayoutKind.Sequential)] - [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")] - internal struct INPUT - { - internal INPUTTYPE type; - internal InputUnion data; - - internal static int Size - { - get { return Marshal.SizeOf(); } - } - } - - [StructLayout(LayoutKind.Explicit)] - [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")] - internal struct InputUnion - { - [FieldOffset(0)] - internal MOUSEINPUT mi; - [FieldOffset(0)] - internal KEYBDINPUT ki; - [FieldOffset(0)] - internal HARDWAREINPUT hi; - } - - [StructLayout(LayoutKind.Sequential)] - [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")] - internal struct MOUSEINPUT - { - internal int dx; - internal int dy; - internal int mouseData; - internal uint dwFlags; - internal uint time; - internal UIntPtr dwExtraInfo; - } - - [StructLayout(LayoutKind.Sequential)] - [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")] - internal struct KEYBDINPUT - { - internal short wVk; - internal short wScan; - internal uint dwFlags; - internal int time; - internal UIntPtr dwExtraInfo; - } - - [StructLayout(LayoutKind.Sequential)] - [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")] - internal struct HARDWAREINPUT - { - internal int uMsg; - internal short wParamL; - internal short wParamH; - } - - internal enum INPUTTYPE : uint - { - INPUT_MOUSE = 0, - INPUT_KEYBOARD = 1, - INPUT_HARDWARE = 2, - } - - [Flags] - internal enum KeyEventF - { - KeyDown = 0x0000, - ExtendedKey = 0x0001, - KeyUp = 0x0002, - Unicode = 0x0004, - Scancode = 0x0008, - } - - private void SendSingleKeyboardInput(short keyCode, uint keyStatus) - { - var inputShift = new INPUT - { - type = INPUTTYPE.INPUT_KEYBOARD, - data = new InputUnion - { - ki = new KEYBDINPUT - { - wVk = keyCode, - dwFlags = keyStatus, - - // Any keyevent with the extraInfo set to this value will be ignored by the keyboard hook and sent to the system instead. - dwExtraInfo = ignoreKeyEventFlag, - }, - }, - }; - - INPUT[] inputs = [inputShift]; - - _ = SendInput(1, inputs, INPUT.Size); - } - - public static void SimulateKeyDown(ushort keyCode) - { - SendKey(keyCode, false); - } - - public static void SimulateKeyUp(ushort keyCode) - { - SendKey(keyCode, true); - } - - public static void SimulateKeyPress(ushort keyCode) - { - SendKey(keyCode, false); - SendKey(keyCode, true); - } - - public static void SimulateShortcut(params ushort[] keyCodes) - { - // 1. 先按下所有按键(顺序) - foreach (var key in keyCodes) - { - SimulateKeyDown(key); - } - - // 2. 再松开所有按键(逆序) - for (int i = keyCodes.Length - 1; i >= 0; i--) - { - SimulateKeyUp(keyCodes[i]); - } - } - - public static void SendKey(ushort keyCode, bool keyUp) - { - var inputShift = new INPUT - { - type = INPUTTYPE.INPUT_KEYBOARD, - data = new InputUnion - { - ki = new KEYBDINPUT - { - wVk = (short)keyCode, - dwFlags = (uint)(keyUp ? KeyEventF.KeyUp : 0), - dwExtraInfo = (uint)IntPtr.Zero, - }, - }, - }; - - INPUT[] inputs = [inputShift]; - - _ = SendInput(1, inputs, INPUT.Size); - } - } -} diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/util/MouseSimulator.cs b/src/modules/MouseUtils/FindMyMouse.UITests/util/MouseSimulator.cs deleted file mode 100644 index 76ff265a35..0000000000 --- a/src/modules/MouseUtils/FindMyMouse.UITests/util/MouseSimulator.cs +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Runtime.InteropServices; -using System.Threading; - -namespace FindMyMouse.UITests -{ - public class MouseSimulator - { - // 引入 mouse_event API - [DllImport("user32.dll")] -#pragma warning disable SA1300 // Element should begin with upper-case letter - private static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, UIntPtr dwExtraInfo); -#pragma warning restore SA1300 // Element should begin with upper-case letter - - // 鼠标事件常量定义 - [Flags] - internal enum MouseEvent - { - LeftDown = 0x0002, - LeftUp = 0x0004, - RightDown = 0x0008, - RightUp = 0x0010, - MiddleDown = 0x0020, - MiddleUp = 0x0040, - Wheel = 0x0800, - } - - // 模拟点击间隔 - private const int ClickDelay = 100; - - // --- 单击事件 --- - public static void LeftClick() - { - LeftDown(); - Thread.Sleep(ClickDelay); - LeftUp(); - } - - public static void RightClick() - { - RightDown(); - Thread.Sleep(ClickDelay); - RightUp(); - } - - public static void MiddleClick() - { - MiddleDown(); - Thread.Sleep(ClickDelay); - MiddleUp(); - } - - // --- 双击事件 --- - public static void LeftDoubleClick() - { - LeftClick(); - Thread.Sleep(ClickDelay); - LeftClick(); - } - - public static void RightDoubleClick() - { - RightClick(); - Thread.Sleep(ClickDelay); - RightClick(); - } - - // --- 按下 --- - public static void LeftDown() - { - mouse_event((uint)MouseEvent.LeftDown, 0, 0, 0, UIntPtr.Zero); - } - - public static void RightDown() - { - mouse_event((uint)MouseEvent.RightDown, 0, 0, 0, UIntPtr.Zero); - } - - public static void MiddleDown() - { - mouse_event((uint)MouseEvent.MiddleDown, 0, 0, 0, UIntPtr.Zero); - } - - // --- 抬起 --- - public static void LeftUp() - { - mouse_event((uint)MouseEvent.LeftUp, 0, 0, 0, UIntPtr.Zero); - } - - public static void RightUp() - { - mouse_event((uint)MouseEvent.RightUp, 0, 0, 0, UIntPtr.Zero); - } - - public static void MiddleUp() - { - mouse_event((uint)MouseEvent.MiddleUp, 0, 0, 0, UIntPtr.Zero); - } - - public static void ScrollWheel(int amount) - { - mouse_event((uint)MouseEvent.Wheel, 0, 0, (uint)amount, UIntPtr.Zero); - } - - public static void ScrollUp() - { - ScrollWheel(120); - } - - public static void ScrollDown() - { - ScrollWheel(-120); - } - } -} diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/FindMyMouseTests.cs b/src/modules/MouseUtils/MouseUtils.UITests/FindMyMouseTests.cs similarity index 99% rename from src/modules/MouseUtils/FindMyMouse.UITests/FindMyMouseTests.cs rename to src/modules/MouseUtils/MouseUtils.UITests/FindMyMouseTests.cs index 30bc324bc7..193ba30538 100644 --- a/src/modules/MouseUtils/FindMyMouse.UITests/FindMyMouseTests.cs +++ b/src/modules/MouseUtils/MouseUtils.UITests/FindMyMouseTests.cs @@ -10,7 +10,7 @@ using Microsoft.PowerToys.UITest; using Microsoft.VisualStudio.TestTools.UnitTesting; using Windows.Devices.Printers; -namespace FindMyMouse.UITests +namespace MouseUtils.UITests { [TestClass] public class FindMyMouseTests : UITestBase diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/MouseHighlighterTests.cs b/src/modules/MouseUtils/MouseUtils.UITests/MouseHighlighterTests.cs similarity index 98% rename from src/modules/MouseUtils/FindMyMouse.UITests/MouseHighlighterTests.cs rename to src/modules/MouseUtils/MouseUtils.UITests/MouseHighlighterTests.cs index 79f88d8647..28eefd947a 100644 --- a/src/modules/MouseUtils/FindMyMouse.UITests/MouseHighlighterTests.cs +++ b/src/modules/MouseUtils/MouseUtils.UITests/MouseHighlighterTests.cs @@ -10,7 +10,7 @@ using Microsoft.PowerToys.UITest; using Microsoft.VisualStudio.TestTools.UnitTesting; using Windows.Devices.Printers; -namespace FindMyMouse.UITests +namespace MouseUtils.UITests { [TestClass] public class MouseHighlighterTests : UITestBase @@ -47,9 +47,6 @@ namespace FindMyMouse.UITests Session.MoveMouseTo(xy.Item1, xy.Item2 - 100); Task.Delay(1000).Wait(); - // MouseSimulator.ScrollDown(); - // MouseSimulator.ScrollDown(); - // MouseSimulator.ScrollDown(); Session.PerformMouseAction(MouseActionType.ScrollDown); Session.PerformMouseAction(MouseActionType.ScrollDown); Session.PerformMouseAction(MouseActionType.ScrollDown); @@ -66,8 +63,9 @@ namespace FindMyMouse.UITests Assert.IsNotNull(activationShortcutWindow); // Invalid shortcut key - // Session.SendKeySequence(Key.H); - IOUtil.SimulateKeyPress(0x41); + Session.SendKeySequence(Key.H); + + // IOUtil.SimulateKeyPress(0x41); Task.Delay(100).Wait(); var invalidShortcutText = activationShortcutWindow.Find("Invalid shortcut"); Assert.IsNotNull(invalidShortcutText); diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/FindMyMouse.UITests.csproj b/src/modules/MouseUtils/MouseUtils.UITests/MouseUtils.UITests.csproj similarity index 82% rename from src/modules/MouseUtils/FindMyMouse.UITests/FindMyMouse.UITests.csproj rename to src/modules/MouseUtils/MouseUtils.UITests/MouseUtils.UITests.csproj index cb6962920b..911de3e8e1 100644 --- a/src/modules/MouseUtils/FindMyMouse.UITests/FindMyMouse.UITests.csproj +++ b/src/modules/MouseUtils/MouseUtils.UITests/MouseUtils.UITests.csproj @@ -4,8 +4,8 @@ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1} - PowerToys.FindMyMouse.UITests - PowerToys.FindMyMouse.UITests + PowerToys.MouseUtils.UITests + PowerToys.MouseUtils.UITests false true enable @@ -15,7 +15,7 @@ false - $(SolutionDir)$(Platform)\$(Configuration)\tests\FindMyMouse.UITests\ + $(SolutionDir)$(Platform)\$(Configuration)\tests\MouseUtils.UITests\ diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/Release-Test-Checklist-Migration-Progress.md b/src/modules/MouseUtils/MouseUtils.UITests/Release-Test-Checklist-Migration-Progress.md similarity index 100% rename from src/modules/MouseUtils/FindMyMouse.UITests/Release-Test-Checklist-Migration-Progress.md rename to src/modules/MouseUtils/MouseUtils.UITests/Release-Test-Checklist-Migration-Progress.md diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/util/FindMyMouseSettings.cs b/src/modules/MouseUtils/MouseUtils.UITests/util/FindMyMouseSettings.cs similarity index 98% rename from src/modules/MouseUtils/FindMyMouse.UITests/util/FindMyMouseSettings.cs rename to src/modules/MouseUtils/MouseUtils.UITests/util/FindMyMouseSettings.cs index 743c8c54e4..a1f1a29436 100644 --- a/src/modules/MouseUtils/FindMyMouse.UITests/util/FindMyMouseSettings.cs +++ b/src/modules/MouseUtils/MouseUtils.UITests/util/FindMyMouseSettings.cs @@ -8,7 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace FindMyMouse.UITests +namespace MouseUtils.UITests { public class FindMyMouseSettings { diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/util/IOUtil.cs b/src/modules/MouseUtils/MouseUtils.UITests/util/IOUtil.cs similarity index 99% rename from src/modules/MouseUtils/FindMyMouse.UITests/util/IOUtil.cs rename to src/modules/MouseUtils/MouseUtils.UITests/util/IOUtil.cs index c923bdfe9e..d11d93b84f 100644 --- a/src/modules/MouseUtils/FindMyMouse.UITests/util/IOUtil.cs +++ b/src/modules/MouseUtils/MouseUtils.UITests/util/IOUtil.cs @@ -12,7 +12,7 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; -namespace FindMyMouse.UITests +namespace MouseUtils.UITests { public class IOUtil { diff --git a/src/modules/MouseUtils/FindMyMouse.UITests/util/MouseHighlighterSettings.cs b/src/modules/MouseUtils/MouseUtils.UITests/util/MouseHighlighterSettings.cs similarity index 98% rename from src/modules/MouseUtils/FindMyMouse.UITests/util/MouseHighlighterSettings.cs rename to src/modules/MouseUtils/MouseUtils.UITests/util/MouseHighlighterSettings.cs index 1761e6dec2..601f2c3838 100644 --- a/src/modules/MouseUtils/FindMyMouse.UITests/util/MouseHighlighterSettings.cs +++ b/src/modules/MouseUtils/MouseUtils.UITests/util/MouseHighlighterSettings.cs @@ -8,7 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace FindMyMouse.UITests +namespace MouseUtils.UITests { public class MouseHighlighterSettings {