|
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using Terminal.Gui;
|
|
|
using Xunit;
|
|
|
+using static Terminal.Gui.Core.ViewTests;
|
|
|
|
|
|
// Alias Console to MockConsole so we don't accidentally use Console
|
|
|
using Console = Terminal.Gui.FakeConsole;
|
|
@@ -44,5 +45,52 @@ namespace Terminal.Gui.Core {
|
|
|
{
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ public class DerivedView : View {
|
|
|
+ public DerivedView ()
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ public override bool OnKeyDown (KeyEvent keyEvent)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsOverridden_False_IfNotOverridden ()
|
|
|
+ {
|
|
|
+ // MouseEvent IS defined on Responder but NOT overridden
|
|
|
+ Assert.False (Responder.IsOverridden (new Responder () { }, "MouseEvent"));
|
|
|
+
|
|
|
+ // MouseEvent is defined on Responder and NOT overrident on View
|
|
|
+ Assert.False (Responder.IsOverridden (new View () { Text = "View does not override MouseEvent" }, "MouseEvent"));
|
|
|
+ Assert.False (Responder.IsOverridden (new DerivedView () { Text = "DerivedView does not override MouseEvent" }, "MouseEvent"));
|
|
|
+
|
|
|
+ // MouseEvent is NOT defined on DerivedView
|
|
|
+ Assert.False (Responder.IsOverridden (new DerivedView () { Text = "DerivedView does not override MouseEvent" }, "MouseEvent"));
|
|
|
+
|
|
|
+ // OnKeyDown is defined on View and NOT overrident on Button
|
|
|
+ Assert.False (Responder.IsOverridden (new Button () { Text = "Button does not override OnKeyDown" }, "OnKeyDown"));
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsOverridden_True_IfOverridden ()
|
|
|
+ {
|
|
|
+ // MouseEvent is defined on Responder IS overriden on ScrollBarView (but not View)
|
|
|
+ Assert.True (Responder.IsOverridden (new ScrollBarView () { Text = "ScrollBarView overrides MouseEvent" }, "MouseEvent"));
|
|
|
+
|
|
|
+ // OnKeyDown is defined on View
|
|
|
+ Assert.True (Responder.IsOverridden (new View () { Text = "View overrides OnKeyDown" }, "OnKeyDown"));
|
|
|
+
|
|
|
+ // OnKeyDown is defined on DerivedView
|
|
|
+ Assert.True (Responder.IsOverridden (new DerivedView () { Text = "DerivedView overrides OnKeyDown" }, "OnKeyDown"));
|
|
|
+
|
|
|
+ // ScrollBarView overrides both MouseEvent (from Responder) and Redraw (from View)
|
|
|
+ Assert.True (Responder.IsOverridden (new ScrollBarView () { Text = "ScrollBarView overrides MouseEvent" }, "MouseEvent"));
|
|
|
+ Assert.True (Responder.IsOverridden (new ScrollBarView () { Text = "ScrollBarView overrides Redraw" }, "Redraw"));
|
|
|
+
|
|
|
+ Assert.True (Responder.IsOverridden (new Button () { Text = "Button overrides MouseEvent" }, "MouseEvent"));
|
|
|
+ }
|
|
|
}
|
|
|
}
|