|
@@ -337,6 +337,27 @@ namespace Avalonia.Base.UnitTests.Interactivity
|
|
|
Assert.True(target.GetVisualParent<TestInteractive>().ClassHandlerInvoked);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Typed_Class_Handlers_Should_Be_Called_For_Handled_Events()
|
|
|
+ {
|
|
|
+ var ev = new RoutedEvent<RoutedEventArgs>(
|
|
|
+ "test",
|
|
|
+ RoutingStrategies.Bubble | RoutingStrategies.Tunnel,
|
|
|
+ typeof(TestInteractive));
|
|
|
+
|
|
|
+ var target = CreateTree(ev, null, 0);
|
|
|
+
|
|
|
+ ev.AddClassHandler<TestInteractive>((x, e) => x.MarkEventAsHandled(e), RoutingStrategies.Bubble);
|
|
|
+ ev.AddClassHandler<TestInteractive>((x, e) => x.ClassHandler(e), RoutingStrategies.Bubble, handledEventsToo: true);
|
|
|
+
|
|
|
+ var args = new RoutedEventArgs(ev, target);
|
|
|
+ target.RaiseEvent(args);
|
|
|
+
|
|
|
+ Assert.True(args.Handled);
|
|
|
+ Assert.True(target.ClassHandlerInvoked);
|
|
|
+ Assert.True(target.GetVisualParent<TestInteractive>().ClassHandlerInvoked);
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public void GetObservable_Should_Listen_To_Event()
|
|
|
{
|
|
@@ -443,6 +464,11 @@ namespace Avalonia.Base.UnitTests.Interactivity
|
|
|
{
|
|
|
ClassHandlerInvoked = true;
|
|
|
}
|
|
|
+
|
|
|
+ public void MarkEventAsHandled(RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ e.Handled = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|