|
|
|
@ -1,4 +1,5 @@ |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using Avalonia.Controls.Presenters; |
|
|
|
using Avalonia.Controls.Primitives; |
|
|
|
@ -181,18 +182,21 @@ namespace Avalonia.Controls.UnitTests.Primitives |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Child_Should_Be_Measured_With_Infinity() |
|
|
|
public void Child_Should_Be_Measured_With_MaxAutoSizeHint() |
|
|
|
{ |
|
|
|
using (UnitTestApplication.Start(TestServices.StyledWindow)) |
|
|
|
{ |
|
|
|
var child = new ChildControl(); |
|
|
|
var window = new Window(); |
|
|
|
var target = CreateTarget(window); |
|
|
|
var popupImpl = MockWindowingPlatform.CreatePopupMock(window.PlatformImpl); |
|
|
|
popupImpl.Setup(x => x.MaxAutoSizeHint).Returns(new Size(1200, 1000)); |
|
|
|
var target = CreateTarget(window, popupImpl.Object); |
|
|
|
|
|
|
|
target.Content = child; |
|
|
|
target.Show(); |
|
|
|
|
|
|
|
Assert.Equal(Size.Infinity, child.MeasureSize); |
|
|
|
Assert.Equal(1, child.MeasureSizes.Count); |
|
|
|
Assert.Equal(new Size(1200, 1000), child.MeasureSizes[0]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -210,7 +214,8 @@ namespace Avalonia.Controls.UnitTests.Primitives |
|
|
|
target.Content = child; |
|
|
|
target.Show(); |
|
|
|
|
|
|
|
Assert.Equal(new Size(500, 600), child.MeasureSize); |
|
|
|
Assert.Equal(1, child.MeasureSizes.Count); |
|
|
|
Assert.Equal(new Size(500, 600), child.MeasureSizes[0]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -228,7 +233,8 @@ namespace Avalonia.Controls.UnitTests.Primitives |
|
|
|
target.Content = child; |
|
|
|
target.Show(); |
|
|
|
|
|
|
|
Assert.Equal(new Size(500, 600), child.MeasureSize); |
|
|
|
Assert.Equal(1, child.MeasureSizes.Count); |
|
|
|
Assert.Equal(new Size(500, 600), child.MeasureSizes[0]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -365,11 +371,11 @@ namespace Avalonia.Controls.UnitTests.Primitives |
|
|
|
|
|
|
|
private class ChildControl : Control |
|
|
|
{ |
|
|
|
public Size MeasureSize { get; private set; } |
|
|
|
public List<Size> MeasureSizes { get; } = new List<Size>(); |
|
|
|
|
|
|
|
protected override Size MeasureOverride(Size availableSize) |
|
|
|
{ |
|
|
|
MeasureSize = availableSize; |
|
|
|
MeasureSizes.Add(availableSize); |
|
|
|
return base.MeasureOverride(availableSize); |
|
|
|
} |
|
|
|
} |
|
|
|
|