From 82b3bbcc6b83646a4d26f42f9c0ccdbf28b70195 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 2 Mar 2019 17:56:46 +0100 Subject: [PATCH] Added failing test for #1558. --- .../MouseDeviceTests.cs | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs b/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs index 5853d1e82b..af034f541b 100644 --- a/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs +++ b/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs @@ -1,6 +1,7 @@ using Avalonia.Controls; using Avalonia.Input.Raw; using Avalonia.Interactivity; +using Avalonia.Media; using Avalonia.Rendering; using Avalonia.UnitTests; using Avalonia.VisualTree; @@ -184,6 +185,33 @@ namespace Avalonia.Input.UnitTests } } + + [Fact] + public void GetPosition_Should_Respect_Control_RenderTransform() + { + var renderer = new Mock(); + + using (TestApplication(renderer.Object)) + { + var inputManager = InputManager.Instance; + + var root = new TestRoot + { + MouseDevice = new MouseDevice(), + Child = new Border + { + Background = Brushes.Black, + RenderTransform = new TranslateTransform(10, 0), + } + }; + + SendMouseMove(inputManager, root, new Point(11, 11)); + + var result = root.MouseDevice.GetPosition(root.Child); + Assert.Equal(new Point(1, 11), result); + } + } + private void AddEnterLeaveHandlers( EventHandler handler, params IControl[] controls) @@ -195,14 +223,14 @@ namespace Avalonia.Input.UnitTests } } - private void SendMouseMove(IInputManager inputManager, TestRoot root) + private void SendMouseMove(IInputManager inputManager, TestRoot root, Point p = new Point()) { inputManager.ProcessInput(new RawMouseEventArgs( root.MouseDevice, 0, root, RawMouseEventType.Move, - new Point(), + p, InputModifiers.None)); }