From 94b6f133ea30f1fb6661403d5f46daa4ea45265d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 12 Oct 2020 17:30:36 +0200 Subject: [PATCH] Added failing test for #4822. --- .../Shapes/PathTests.cs | 22 ++++++++++++++++++- .../MockPlatformRenderInterface.cs | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs b/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs index 88c64e76cc..2a0bcc8d39 100644 --- a/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs @@ -1,4 +1,5 @@ -using Avalonia.Controls.Shapes; +using System.Runtime.InteropServices; +using Avalonia.Controls.Shapes; using Avalonia.Media; using Avalonia.UnitTests; using Xunit; @@ -34,5 +35,24 @@ namespace Avalonia.Controls.UnitTests.Shapes root.Child = null; } + + [Fact] + public void Arrange_Without_Measure_Updates_RenderedGeometry_Transform() + { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + + var target = new Path + { + Data = new RectangleGeometry { Rect = new Rect(0, 0, 100, 100) }, + Stretch = Stretch.Fill, + }; + + target.Measure(new Size(200, 200)); + target.Arrange(new Rect(0, 0, 200, 200)); + Assert.Equal(Matrix.CreateScale(2, 2), target.RenderedGeometry.Transform.Value); + + target.Arrange(new Rect(0, 0, 300, 300)); + Assert.Equal(Matrix.CreateScale(3, 3), target.RenderedGeometry.Transform.Value); + } } } diff --git a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs index 08df23cbe1..e73a76357a 100644 --- a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs +++ b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs @@ -34,7 +34,7 @@ namespace Avalonia.UnitTests public IGeometryImpl CreateRectangleGeometry(Rect rect) { - return Mock.Of(); + return Mock.Of(x => x.Bounds == rect); } public IRenderTarget CreateRenderTarget(IEnumerable surfaces)