Browse Source

Added failing ScrollViewer test.

pull/10285/head
Steven Kirk 3 years ago
parent
commit
68074ce4b1
  1. 34
      tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs

34
tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs

@ -237,6 +237,40 @@ namespace Avalonia.Controls.UnitTests
Assert.Equal(1, raised);
}
[Fact]
public void Reducing_Extent_Should_Constrain_Offset()
{
var target = new ScrollViewer
{
Template = new FuncControlTemplate<ScrollViewer>(CreateTemplate),
};
var root = new TestRoot(target);
var raised = 0;
target.SetValue(ScrollViewer.ExtentProperty, new Size(100, 100));
target.SetValue(ScrollViewer.ViewportProperty, new Size(50, 50));
target.Offset = new Vector(50, 50);
root.LayoutManager.ExecuteInitialLayoutPass();
target.ScrollChanged += (s, e) =>
{
Assert.Equal(new Vector(-30, -30), e.ExtentDelta);
Assert.Equal(new Vector(-30, -30), e.OffsetDelta);
Assert.Equal(default, e.ViewportDelta);
++raised;
};
target.SetValue(ScrollViewer.ExtentProperty, new Size(70, 70));
Assert.Equal(0, raised);
root.LayoutManager.ExecuteLayoutPass();
Assert.Equal(1, raised);
Assert.Equal(new Vector(20, 20), target.Offset);
}
private Control CreateTemplate(ScrollViewer control, INameScope scope)
{
return new Grid

Loading…
Cancel
Save