From ef0464a7e76dfe2182782c03786e7258ecf34479 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 11:10:37 +0300 Subject: [PATCH 01/12] add failing tests for grid: when column/row (width/height ...) properties are changed grid doesn't react --- .../Avalonia.Controls.UnitTests/GridTests.cs | 122 ++++++++++++++++-- 1 file changed, 113 insertions(+), 9 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/GridTests.cs b/tests/Avalonia.Controls.UnitTests/GridTests.cs index 2b9197e20b..353e5ecd42 100644 --- a/tests/Avalonia.Controls.UnitTests/GridTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridTests.cs @@ -1,11 +1,6 @@ +using System; using System.Collections.Generic; using System.Linq; -using Avalonia.Controls.Primitives; -using Avalonia.Input; -using Avalonia.Platform; -using Avalonia.UnitTests; - -using Moq; using Xunit; using Xunit.Abstractions; @@ -34,7 +29,6 @@ namespace Avalonia.Controls.UnitTests private Grid CreateGrid(params (string name, GridLength width, double minWidth, double maxWidth)[] columns) { - var grid = new Grid(); foreach (var k in columns.Select(c => new ColumnDefinition { @@ -1270,11 +1264,11 @@ namespace Avalonia.Controls.UnitTests // grid.Measure(new Size(100, 100)); // grid.Arrange(new Rect(new Point(), new Point(100, 100))); // PrintColumnDefinitions(grid); - + // NOTE: THIS IS BROKEN IN WPF // all in group are equal to width (MinWidth) of the sizer in the second column // Assert.All(grid.ColumnDefinitions.Where(cd => cd.SharedSizeGroup == "A"), cd => Assert.Equal(6 + 1 * 6, cd.ActualWidth)); - + // NOTE: THIS IS BROKEN IN WPF // grid.ColumnDefinitions[2].SharedSizeGroup = null; @@ -1382,6 +1376,116 @@ namespace Avalonia.Controls.UnitTests Assert.Equal(new Size(100, 100), grid.Bounds.Size); } + [Theory] + [InlineData(true)] + [InlineData(false)] + public void Change_Column_Width_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + if (setUsingAvaloniaProperty) + grid.ColumnDefinitions[0][ColumnDefinition.WidthProperty] = new GridLength(5); + else + grid.ColumnDefinitions[0].Width = new GridLength(5); + }); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void Change_Column_MinWidth_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + if (setUsingAvaloniaProperty) + grid.ColumnDefinitions[0][ColumnDefinition.MinWidthProperty] = 5; + else + grid.ColumnDefinitions[0].MinWidth = 5; + }); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void Change_Column_MaxWidth_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + if (setUsingAvaloniaProperty) + grid.ColumnDefinitions[0][ColumnDefinition.MaxWidthProperty] = 5; + else + grid.ColumnDefinitions[0].MaxWidth = 5; + }); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void Change_Row_Height_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + { + var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + if (setUsingAvaloniaProperty) + grid.RowDefinitions[0][RowDefinition.HeightProperty] = new GridLength(5); + else + grid.RowDefinitions[0].Height = new GridLength(5); + }); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void Change_Row_MinHeight_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + { + var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + if (setUsingAvaloniaProperty) + grid.RowDefinitions[0][RowDefinition.MinHeightProperty] = 5; + else + grid.RowDefinitions[0].MinHeight = 5; + }); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void Change_Row_MaxHeight_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + { + var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + if (setUsingAvaloniaProperty) + grid.RowDefinitions[0][RowDefinition.MaxHeightProperty] = 5; + else + grid.RowDefinitions[0].MaxHeight = 5; + }); + } + + private static void Change_Propery_And_Verify_Measure_Requested(Grid grid, Action change) + { + grid.Measure(new Size(100, 100)); + grid.Arrange(new Rect(grid.DesiredSize)); + + Assert.True(grid.IsMeasureValid); + Assert.True(grid.IsArrangeValid); + + change(); + + Assert.False(grid.IsMeasureValid); + Assert.False(grid.IsArrangeValid); + } + private class TestControl : Control { public Size MeasureSize { get; set; } From 4f82615868d86e815631d08901284937666d835a Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 15:11:23 +0300 Subject: [PATCH 02/12] fix problem when grid row/col properties (width/height ...) are changed grid to invalidate calculations --- src/Avalonia.Controls/ColumnDefinition.cs | 11 ++++++++--- src/Avalonia.Controls/DefinitionBase.cs | 17 +++++++++++++++++ src/Avalonia.Controls/RowDefinition.cs | 11 ++++++++--- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/Avalonia.Controls/ColumnDefinition.cs b/src/Avalonia.Controls/ColumnDefinition.cs index 9c520c434e..6cad357e93 100644 --- a/src/Avalonia.Controls/ColumnDefinition.cs +++ b/src/Avalonia.Controls/ColumnDefinition.cs @@ -26,6 +26,14 @@ namespace Avalonia.Controls public static readonly StyledProperty WidthProperty = AvaloniaProperty.Register(nameof(Width), new GridLength(1, GridUnitType.Star)); + /// + /// Initializes static members of the class. + /// + static ColumnDefinition() + { + AffectsParentMeasure(WidthProperty, MinWidthProperty, MaxWidthProperty); + } + /// /// Initializes a new instance of the class. /// @@ -68,7 +76,6 @@ namespace Avalonia.Controls } set { - Parent?.InvalidateMeasure(); SetValue(MaxWidthProperty, value); } } @@ -84,7 +91,6 @@ namespace Avalonia.Controls } set { - Parent?.InvalidateMeasure(); SetValue(MinWidthProperty, value); } } @@ -100,7 +106,6 @@ namespace Avalonia.Controls } set { - Parent?.InvalidateMeasure(); SetValue(WidthProperty, value); } } diff --git a/src/Avalonia.Controls/DefinitionBase.cs b/src/Avalonia.Controls/DefinitionBase.cs index a68fe1265f..37c77ddb9c 100644 --- a/src/Avalonia.Controls/DefinitionBase.cs +++ b/src/Avalonia.Controls/DefinitionBase.cs @@ -730,5 +730,22 @@ namespace Avalonia.Controls SharedSizeGroupProperty.Changed.AddClassHandler(OnSharedSizeGroupPropertyChanged); PrivateSharedSizeScopeProperty.Changed.AddClassHandler(OnPrivateSharedSizeScopePropertyChanged); } + + /// + /// Marks a property on a definition as affecting the parent grid's measurement. + /// + /// The properties. + protected static void AffectsParentMeasure(params AvaloniaProperty[] properties) + { + void Invalidate(AvaloniaPropertyChangedEventArgs e) + { + (e.Sender as DefinitionBase)?.Parent?.InvalidateMeasure(); + } + + foreach (var property in properties) + { + property.Changed.Subscribe(Invalidate); + } + } } } diff --git a/src/Avalonia.Controls/RowDefinition.cs b/src/Avalonia.Controls/RowDefinition.cs index 1f2f738670..1a1a7e770b 100644 --- a/src/Avalonia.Controls/RowDefinition.cs +++ b/src/Avalonia.Controls/RowDefinition.cs @@ -26,6 +26,14 @@ namespace Avalonia.Controls public static readonly StyledProperty HeightProperty = AvaloniaProperty.Register(nameof(Height), new GridLength(1, GridUnitType.Star)); + /// + /// Initializes static members of the class. + /// + static RowDefinition() + { + AffectsParentMeasure(HeightProperty, MaxHeightProperty, MinHeightProperty); + } + /// /// Initializes a new instance of the class. /// @@ -68,7 +76,6 @@ namespace Avalonia.Controls } set { - Parent?.InvalidateMeasure(); SetValue(MaxHeightProperty, value); } } @@ -84,7 +91,6 @@ namespace Avalonia.Controls } set { - Parent?.InvalidateMeasure(); SetValue(MinHeightProperty, value); } } @@ -100,7 +106,6 @@ namespace Avalonia.Controls } set { - Parent?.InvalidateMeasure(); SetValue(HeightProperty, value); } } From fe4866d763539e0471785b80f705e58a1def2104 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 15:04:05 +0300 Subject: [PATCH 03/12] issue: #3141 add failing tests for grid: when col/row are added grid doesn't trigger layout update --- .../Avalonia.Controls.UnitTests/GridTests.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/GridTests.cs b/tests/Avalonia.Controls.UnitTests/GridTests.cs index 353e5ecd42..84ae12984c 100644 --- a/tests/Avalonia.Controls.UnitTests/GridTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridTests.cs @@ -1472,6 +1472,27 @@ namespace Avalonia.Controls.UnitTests }); } + [Fact] + public void Add_Column_Should_Invalidate_Grid() + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + grid.ColumnDefinitions.Add(new ColumnDefinition(new GridLength(5))); + }); + } + + [Fact] + public void Add_Row_Should_Invalidate_Grid() + { + var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + grid.RowDefinitions.Add(new RowDefinition(new GridLength(5))); + }); + } private static void Change_Propery_And_Verify_Measure_Requested(Grid grid, Action change) { grid.Measure(new Size(100, 100)); From acf0d42a8139b146859fb1b9cab19e9c8f6afba1 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 15:14:17 +0300 Subject: [PATCH 04/12] fix issue: #3141 when col/row are added grid trigger layout update --- src/Avalonia.Controls/DefinitionBase.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Avalonia.Controls/DefinitionBase.cs b/src/Avalonia.Controls/DefinitionBase.cs index 37c77ddb9c..3052728222 100644 --- a/src/Avalonia.Controls/DefinitionBase.cs +++ b/src/Avalonia.Controls/DefinitionBase.cs @@ -50,6 +50,8 @@ namespace Avalonia.Controls } } } + + Parent?.InvalidateMeasure(); } /// From b0eb2a10187d1cb60a359994bd2b22146ba643fd Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 15:07:49 +0300 Subject: [PATCH 05/12] issue: #3141 add failing tests for grid: when col/row are removed grid doesn't trigger layout update --- .../Avalonia.Controls.UnitTests/GridTests.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/GridTests.cs b/tests/Avalonia.Controls.UnitTests/GridTests.cs index 84ae12984c..187255a89b 100644 --- a/tests/Avalonia.Controls.UnitTests/GridTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridTests.cs @@ -1493,6 +1493,28 @@ namespace Avalonia.Controls.UnitTests grid.RowDefinitions.Add(new RowDefinition(new GridLength(5))); }); } + + [Fact] + public void Remove_Column_Should_Invalidate_Grid() + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + grid.ColumnDefinitions.RemoveAt(0); + }); + } + + [Fact] + public void Remove_Row_Should_Invalidate_Grid() + { + var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + grid.RowDefinitions.RemoveAt(0); + }); + } private static void Change_Propery_And_Verify_Measure_Requested(Grid grid, Action change) { grid.Measure(new Size(100, 100)); From 4b275a8f29c70106cdf57ab19d6ef4505f4a24a6 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 15:14:55 +0300 Subject: [PATCH 06/12] fixed issue: #3141 when col/row are removed grid trigger layout update --- src/Avalonia.Controls/DefinitionBase.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Avalonia.Controls/DefinitionBase.cs b/src/Avalonia.Controls/DefinitionBase.cs index 3052728222..6ad32f080a 100644 --- a/src/Avalonia.Controls/DefinitionBase.cs +++ b/src/Avalonia.Controls/DefinitionBase.cs @@ -65,6 +65,8 @@ namespace Avalonia.Controls _sharedState.RemoveMember(this); _sharedState = null; } + + Parent?.InvalidateMeasure(); } /// From a7f0851efb98d3f23b17d5eb4c8d46b38dddc916 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 15:37:52 +0300 Subject: [PATCH 07/12] add failing test for grid when columns/row are replaced grid doesn't invalidate --- .../Avalonia.Controls.UnitTests/GridTests.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/GridTests.cs b/tests/Avalonia.Controls.UnitTests/GridTests.cs index 187255a89b..192b8b2172 100644 --- a/tests/Avalonia.Controls.UnitTests/GridTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridTests.cs @@ -1494,6 +1494,28 @@ namespace Avalonia.Controls.UnitTests }); } + [Fact] + public void Replace_Columns_Should_Invalidate_Grid() + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + grid.ColumnDefinitions = ColumnDefinitions.Parse("2*,1*"); + }); + } + + [Fact] + public void Replace_Rows_Should_Invalidate_Grid() + { + var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; + + Change_Propery_And_Verify_Measure_Requested(grid, () => + { + grid.RowDefinitions = RowDefinitions.Parse("2*,1*"); + }); + } + [Fact] public void Remove_Column_Should_Invalidate_Grid() { @@ -1515,6 +1537,7 @@ namespace Avalonia.Controls.UnitTests grid.RowDefinitions.RemoveAt(0); }); } + private static void Change_Propery_And_Verify_Measure_Requested(Grid grid, Action change) { grid.Measure(new Size(100, 100)); From 7f2b3261b4db52c1bea46c4e228a0a48cb22e778 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 15:38:28 +0300 Subject: [PATCH 08/12] fix grid to invalidate when columns/rows are replaced --- src/Avalonia.Controls/Grid.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Avalonia.Controls/Grid.cs b/src/Avalonia.Controls/Grid.cs index 8ecfe349f8..ef202178df 100644 --- a/src/Avalonia.Controls/Grid.cs +++ b/src/Avalonia.Controls/Grid.cs @@ -178,6 +178,7 @@ namespace Avalonia.Controls if (_data == null) { _data = new ExtendedData(); } _data.ColumnDefinitions = value; _data.ColumnDefinitions.Parent = this; + InvalidateMeasure(); } } @@ -198,6 +199,7 @@ namespace Avalonia.Controls if (_data == null) { _data = new ExtendedData(); } _data.RowDefinitions = value; _data.RowDefinitions.Parent = this; + InvalidateMeasure(); } } From 56cfbc1e465e25efee7410edd6c021c9b2ab8404 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 16:13:35 +0300 Subject: [PATCH 09/12] add failing test for issue #3155 add/remove grid child runtime throws exception --- .../Avalonia.Controls.UnitTests/GridTests.cs | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/GridTests.cs b/tests/Avalonia.Controls.UnitTests/GridTests.cs index 192b8b2172..5db28238f4 100644 --- a/tests/Avalonia.Controls.UnitTests/GridTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridTests.cs @@ -1538,6 +1538,69 @@ namespace Avalonia.Controls.UnitTests }); } + [Fact] + public void Remove_Child_Should_Invalidate_Grid_And_Be_Operational() + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") }; + + grid.Children.Add(new Decorator() { [Grid.ColumnProperty] = 0 }); + grid.Children.Add(new Decorator() { Width = 10, Height = 10, [Grid.ColumnProperty] = 1 }); + + var size = new Size(100, 100); + grid.Measure(size); + grid.Arrange(new Rect(size)); + + Assert.True(grid.IsMeasureValid); + Assert.True(grid.IsArrangeValid); + + Assert.Equal(90, grid.Children[0].Bounds.Width); + Assert.Equal(10, grid.Children[1].Bounds.Width); + + grid.Children.RemoveAt(1); + + Assert.False(grid.IsMeasureValid); + Assert.False(grid.IsArrangeValid); + + grid.Measure(size); + grid.Arrange(new Rect(size)); + + Assert.True(grid.IsMeasureValid); + Assert.True(grid.IsArrangeValid); + + Assert.Equal(100, grid.Children[0].Bounds.Width); + } + + [Fact] + public void Add_Child_Should_Invalidate_Grid_And_Be_Operational() + { + var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") }; + + grid.Children.Add(new Decorator() { [Grid.ColumnProperty] = 0 }); + + var size = new Size(100, 100); + grid.Measure(size); + grid.Arrange(new Rect(size)); + + Assert.True(grid.IsMeasureValid); + Assert.True(grid.IsArrangeValid); + + Assert.Equal(100, grid.Children[0].Bounds.Width); + + grid.Children.Add(new Decorator() { Width = 10, Height = 10, [Grid.ColumnProperty] = 1 }); + + Assert.False(grid.IsMeasureValid); + Assert.False(grid.IsArrangeValid); + + grid.Measure(size); + grid.Arrange(new Rect(size)); + + Assert.True(grid.IsMeasureValid); + Assert.True(grid.IsArrangeValid); + + Assert.Equal(90, grid.Children[0].Bounds.Width); + Assert.Equal(10, grid.Children[1].Bounds.Width); + } + private static void Change_Propery_And_Verify_Measure_Requested(Grid grid, Action change) { grid.Measure(new Size(100, 100)); From d478572e7452a5d79625ab42f39b75d32aa2d2c8 Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 16:14:36 +0300 Subject: [PATCH 10/12] fix issue #3155 add/remove grid child runtime works properly --- src/Avalonia.Controls/Grid.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Avalonia.Controls/Grid.cs b/src/Avalonia.Controls/Grid.cs index ef202178df..23c1cd4794 100644 --- a/src/Avalonia.Controls/Grid.cs +++ b/src/Avalonia.Controls/Grid.cs @@ -6,6 +6,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Collections.Specialized; using System.Diagnostics; using System.Linq; using System.Threading; @@ -571,6 +572,15 @@ namespace Avalonia.Controls return (arrangeSize); } + /// + /// + /// + protected override void ChildrenChanged(object sender, NotifyCollectionChangedEventArgs e) + { + CellsStructureDirty = true; + base.ChildrenChanged(sender, e); + } + /// /// Invalidates grid caches and makes the grid dirty for measure. /// From 171a75eaed1ce5b0bfa1245fdc2f98ff6c67017c Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Fri, 25 Oct 2019 16:46:37 +0300 Subject: [PATCH 11/12] pr comments --- .../Avalonia.Controls.UnitTests/GridTests.cs | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/GridTests.cs b/tests/Avalonia.Controls.UnitTests/GridTests.cs index 5db28238f4..b74dd641df 100644 --- a/tests/Avalonia.Controls.UnitTests/GridTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridTests.cs @@ -1379,7 +1379,7 @@ namespace Avalonia.Controls.UnitTests [Theory] [InlineData(true)] [InlineData(false)] - public void Change_Column_Width_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + public void Changing_Column_Width_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; @@ -1395,7 +1395,7 @@ namespace Avalonia.Controls.UnitTests [Theory] [InlineData(true)] [InlineData(false)] - public void Change_Column_MinWidth_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + public void Changing_Column_MinWidth_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; @@ -1411,7 +1411,7 @@ namespace Avalonia.Controls.UnitTests [Theory] [InlineData(true)] [InlineData(false)] - public void Change_Column_MaxWidth_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + public void Changing_Column_MaxWidth_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; @@ -1427,7 +1427,7 @@ namespace Avalonia.Controls.UnitTests [Theory] [InlineData(true)] [InlineData(false)] - public void Change_Row_Height_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + public void Changing_Row_Height_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; @@ -1443,7 +1443,7 @@ namespace Avalonia.Controls.UnitTests [Theory] [InlineData(true)] [InlineData(false)] - public void Change_Row_MinHeight_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + public void Changing_Row_MinHeight_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; @@ -1459,7 +1459,7 @@ namespace Avalonia.Controls.UnitTests [Theory] [InlineData(true)] [InlineData(false)] - public void Change_Row_MaxHeight_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) + public void Changing_Row_MaxHeight_Should_Invalidate_Grid(bool setUsingAvaloniaProperty) { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; @@ -1473,7 +1473,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Add_Column_Should_Invalidate_Grid() + public void Adding_Column_Should_Invalidate_Grid() { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; @@ -1484,7 +1484,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Add_Row_Should_Invalidate_Grid() + public void Adding_Row_Should_Invalidate_Grid() { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; @@ -1495,7 +1495,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Replace_Columns_Should_Invalidate_Grid() + public void Replacing_Columns_Should_Invalidate_Grid() { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; @@ -1506,7 +1506,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Replace_Rows_Should_Invalidate_Grid() + public void Replacing_Rows_Should_Invalidate_Grid() { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; @@ -1517,7 +1517,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Remove_Column_Should_Invalidate_Grid() + public void Removing_Column_Should_Invalidate_Grid() { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; @@ -1528,7 +1528,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Remove_Row_Should_Invalidate_Grid() + public void Removing_Row_Should_Invalidate_Grid() { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; @@ -1539,7 +1539,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Remove_Child_Should_Invalidate_Grid_And_Be_Operational() + public void Removing_Child_Should_Invalidate_Grid_And_Be_Operational() { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") }; @@ -1571,7 +1571,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - public void Add_Child_Should_Invalidate_Grid_And_Be_Operational() + public void Adding_Child_Should_Invalidate_Grid_And_Be_Operational() { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("*,Auto") }; From ab26c18a8f882b1665cbd62dfdbc5a877c5c534e Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Sat, 26 Oct 2019 21:01:43 +0300 Subject: [PATCH 12/12] typo fix --- .../Avalonia.Controls.UnitTests/GridTests.cs | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/GridTests.cs b/tests/Avalonia.Controls.UnitTests/GridTests.cs index b74dd641df..a2d6f14b26 100644 --- a/tests/Avalonia.Controls.UnitTests/GridTests.cs +++ b/tests/Avalonia.Controls.UnitTests/GridTests.cs @@ -1383,7 +1383,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { if (setUsingAvaloniaProperty) grid.ColumnDefinitions[0][ColumnDefinition.WidthProperty] = new GridLength(5); @@ -1399,7 +1399,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { if (setUsingAvaloniaProperty) grid.ColumnDefinitions[0][ColumnDefinition.MinWidthProperty] = 5; @@ -1415,7 +1415,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { if (setUsingAvaloniaProperty) grid.ColumnDefinitions[0][ColumnDefinition.MaxWidthProperty] = 5; @@ -1431,7 +1431,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { if (setUsingAvaloniaProperty) grid.RowDefinitions[0][RowDefinition.HeightProperty] = new GridLength(5); @@ -1447,7 +1447,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { if (setUsingAvaloniaProperty) grid.RowDefinitions[0][RowDefinition.MinHeightProperty] = 5; @@ -1463,7 +1463,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { if (setUsingAvaloniaProperty) grid.RowDefinitions[0][RowDefinition.MaxHeightProperty] = 5; @@ -1477,7 +1477,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { grid.ColumnDefinitions.Add(new ColumnDefinition(new GridLength(5))); }); @@ -1488,7 +1488,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { grid.RowDefinitions.Add(new RowDefinition(new GridLength(5))); }); @@ -1499,7 +1499,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { grid.ColumnDefinitions = ColumnDefinitions.Parse("2*,1*"); }); @@ -1510,7 +1510,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { grid.RowDefinitions = RowDefinitions.Parse("2*,1*"); }); @@ -1521,7 +1521,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { ColumnDefinitions = ColumnDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { grid.ColumnDefinitions.RemoveAt(0); }); @@ -1532,7 +1532,7 @@ namespace Avalonia.Controls.UnitTests { var grid = new Grid { RowDefinitions = RowDefinitions.Parse("1*,1*") }; - Change_Propery_And_Verify_Measure_Requested(grid, () => + Change_Property_And_Verify_Measure_Requested(grid, () => { grid.RowDefinitions.RemoveAt(0); }); @@ -1601,7 +1601,7 @@ namespace Avalonia.Controls.UnitTests Assert.Equal(10, grid.Children[1].Bounds.Width); } - private static void Change_Propery_And_Verify_Measure_Requested(Grid grid, Action change) + private static void Change_Property_And_Verify_Measure_Requested(Grid grid, Action change) { grid.Measure(new Size(100, 100)); grid.Arrange(new Rect(grid.DesiredSize));