diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs index 0af4d791c7..672b5c608b 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs @@ -5,6 +5,7 @@ using System; using System.Linq; using Avalonia.Controls.Primitives; using Avalonia.Controls.Templates; +using Avalonia.Input; using Avalonia.Media; using Xunit; @@ -59,6 +60,64 @@ namespace Avalonia.Controls.UnitTests.Primitives Assert.Equal(50, target.Value); } + [Fact] + public void Thumb_DragDelta_Event_Should_Raise_Scroll_Event() + { + var target = new ScrollBar + { + Template = new FuncControlTemplate(Template), + }; + + target.ApplyTemplate(); + + var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track"); + + var raisedEvent = Assert.Raises( + handler => target.Scroll += handler, + handler => target.Scroll -= handler, + () => + { + var ev = new VectorEventArgs + { + RoutedEvent = Thumb.DragDeltaEvent, + Vector = new Vector(0, 0) + }; + + track.Thumb.RaiseEvent(ev); + }); + + Assert.Equal(ScrollEventType.ThumbTrack, raisedEvent.Arguments.ScrollEventType); + } + + [Fact] + public void Thumb_DragComplete_Event_Should_Raise_Scroll_Event() + { + var target = new ScrollBar + { + Template = new FuncControlTemplate(Template), + }; + + target.ApplyTemplate(); + + var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track"); + + var raisedEvent = Assert.Raises( + handler => target.Scroll += handler, + handler => target.Scroll -= handler, + () => + { + var ev = new VectorEventArgs + { + RoutedEvent = Thumb.DragCompletedEvent, + Vector = new Vector(0, 0) + }; + + track.Thumb.RaiseEvent(ev); + }); + + Assert.Equal(ScrollEventType.EndScroll, raisedEvent.Arguments.ScrollEventType); + } + [Fact] public void ScrollBar_Can_AutoHide() {