Explorar o código

add unit test.

Dan Walmsley %!s(int64=3) %!d(string=hai) anos
pai
achega
0b4ea2b1eb
Modificáronse 1 ficheiros con 18 adicións e 0 borrados
  1. 18 0
      tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs

+ 18 - 0
tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs

@@ -2,6 +2,7 @@ using System.Collections.Generic;
 using System.Linq;
 using Avalonia.Controls;
 using Avalonia.Layout;
+using Avalonia.Threading;
 using Xunit;
 
 namespace Avalonia.Base.UnitTests.Layout
@@ -421,5 +422,22 @@ namespace Avalonia.Base.UnitTests.Layout
             Assert.Equal(new Size(200, 200), control.Bounds.Size);
             Assert.Equal(new Size(200, 200), control.DesiredSize);
         }
+        
+        [Fact]
+        public void LayoutManager_Execute_Layout_Pass_Should_Clear_Queued_LayoutPasses()
+        {
+            var control = new LayoutTestControl();
+            var root = new LayoutTestRoot { Child = control };
+
+            int layoutCount = 0;
+            root.LayoutUpdated += (sender, args) => layoutCount++;
+
+            root.LayoutManager.InvalidateArrange(control);
+            root.LayoutManager.ExecuteInitialLayoutPass();
+            
+            Dispatcher.UIThread.RunJobs(DispatcherPriority.Layout);
+            
+            Assert.Equal(1, layoutCount);
+        }
     }
 }