From 29e7666a679e7994ba6d857543bb135753b494b1 Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Thu, 22 Dec 2022 16:22:27 +0000 Subject: [PATCH] attempt at testing --- .../Input/GesturesTests.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs index fedcdcfb1e..46df719d69 100644 --- a/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs @@ -1,10 +1,13 @@ +using System; using System.Collections.Generic; +using System.Threading; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Input.GestureRecognizers; using Avalonia.Media; using Avalonia.Platform; using Avalonia.UnitTests; +using Moq; using Xunit; namespace Avalonia.Base.UnitTests.Input @@ -170,6 +173,35 @@ namespace Avalonia.Base.UnitTests.Input Assert.False(raised); } + [Fact] + public void Hold_Should_Not_Be_Raised_For_Multiple_Contact() + { + using var app = UnitTestApplication.Start(TestServices.MockThreadingInterface); + + var iSettingsMock = new Mock(); + iSettingsMock.Setup(x => x.HoldWaitDuration).Returns(TimeSpan.FromMilliseconds(300)); + AvaloniaLocator.CurrentMutable.BindToSelf(this) + .Bind().ToConstant(iSettingsMock.Object); + Border border = new Border(); + border.IsHoldWithMouseEnabled = true; + var decorator = new Decorator + { + Child = border + }; + var raised = false; + + decorator.AddHandler(Gestures.HoldingEvent, (s, e) => raised = true); + + var secondMouse = new MouseTestHelper(); + + _mouse.Down(border, MouseButton.Left); + + Thread.Sleep(1000); + secondMouse.Down(border, MouseButton.Left); + + Assert.False(raised); + } + private static void AddHandlers( Decorator decorator, Border border,