1
0
sdoroff 7 жил өмнө
parent
commit
210575e0ce

+ 59 - 0
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<ScrollBar>(Template),
+            };
+
+            target.ApplyTemplate();
+
+            var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track");
+
+            var raisedEvent = Assert.Raises<ScrollEventArgs>(
+                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<ScrollBar>(Template),
+            };
+
+            target.ApplyTemplate();
+
+            var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track");
+
+            var raisedEvent = Assert.Raises<ScrollEventArgs>(
+                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()
         {