Browse Source

Added failing test for #3176.

pull/3621/head
Steven Kirk 6 years ago
parent
commit
4e62ff3ffb
  1. 24
      tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs

24
tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs

@ -358,6 +358,29 @@ namespace Avalonia.Interactivity.UnitTests
Assert.Equal(1, called);
}
[Fact]
public void Removing_Control_In_Handler_Should_Not_Stop_Event()
{
// Issue #3176
var ev = new RoutedEvent("test", RoutingStrategies.Bubble, typeof(RoutedEventArgs), typeof(TestInteractive));
var invoked = new List<string>();
EventHandler<RoutedEventArgs> handler = (s, e) => invoked.Add(((TestInteractive)s).Name);
var parent = CreateTree(ev, handler, RoutingStrategies.Bubble | RoutingStrategies.Tunnel);
var target = (IInteractive)parent.GetVisualChildren().Single();
EventHandler<RoutedEventArgs> removeHandler = (s, e) =>
{
parent.Children = Array.Empty<IVisual>();
};
target.AddHandler(ev, removeHandler);
var args = new RoutedEventArgs(ev, target);
target.RaiseEvent(args);
Assert.Equal(new[] { "3", "2b", "1" }, invoked);
}
private TestInteractive CreateTree(
RoutedEvent ev,
EventHandler<RoutedEventArgs> handler,
@ -414,6 +437,7 @@ namespace Avalonia.Interactivity.UnitTests
set
{
VisualChildren.Clear();
VisualChildren.AddRange(value.Cast<Visual>());
}
}

Loading…
Cancel
Save