public void ToFocusChangedEvent() { if (WindowsVersion.IsWindows10()) { Assert.Inconclusive("This fails on Win 10 for some reason."); } using var app = Application.AttachOrLaunch(ExeFileName, "FocusWindow"); var changes = new List <int>(); var window = app.MainWindow; using (Subscribe.ToFocusChangedEvent((sender, args) => changes.Add(args.EventId.Id))) { var textBox = window.FindTextBox("TextBox2"); textBox.Focus(); Wait.For(TimeSpan.FromMilliseconds(200)); CollectionAssert.AreEqual(new[] { 20005 }, changes); Assert.AreEqual(textBox, window.FocusedElement()); var button = window.FindButton("Button1"); button.Focus(); Wait.For(TimeSpan.FromMilliseconds(200)); CollectionAssert.AreEqual(new[] { 20005, 20005 }, changes); Assert.AreEqual(button, window.FocusedElement()); } }
public void TapThenClickNoMove() { if (WindowsVersion.IsAppVeyor() || WindowsVersion.IsAzureDevops()) { Assert.Inconclusive("Not sure why this breaks on AppVeyor."); } using var app = Application.AttachOrLaunch(ExeFileName, WindowName); var window = app.MainWindow; var area = window.FindGroupBox("Touch area"); var events = window.FindListBox("Events"); Touch.Tap(area.Bounds.Center()); var expected = WindowsVersion.IsWindows10() ? new[] { "TouchEnter Position: 250,300", "PreviewTouchDown Position: 250,300", "TouchDown Position: 250,300", "ManipulationStarting", "ManipulationStarted", "StylusSystemGesture SystemGesture: Tap", "PreviewTouchUp Position: 250,300", "TouchUp Position: 250,300", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 250,300", } : new[] { "TouchEnter Position: 249,299", "PreviewTouchDown Position: 249,299", "TouchDown Position: 249,299", "ManipulationStarting", "ManipulationStarted", "StylusSystemGesture SystemGesture: Tap", "PreviewTouchUp Position: 249,299", "TouchUp Position: 249,299", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 249,299", }; CollectionAssert.AreEqual(expected, events.Items.Select(x => x.Text).ToArray(), EventStringComparer.Default); window.FindButton("Clear").Click(); window.WaitUntilResponsive(); CollectionAssert.IsEmpty(events.Items); Assert.AreEqual(CursorState.CURSOR_SHOWING, Mouse.GetCursorState()); }
private static Application StartApplication() { if (WindowsVersion.IsWindows10()) { // Use the store application on those systems return(Application.LaunchStoreApp("Microsoft.WindowsCalculator_8wekyb3d8bbwe!App")); } if (WindowsVersion.IsWindowsServer2016()) { // The calc.exe on this system is just a stub which launches win32calc.exe return(Application.Launch("win32calc.exe")); } return(Application.Launch("calc.exe")); }
public void CalculatorTest() { if (WindowsVersion.IsAppVeyor() || WindowsVersion.IsAzureDevops()) { Assert.Inconclusive("Bug in store calc."); } using var app = StartApplication(); // Looks like it can take a long time on CI app.WaitForMainWindow(TimeSpan.FromSeconds(30)); var window = app.MainWindow; var calc = WindowsVersion.IsWindows10() ? (ICalculator) new Win10Calc(window) : new LegacyCalc(window); Wait.For(TimeSpan.FromMilliseconds(200)); // Switch to default mode Keyboard.TypeSimultaneously(Key.ALT, Key.KEY_1); window.WaitUntilResponsive(); // Simple addition calc.Button1.Click(); calc.Button2.Click(); calc.Button3.Click(); calc.Button4.Click(); calc.ButtonAdd.Click(); calc.Button5.Click(); calc.Button6.Click(); calc.Button7.Click(); calc.Button8.Click(); calc.ButtonEquals.Click(); app.WaitWhileBusy(); var result = calc.Result; Assert.AreEqual("6912", result); // Date comparison using (Keyboard.Hold(Key.CONTROL)) { Keyboard.Type(Key.KEY_E); } }
private static string GetCurrent() { if (WindowsVersion.IsWindows7()) { return("Win7"); } if (WindowsVersion.IsWindows10()) { return("Win10"); } if (WindowsVersion.CurrentContains("Windows Server 2019")) { return("WinServer2019"); } return(WindowsVersion.CurrentVersionProductName); }
public void Tap() { using var app = Application.AttachOrLaunch(ExeFileName, WindowName); var window = app.MainWindow; var area = window.FindGroupBox("Touch area"); var events = window.FindListBox("Events"); Touch.Tap(area.Bounds.Center()); var expected = WindowsVersion.IsWindows10() ? new[] { "TouchEnter Position: 250,300", "PreviewTouchDown Position: 250,300", "TouchDown Position: 250,300", "ManipulationStarting", "ManipulationStarted", "StylusSystemGesture SystemGesture: Tap", "PreviewTouchUp Position: 250,300", "TouchUp Position: 250,300", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 250,300", } : new[] { "TouchEnter Position: 249,299", "PreviewTouchDown Position: 249,299", "TouchDown Position: 249,299", "ManipulationStarting", "ManipulationStarted", "StylusSystemGesture SystemGesture: Tap", "PreviewTouchUp Position: 249,299", "TouchUp Position: 249,299", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 249,299", }; Dump(events); CollectionAssert.AreEqual(expected, events.Items.Select(x => x.Text).ToArray(), EventStringComparer.Default); }
public void CalculatorTest() { using (var app = StartApplication()) { var window = app.MainWindow; var calc = WindowsVersion.IsWindows10() ? (ICalculator) new Win10Calc(window) : new LegacyCalc(window); if (WindowsVersion.IsWindows7()) { Wait.For(TimeSpan.FromMilliseconds(200)); } // Switch to default mode Keyboard.TypeSimultaneously(Key.ALT, Key.KEY_1); window.WaitUntilResponsive(); // Simple addition calc.Button1.Click(); calc.Button2.Click(); calc.Button3.Click(); calc.Button4.Click(); calc.ButtonAdd.Click(); calc.Button5.Click(); calc.Button6.Click(); calc.Button7.Click(); calc.Button8.Click(); calc.ButtonEquals.Click(); app.WaitWhileBusy(); var result = calc.Result; Assert.AreEqual("6912", result); // Date comparison using (Keyboard.Pressing(Key.CONTROL)) { Keyboard.Type(Key.KEY_E); } } }
public void Pinch() { using var app = Application.AttachOrLaunch(ExeFileName, WindowName); var window = app.MainWindow; var area = window.FindGroupBox("Touch area"); var events = window.FindListBox("Events"); var cp = area.Bounds.Center(); Touch.Pinch(cp, 100, 50, TimeSpan.FromMilliseconds(10)); var expected = WindowsVersion.IsWindows10() ? new[] { "TouchEnter Position: 320,370", "PreviewTouchDown Position: 320,370", "TouchDown Position: 320,370", "ManipulationStarting", "ManipulationStarted", "TouchEnter Position: 178,229", "PreviewTouchDown Position: 178,229", "TouchDown Position: 178,229", "ManipulationDelta", "StylusSystemGesture SystemGesture: Drag", "PreviewTouchMove Position: 285,335", "TouchMove Position: 285,335", "PreviewTouchMove Position: 213,264", "TouchMove Position: 213,264", "PreviewTouchUp Position: 285,335", "TouchUp Position: 285,335", "TouchLeave Position: 285,335", "PreviewTouchUp Position: 213,264", "TouchUp Position: 213,264", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 213,264", } : new[] { "TouchEnter Position: 319,369", "PreviewTouchDown Position: 319,369", "TouchDown Position: 319,369", "ManipulationStarting", "ManipulationStarted", "TouchEnter Position: 178,228", "PreviewTouchDown Position: 178,228", "TouchDown Position: 178,228", "ManipulationDelta", "StylusSystemGesture SystemGesture: Drag", "PreviewTouchMove Position: 284,334", "TouchMove Position: 284,334", "PreviewTouchMove Position: 213,263", "TouchMove Position: 213,263", "PreviewTouchUp Position: 284,334", "TouchUp Position: 284,334", "TouchLeave Position: 284,334", "PreviewTouchUp Position: 213,263", "TouchUp Position: 213,263", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 213,263", }; CollectionAssert.AreEqual(expected, events.Items.Select(x => x.Text).ToArray(), EventStringComparer.Default); }
public void TwoFingers() { using var app = Application.AttachOrLaunch(ExeFileName, WindowName); var window = app.MainWindow; var area = window.FindGroupBox("Touch area"); var events = window.FindListBox("Events"); var cp = area.Bounds.Center(); Touch.Multi( new TwoFingers(cp + new Vector(-100, 0), cp + new Vector(100, 0)), new TwoFingers(cp + new Vector(-50, 0), cp + new Vector(50, 0)), TimeSpan.FromMilliseconds(10)); var expected = WindowsVersion.IsWindows10() ? new[] { "TouchEnter Position: 150,300", "PreviewTouchDown Position: 150,300", "TouchDown Position: 150,300", "ManipulationStarting", "ManipulationStarted", "TouchEnter Position: 350,300", "PreviewTouchDown Position: 350,300", "TouchDown Position: 350,300", "ManipulationDelta", "StylusSystemGesture SystemGesture: Drag", "PreviewTouchMove Position: 200,300", "TouchMove Position: 200,300", "PreviewTouchMove Position: 300,300", "TouchMove Position: 300,300", "PreviewTouchUp Position: 200,300", "TouchUp Position: 200,300", "TouchLeave Position: 200,300", "PreviewTouchUp Position: 300,300", "TouchUp Position: 300,300", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 300,300", } : new[] { "TouchEnter Position: 149,299", "PreviewTouchDown Position: 149,299", "TouchDown Position: 149,299", "ManipulationStarting", "ManipulationStarted", "TouchEnter Position: 349,299", "PreviewTouchDown Position: 349,299", "TouchDown Position: 349,299", "ManipulationDelta", "StylusSystemGesture SystemGesture: Drag", "PreviewTouchMove Position: 199,299", "TouchMove Position: 199,299", "PreviewTouchMove Position: 299,299", "TouchMove Position: 299,299", "PreviewTouchUp Position: 199,299", "TouchUp Position: 199,299", "TouchLeave Position: 199,299", "PreviewTouchUp Position: 299,299", "TouchUp Position: 299,299", "ManipulationInertiaStarting", "ManipulationCompleted", "TouchLeave Position: 299,299", }; CollectionAssert.AreEqual(expected, events.Items.Select(x => x.Text).ToArray(), EventStringComparer.Default); }