diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs index c5cbda5325..707e1d4470 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs @@ -1,5 +1,10 @@ using System.Collections.Generic; +using Avalonia.Controls; +using Avalonia.Controls.Documents; using Avalonia.Data; +using Avalonia.Media; +using Avalonia.Styling; +using Avalonia.UnitTests; using Xunit; namespace Avalonia.Base.UnitTests @@ -90,6 +95,31 @@ namespace Avalonia.Base.UnitTests Assert.Equal(1, raised); } + [Fact] + public void ClearValue_On_Parent_Raises_PropertyChanged_On_Child_With_Inherited_Grandparent_Value() + { + var grandparent = new Class1(); + var parent = new Class2 { Parent = grandparent }; + var child = new Class2 { Parent = parent }; + var raised = 0; + + grandparent.SetValue(Class1.BazProperty, "grandparent"); + parent.SetValue(Class1.BazProperty, "parent"); + + child.PropertyChanged += (s, e) => + { + Assert.Same(child, e.Sender); + Assert.Equal("parent", e.OldValue); + Assert.Equal("grandparent", e.NewValue); + Assert.Equal(BindingPriority.Inherited, e.Priority); + ++raised; + }; + + parent.ClearValue(Class1.BazProperty); + + Assert.Equal(1, raised); + } + [Fact] public void Setting_InheritanceParent_Raises_PropertyChanged_When_Parent_Has_Value_Set() {