using FlaUI.Core.WindowsAPI; using Xunit; namespace Recordingtest.Player.Tests; public class HotkeyParseTests { [Fact] public void Enter_NoMods_ReturnsReturnKey() { var p = UiaPlayerHost.ParseHotkey("enter"); Assert.Empty(p.Modifiers); Assert.Equal(VirtualKeyShort.RETURN, p.Main); } [Fact] public void Tab_NoMods_ReturnsTabKey() { var p = UiaPlayerHost.ParseHotkey("tab"); Assert.Empty(p.Modifiers); Assert.Equal(VirtualKeyShort.TAB, p.Main); } [Fact] public void SingleChar_a_ReturnsAKey() { var p = UiaPlayerHost.ParseHotkey("a"); Assert.Empty(p.Modifiers); Assert.Equal((VirtualKeyShort)'A', p.Main); } [Fact] public void CtrlC_ReturnsControlModPlusC() { var p = UiaPlayerHost.ParseHotkey("ctrl+c"); Assert.Equal(new[] { VirtualKeyShort.CONTROL }, p.Modifiers); Assert.Equal((VirtualKeyShort)'C', p.Main); } [Fact] public void CtrlShiftS_ReturnsBothModsPlusS() { var p = UiaPlayerHost.ParseHotkey("ctrl+shift+s"); Assert.Equal(new[] { VirtualKeyShort.CONTROL, VirtualKeyShort.SHIFT }, p.Modifiers); Assert.Equal((VirtualKeyShort)'S', p.Main); } [Fact] public void F5_ReturnsF5Key() { var p = UiaPlayerHost.ParseHotkey("f5"); Assert.Empty(p.Modifiers); Assert.Equal((VirtualKeyShort)(0x70 + 4), p.Main); } [Fact] public void AltF4_ReturnsAltPlusF4() { var p = UiaPlayerHost.ParseHotkey("alt+f4"); Assert.Equal(new[] { VirtualKeyShort.ALT }, p.Modifiers); Assert.Equal((VirtualKeyShort)(0x70 + 3), p.Main); } [Fact] public void Empty_ReturnsNoModsNoMain() { var p = UiaPlayerHost.ParseHotkey(""); Assert.Empty(p.Modifiers); Assert.Null(p.Main); } }