From 9f8f4b224f188d2cf48d9a613291b3dbb51dcc04 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 13 Oct 2020 17:42:42 +0200 Subject: [PATCH] Provide a RenderInterface for controls which use shapes. --- tests/Avalonia.Controls.UnitTests/CanvasTests.cs | 9 +++++++++ .../LayoutTransformControlTests.cs | 15 +++++++++++++++ .../RelativePanelTests.cs | 6 ++++++ tests/Avalonia.Controls.UnitTests/ViewboxTests.cs | 13 +++++++++++++ 4 files changed, 43 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/CanvasTests.cs b/tests/Avalonia.Controls.UnitTests/CanvasTests.cs index da1698330f..11a349f53e 100644 --- a/tests/Avalonia.Controls.UnitTests/CanvasTests.cs +++ b/tests/Avalonia.Controls.UnitTests/CanvasTests.cs @@ -1,5 +1,6 @@ using System; using Avalonia.Controls.Shapes; +using Avalonia.UnitTests; using Xunit; namespace Avalonia.Controls.UnitTests @@ -9,6 +10,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Left_Property_Should_Work() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + Rectangle rect; var target = new Canvas { @@ -34,6 +37,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Top_Property_Should_Work() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + Rectangle rect; var target = new Canvas { @@ -59,6 +64,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Right_Property_Should_Work() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + Rectangle rect; var target = new Canvas { @@ -84,6 +91,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Bottom_Property_Should_Work() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + Rectangle rect; var target = new Canvas { diff --git a/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs b/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs index 13c946b549..60139c2881 100644 --- a/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs @@ -1,5 +1,6 @@ using Avalonia.Controls.Shapes; using Avalonia.Media; +using Avalonia.UnitTests; using Xunit; namespace Avalonia.Controls.UnitTests @@ -171,6 +172,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Should_Generate_RotateTransform_90_degrees() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 25, @@ -193,6 +196,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Should_Generate_RotateTransform_minus_90_degrees() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 25, @@ -215,6 +220,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Should_Generate_ScaleTransform_x2() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 50, @@ -236,6 +243,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Should_Generate_SkewTransform_45_degrees() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 100, @@ -258,6 +267,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Should_Generate_SkewTransform_minus_45_degrees() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 100, @@ -279,6 +290,8 @@ namespace Avalonia.Controls.UnitTests private static void TransformMeasureSizeTest(Size size, Transform transform, Size expectedSize) { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( size.Width, size.Height, @@ -292,6 +305,8 @@ namespace Avalonia.Controls.UnitTests private static void TransformRootBoundsTest(Size size, Transform transform, Rect expectedBounds) { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform(size.Width, size.Height, transform); Rect outBounds = lt.TransformRoot.Bounds; diff --git a/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs b/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs index 6e171a58e7..6b2f05c923 100644 --- a/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs +++ b/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs @@ -1,4 +1,5 @@ using Avalonia.Controls.Shapes; +using Avalonia.UnitTests; using Xunit; namespace Avalonia.Controls.UnitTests @@ -8,6 +9,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Lays_Out_1_Child_Next_the_other() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); var rect1 = new Rectangle { Height = 20, Width = 20 }; var rect2 = new Rectangle { Height = 20, Width = 20 }; @@ -34,6 +36,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Lays_Out_1_Child_Below_the_other() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); var rect1 = new Rectangle { Height = 20, Width = 20 }; var rect2 = new Rectangle { Height = 20, Width = 20 }; @@ -60,6 +63,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void RelativePanel_Can_Center() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); var rect1 = new Rectangle { Height = 20, Width = 20 }; var rect2 = new Rectangle { Height = 20, Width = 20 }; @@ -86,6 +90,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void LeftOf_Measures_Correctly() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); var rect1 = new Rectangle { Height = 20, Width = 20 }; var rect2 = new Rectangle { Height = 20, Width = 20 }; @@ -111,6 +116,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Above_Measures_Correctly() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); var rect1 = new Rectangle { Height = 20, Width = 20 }; var rect2 = new Rectangle { Height = 20, Width = 20 }; diff --git a/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs b/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs index ad0f318d2f..e005bafbf9 100644 --- a/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs @@ -1,5 +1,6 @@ using Avalonia.Controls.Shapes; using Avalonia.Media; +using Avalonia.UnitTests; using Xunit; namespace Avalonia.Controls.UnitTests @@ -9,6 +10,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Viewbox_Stretch_Uniform_Child() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + var target = new Viewbox() { Child = new Rectangle() { Width = 100, Height = 50 } }; target.Measure(new Size(200, 200)); @@ -25,6 +28,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Viewbox_Stretch_None_Child() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + var target = new Viewbox() { Stretch = Stretch.None, Child = new Rectangle() { Width = 100, Height = 50 } }; target.Measure(new Size(200, 200)); @@ -41,6 +46,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Viewbox_Stretch_Fill_Child() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + var target = new Viewbox() { Stretch = Stretch.Fill, Child = new Rectangle() { Width = 100, Height = 50 } }; target.Measure(new Size(200, 200)); @@ -57,6 +64,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Viewbox_Stretch_UniformToFill_Child() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + var target = new Viewbox() { Stretch = Stretch.UniformToFill, Child = new Rectangle() { Width = 100, Height = 50 } }; target.Measure(new Size(200, 200)); @@ -73,6 +82,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Viewbox_Stretch_Uniform_Child_With_Unrestricted_Width() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + var target = new Viewbox() { Child = new Rectangle() { Width = 100, Height = 50 } }; target.Measure(new Size(double.PositiveInfinity, 200)); @@ -89,6 +100,8 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Viewbox_Stretch_Uniform_Child_With_Unrestricted_Height() { + using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); + var target = new Viewbox() { Child = new Rectangle() { Width = 100, Height = 50 } }; target.Measure(new Size(200, double.PositiveInfinity));