From 923e5d1cf3e187d28be1137fe46f38914e6e31f5 Mon Sep 17 00:00:00 2001 From: Tig Date: Sun, 6 Oct 2024 08:39:05 -0600 Subject: [PATCH] Fixed ScreenPosition in tests --- Terminal.Gui/View/View.Command.cs | 7 ++++- Terminal.Gui/Views/Label.cs | 20 ++++++++++-- Terminal.Gui/Views/ListView.cs | 14 +++++++-- Terminal.Gui/Views/Menu/MenuBar.cs | 19 +++++++----- Terminal.Gui/Views/RadioGroup.cs | 7 ++++- UnitTests/TestHelpers.cs | 2 +- UnitTests/View/HotKeyTests.cs | 6 ++-- UnitTests/Views/AllViewsTests.cs | 47 +++++++++++++++++++++++++++++ UnitTests/Views/ColorPickerTests.cs | 4 +-- UnitTests/Views/ContextMenuTests.cs | 22 +++++++------- UnitTests/Views/LabelTests.cs | 39 +++++++++++++++++------- UnitTests/Views/ListViewTests.cs | 22 +++++++------- UnitTests/Views/MenuBarTests.cs | 10 +++--- UnitTests/Views/TabViewTests.cs | 18 +++++------ UnitTests/Views/TableViewTests.cs | 1 + UnitTests/Views/TextFieldTests.cs | 8 ++--- UnitTests/Views/TextViewTests.cs | 20 ++++++------ UnitTests/Views/ToplevelTests.cs | 44 +++++++++++++-------------- 18 files changed, 207 insertions(+), 103 deletions(-) diff --git a/Terminal.Gui/View/View.Command.cs b/Terminal.Gui/View/View.Command.cs index cfdae3ce6..79ef02bfe 100644 --- a/Terminal.Gui/View/View.Command.cs +++ b/Terminal.Gui/View/View.Command.cs @@ -19,9 +19,14 @@ public partial class View // Command APIs AddCommand (Command.HotKey, () => { + if (RaiseHotKeyHandled () is true) + { + return true; + } + SetFocus (); - return RaiseHotKeyHandled (); + return true; }); // Space or single-click - Raise Selected diff --git a/Terminal.Gui/Views/Label.cs b/Terminal.Gui/Views/Label.cs index 0294111ab..81de49753 100644 --- a/Terminal.Gui/Views/Label.cs +++ b/Terminal.Gui/Views/Label.cs @@ -19,7 +19,7 @@ /// ." /// /// -public class Label : View +public class Label : View, IDesignable { /// public Label () @@ -65,18 +65,32 @@ public class Label : View private bool? InvokeHotKeyOnNext (CommandContext context) { + if (RaiseHotKeyHandled () == true) + { + return true; + } + if (CanFocus) { - return SetFocus (); + SetFocus (); + + return true; } int me = SuperView?.Subviews.IndexOf (this) ?? -1; if (me != -1 && me < SuperView?.Subviews.Count - 1) { - SuperView?.Subviews [me + 1].InvokeCommand (Command.HotKey, context.Key, context.KeyBinding); + return SuperView?.Subviews [me + 1].InvokeCommand (Command.HotKey, context.Key, context.KeyBinding) == true; } + return false; + } + + /// + bool IDesignable.EnableForDesign () + { + Text = "_Label"; return true; } } diff --git a/Terminal.Gui/Views/ListView.cs b/Terminal.Gui/Views/ListView.cs index 5ed8d642b..a1de6f06a 100644 --- a/Terminal.Gui/Views/ListView.cs +++ b/Terminal.Gui/Views/ListView.cs @@ -140,7 +140,12 @@ public class ListView : View, IDesignable // Accept (Enter key) - Raise Accept event - DO NOT advance state AddCommand (Command.Accept, () => { - if (OnOpenSelectedItem () && RaiseAccepted () == true) + if (RaiseAccepted () == true) + { + return true; + } + + if (OnOpenSelectedItem ()) { return true; } @@ -153,7 +158,12 @@ public class ListView : View, IDesignable { if (_allowsMarking) { - if (MarkUnmarkSelectedItem () && RaiseSelected () == true) + if (RaiseSelected () == true) + { + return true; + } + + if (MarkUnmarkSelectedItem ()) { return true; } diff --git a/Terminal.Gui/Views/Menu/MenuBar.cs b/Terminal.Gui/Views/Menu/MenuBar.cs index 237bcce48..1825ba594 100644 --- a/Terminal.Gui/Views/Menu/MenuBar.cs +++ b/Terminal.Gui/Views/Menu/MenuBar.cs @@ -121,9 +121,12 @@ public class MenuBar : View, IDesignable Command.Accept, () => { - ProcessMenu (_selected, Menus [_selected]); + if (Menus.Length > 0) + { + ProcessMenu (_selected, Menus [_selected]); + } - return true; + return RaiseAccepted (); } ); AddCommand (Command.Toggle, ctx => @@ -134,7 +137,7 @@ public class MenuBar : View, IDesignable }); AddCommand (Command.Select, ctx => { - var res = Run ((ctx.KeyBinding?.Context as MenuItem)?.Action!); + var res = Run ((ctx.KeyBinding?.Context as MenuItem)?.Action!); CloseAllMenus (); return res; @@ -1153,11 +1156,11 @@ public class MenuBar : View, IDesignable SetNeedsDisplay (); } - private void ProcessMenu (int i, MenuBarItem mi) + private bool ProcessMenu (int i, MenuBarItem mi) { if (_selected < 0 && IsMenuOpen) { - return; + return false; } if (mi.IsTopLevel) @@ -1180,16 +1183,18 @@ public class MenuBar : View, IDesignable ) && !CloseMenu ()) { - return; + return true; } if (!OpenCurrentMenu.CheckSubMenu ()) { - return; + return true; } } SetNeedsDisplay (); + + return true; } private void RemoveSubMenu (int index, bool ignoreUseSubMenusSingleFrame = false) diff --git a/Terminal.Gui/Views/RadioGroup.cs b/Terminal.Gui/Views/RadioGroup.cs index 47673ad30..34dca89e8 100644 --- a/Terminal.Gui/Views/RadioGroup.cs +++ b/Terminal.Gui/Views/RadioGroup.cs @@ -50,7 +50,7 @@ public class RadioGroup : View, IDesignable, IOrientation }); // Accept (Enter key) - Raise Accept event - DO NOT advance state - AddCommand (Command.Accept, () => RaiseAccepted()); + AddCommand (Command.Accept, () => RaiseAccepted ()); // Hotkey - ctx may indicate a radio item hotkey was pressed. Beahvior depends on HasFocus // If HasFocus and it's this.HotKey invoke Select command - DO NOT raise Accept @@ -100,6 +100,11 @@ public class RadioGroup : View, IDesignable, IOrientation return false; } + if (RaiseHotKeyHandled () == true) + { + return true; + }; + // Default Command.Hotkey sets focus SetFocus (); diff --git a/UnitTests/TestHelpers.cs b/UnitTests/TestHelpers.cs index d13924150..976fc058a 100644 --- a/UnitTests/TestHelpers.cs +++ b/UnitTests/TestHelpers.cs @@ -742,7 +742,7 @@ public class TestsAllViews public static IEnumerable AllViewTypes => typeof (View).Assembly .GetTypes () - .Where (type => type.IsClass && !type.IsAbstract && type.IsPublic && type.IsSubclassOf (typeof (View))) + .Where (type => type.IsClass && !type.IsAbstract && type.IsPublic && (type.IsSubclassOf (typeof (View)) || type == typeof(View))) .Select (type => new object [] { type }); public static View CreateInstanceIfNotGeneric (Type type) diff --git a/UnitTests/View/HotKeyTests.cs b/UnitTests/View/HotKeyTests.cs index f5736ff6f..23015c7bb 100644 --- a/UnitTests/View/HotKeyTests.cs +++ b/UnitTests/View/HotKeyTests.cs @@ -362,20 +362,20 @@ public class HotKeyTests view.Selected += (s, e) => selectRaised = true; Assert.Equal (KeyCode.T, view.HotKey); - Assert.False (Application.OnKeyDown (Key.T)); // wasn't handled + Assert.True (Application.OnKeyDown (Key.T)); Assert.True (hotKeyRaised); Assert.False (acceptRaised); Assert.False (selectRaised); hotKeyRaised = false; - Assert.False (Application.OnKeyDown (Key.T.WithAlt)); + Assert.True (Application.OnKeyDown (Key.T.WithAlt)); Assert.True (hotKeyRaised); Assert.False (acceptRaised); Assert.False (selectRaised); hotKeyRaised = false; view.HotKey = KeyCode.E; - Assert.False (Application.OnKeyDown (Key.E.WithAlt)); + Assert.True (Application.OnKeyDown (Key.E.WithAlt)); Assert.True (hotKeyRaised); Assert.False (acceptRaised); Assert.False (selectRaised); diff --git a/UnitTests/Views/AllViewsTests.cs b/UnitTests/Views/AllViewsTests.cs index e55b5eade..4bbb62e61 100644 --- a/UnitTests/Views/AllViewsTests.cs +++ b/UnitTests/Views/AllViewsTests.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Reflection; +using System.Text; using Xunit.Abstractions; namespace Terminal.Gui.ViewsTests; @@ -163,4 +164,50 @@ public class AllViewsTests (ITestOutputHelper output) : TestsAllViews Assert.Equal (1, acceptedCount); } } + + + [Theory] + [MemberData (nameof (AllViewTypes))] + public void AllViews_Command_HotKey_Raises_HotKeyHandled (Type viewType) + { + var view = (View)CreateInstanceIfNotGeneric (viewType); + + if (view == null) + { + output.WriteLine ($"Ignoring {viewType} - It's a Generic"); + + return; + } + + if (view is IDesignable designable) + { + designable.EnableForDesign (); + } + else + { + view.HotKey = Key.T; + } + + var selectedCount = 0; + view.Selected += (s, e) => selectedCount++; + + var acceptedCount = 0; + view.Accepted += (s, e) => + { + acceptedCount++; + }; + + var hotkeyHandledCount = 0; + view.HotKeyHandled += (s, e) => + { + hotkeyHandledCount++; + }; + + if (view.InvokeCommand (Command.HotKey) == true) + { + Assert.Equal (1, hotkeyHandledCount); + Assert.Equal (0, selectedCount); + Assert.Equal (0, acceptedCount); + } + } } diff --git a/UnitTests/Views/ColorPickerTests.cs b/UnitTests/Views/ColorPickerTests.cs index 167872ea3..0b5b050c3 100644 --- a/UnitTests/Views/ColorPickerTests.cs +++ b/UnitTests/Views/ColorPickerTests.cs @@ -437,7 +437,7 @@ public class ColorPickerTests Application.OnMouseEvent (new () { Flags = MouseFlags.Button1Pressed, - Position = new (0, 1) + ScreenPosition = new (0, 1) }); //cp.Subviews.OfType () // .Single () @@ -456,7 +456,7 @@ public class ColorPickerTests Application.OnMouseEvent (new () { Flags = MouseFlags.Button1Pressed, - Position = new (0, 2) + ScreenPosition = new (0, 2) }); //cp.Subviews.OfType () // .Single () diff --git a/UnitTests/Views/ContextMenuTests.cs b/UnitTests/Views/ContextMenuTests.cs index 431def120..ab9e1448e 100644 --- a/UnitTests/Views/ContextMenuTests.cs +++ b/UnitTests/Views/ContextMenuTests.cs @@ -148,7 +148,7 @@ public class ContextMenuTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new MouseEvent { Position = new (8, 2), Flags = MouseFlags.Button3Clicked }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (8, 2), Flags = MouseFlags.Button3Clicked }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -231,7 +231,7 @@ public class ContextMenuTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new MouseEvent { Position = new (9, 3), Flags = MouseFlags.Button3Clicked }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (9, 3), Flags = MouseFlags.Button3Clicked }); var firstIteration = false; Application.RunIteration (ref rsDialog, ref firstIteration); @@ -287,7 +287,7 @@ public class ContextMenuTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new MouseEvent { Position = new (9, 3), Flags = MouseFlags.Button3Clicked }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (9, 3), Flags = MouseFlags.Button3Clicked }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1235,7 +1235,7 @@ public class ContextMenuTests (ITestOutputHelper output) ); // X=5 is the border and so need to use at least one more - Application.OnMouseEvent (new MouseEvent { Position = new (6, 13), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 13), Flags = MouseFlags.Button1Clicked }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1253,7 +1253,7 @@ public class ContextMenuTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new MouseEvent { Position = new (6, 12), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 12), Flags = MouseFlags.Button1Clicked }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1327,7 +1327,7 @@ public class ContextMenuTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new MouseEvent { Position = new (6, 13), Flags = MouseFlags.ReportMousePosition }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 13), Flags = MouseFlags.ReportMousePosition }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1344,7 +1344,7 @@ public class ContextMenuTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new MouseEvent { Position = new (6, 14), Flags = MouseFlags.ReportMousePosition }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 14), Flags = MouseFlags.ReportMousePosition }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1362,7 +1362,7 @@ public class ContextMenuTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new MouseEvent { Position = new (6, 13), Flags = MouseFlags.ReportMousePosition }); + Application.OnMouseEvent (new MouseEvent { ScreenPosition = new (6, 13), Flags = MouseFlags.ReportMousePosition }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1399,7 +1399,7 @@ public class ContextMenuTests (ITestOutputHelper output) Assert.Empty (Application._cachedViewsUnderMouse); // Right click on tf2 to open context menu - Application.OnMouseEvent (new () { Position = new (1, 3), Flags = MouseFlags.Button3Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (1, 3), Flags = MouseFlags.Button3Clicked }); Assert.False (tf1.HasFocus); Assert.False (tf2.HasFocus); Assert.Equal (5, win.Subviews.Count); @@ -1409,7 +1409,7 @@ public class ContextMenuTests (ITestOutputHelper output) Assert.Equal (tf2, Application._cachedViewsUnderMouse.LastOrDefault ()); // Click on tf1 to focus it, which cause context menu being closed - Application.OnMouseEvent (new () { Position = new (1, 1), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (1, 1), Flags = MouseFlags.Button1Clicked }); Assert.True (tf1.HasFocus); Assert.False (tf2.HasFocus); Assert.Equal (4, win.Subviews.Count); @@ -1421,7 +1421,7 @@ public class ContextMenuTests (ITestOutputHelper output) Assert.Equal (tf1, Application._cachedViewsUnderMouse.LastOrDefault ()); // Click on tf2 to focus it - Application.OnMouseEvent (new () { Position = new (1, 3), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (1, 3), Flags = MouseFlags.Button1Clicked }); Assert.False (tf1.HasFocus); Assert.True (tf2.HasFocus); Assert.Equal (4, win.Subviews.Count); diff --git a/UnitTests/Views/LabelTests.cs b/UnitTests/Views/LabelTests.cs index 78ddb8f2d..91aa97dbc 100644 --- a/UnitTests/Views/LabelTests.cs +++ b/UnitTests/Views/LabelTests.cs @@ -1320,9 +1320,20 @@ e [Fact] public void CanFocus_False_HotKey_SetsFocus_Next () { - View otherView = new () { Text = "otherView", CanFocus = true }; - Label label = new () { Text = "_label" }; - View nextView = new () { Text = "nextView", CanFocus = true }; + View otherView = new () + { + Text = "otherView", + CanFocus = true + }; + Label label = new () + { + Text = "_label" + }; + View nextView = new () + { + Text = "nextView", + CanFocus = true + }; Application.Navigation = new (); Application.Top = new (); Application.Top.Add (otherView, label, nextView); @@ -1330,7 +1341,6 @@ e Application.Top.SetFocus (); Assert.True (otherView.HasFocus); - // No focused view accepts Tab, and there's no other view to focus, so OnKeyDown returns false Assert.True (Application.OnKeyDown (label.HotKey)); Assert.False (otherView.HasFocus); Assert.False (label.HasFocus); @@ -1365,23 +1375,30 @@ e [Fact] public void CanFocus_True_HotKey_SetsFocus () { - Label label = new () { Text = "_label" }; - View view = new () { Text = "view", CanFocus = true }; + Label label = new () + { + Text = "_label", + CanFocus = true + }; + View view = new () + { + Text = "view", + CanFocus = true + }; Application.Navigation = new (); Application.Top = new (); Application.Top.Add (label, view); - Application.Top.SetFocus (); - Assert.Equal (view, Application.Top.MostFocused); - Assert.False (label.CanFocus); + view.SetFocus (); + Assert.True (label.CanFocus); Assert.False (label.HasFocus); Assert.True (view.CanFocus); Assert.True (view.HasFocus); // No focused view accepts Tab, and there's no other view to focus, so OnKeyDown returns false Assert.True (Application.OnKeyDown (label.HotKey)); - Assert.False (label.HasFocus); - Assert.True (view.HasFocus); + Assert.True (label.HasFocus); + Assert.False (view.HasFocus); Application.Top.Dispose (); Application.ResetState (); diff --git a/UnitTests/Views/ListViewTests.cs b/UnitTests/Views/ListViewTests.cs index 18f95a21f..5c0407931 100644 --- a/UnitTests/Views/ListViewTests.cs +++ b/UnitTests/Views/ListViewTests.cs @@ -414,14 +414,14 @@ Item 6", var listView = new ListView (); var accepted = false; - listView.Accepted += OnAccept; + listView.Accepted += OnAccepted; listView.InvokeCommand (Command.HotKey); Assert.False (accepted); return; - void OnAccept (object sender, HandledEventArgs e) { accepted = true; } + void OnAccepted (object sender, HandledEventArgs e) { accepted = true; } } [Fact] @@ -435,7 +435,7 @@ Item 6", var opened = false; var selectedValue = string.Empty; - listView.Accepted += Accept; + listView.Accepted += Accepted; listView.OpenSelectedItem += OpenSelectedItem; listView.InvokeCommand (Command.Accept); @@ -452,7 +452,7 @@ Item 6", selectedValue = e.Value.ToString (); } - void Accept (object sender, HandledEventArgs e) { accepted = true; } + void Accepted (object sender, HandledEventArgs e) { accepted = true; } } [Fact] @@ -466,7 +466,7 @@ Item 6", var opened = false; var selectedValue = string.Empty; - listView.Accepted += Accept; + listView.Accepted += Accepted; listView.OpenSelectedItem += OpenSelectedItem; listView.InvokeCommand (Command.Accept); @@ -483,7 +483,7 @@ Item 6", selectedValue = e.Value.ToString (); } - void Accept (object sender, HandledEventArgs e) + void Accepted (object sender, HandledEventArgs e) { accepted = true; e.Handled = true; @@ -741,14 +741,14 @@ Item 6", └─────┘", output); - Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (0, 0), Flags = MouseFlags.Button1Clicked }); Assert.Equal ("", selected); Assert.Equal (-1, lv.SelectedItem); Application.OnMouseEvent ( new () { - Position = new (1, 1), Flags = MouseFlags.Button1Clicked + ScreenPosition = new (1, 1), Flags = MouseFlags.Button1Clicked }); Assert.Equal ("One", selected); Assert.Equal (0, lv.SelectedItem); @@ -756,7 +756,7 @@ Item 6", Application.OnMouseEvent ( new () { - Position = new (1, 2), Flags = MouseFlags.Button1Clicked + ScreenPosition = new (1, 2), Flags = MouseFlags.Button1Clicked }); Assert.Equal ("Two", selected); Assert.Equal (1, lv.SelectedItem); @@ -764,7 +764,7 @@ Item 6", Application.OnMouseEvent ( new () { - Position = new (1, 3), Flags = MouseFlags.Button1Clicked + ScreenPosition = new (1, 3), Flags = MouseFlags.Button1Clicked }); Assert.Equal ("Three", selected); Assert.Equal (2, lv.SelectedItem); @@ -772,7 +772,7 @@ Item 6", Application.OnMouseEvent ( new () { - Position = new (1, 4), Flags = MouseFlags.Button1Clicked + ScreenPosition = new (1, 4), Flags = MouseFlags.Button1Clicked }); Assert.Equal ("Three", selected); Assert.Equal (2, lv.SelectedItem); diff --git a/UnitTests/Views/MenuBarTests.cs b/UnitTests/Views/MenuBarTests.cs index 9a7125391..99c801936 100644 --- a/UnitTests/Views/MenuBarTests.cs +++ b/UnitTests/Views/MenuBarTests.cs @@ -243,7 +243,7 @@ public class MenuBarTests (ITestOutputHelper output) top.Add (menu, btn); Application.Begin (top); - Application.OnMouseEvent (new () { Position = new (0, 4), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (0, 4), Flags = MouseFlags.Button1Clicked }); Assert.True (btnClicked); top.Dispose (); } @@ -613,7 +613,7 @@ public class MenuBarTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new () { Position = new (20, 5), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (20, 5), Flags = MouseFlags.Button1Clicked }); firstIteration = false; @@ -646,7 +646,7 @@ public class MenuBarTests (ITestOutputHelper output) { menu.OpenMenu (); - Application.OnMouseEvent (new () { Position = new (20, 5 + i), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (20, 5 + i), Flags = MouseFlags.Button1Clicked }); firstIteration = false; Application.RunIteration (ref rsDialog, ref firstIteration); @@ -809,7 +809,7 @@ public class MenuBarTests (ITestOutputHelper output) output ); - Application.OnMouseEvent (new () { Position = new (20, 5), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (20, 5), Flags = MouseFlags.Button1Clicked }); firstIteration = false; @@ -831,7 +831,7 @@ public class MenuBarTests (ITestOutputHelper output) { menu.OpenMenu (); - Application.OnMouseEvent (new () { Position = new (20, 5 + i), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (20, 5 + i), Flags = MouseFlags.Button1Clicked }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); diff --git a/UnitTests/Views/TabViewTests.cs b/UnitTests/Views/TabViewTests.cs index f8f255434..d56550b35 100644 --- a/UnitTests/Views/TabViewTests.cs +++ b/UnitTests/Views/TabViewTests.cs @@ -143,21 +143,21 @@ public class TabViewTests (ITestOutputHelper output) // Waving mouse around does not trigger click for (var i = 0; i < 100; i++) { - args = new () { Position = new (i, 1), Flags = MouseFlags.ReportMousePosition }; + args = new () { ScreenPosition = new (i, 1), Flags = MouseFlags.ReportMousePosition }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); Assert.Equal (tab1, tv.SelectedTab); } - args = new () { Position = new (3, 1), Flags = MouseFlags.Button1Clicked }; + args = new () { ScreenPosition = new (3, 1), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Equal (tab1, clicked); Assert.Equal (tab1, tv.SelectedTab); // Click to tab2 - args = new () { Position = new (6, 1), Flags = MouseFlags.Button1Clicked }; + args = new () { ScreenPosition = new (6, 1), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Equal (tab2, clicked); @@ -170,7 +170,7 @@ public class TabViewTests (ITestOutputHelper output) e.MouseEvent.Handled = true; }; - args = new () { Position = new (3, 1), Flags = MouseFlags.Button1Clicked }; + args = new () { ScreenPosition = new (3, 1), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); @@ -178,7 +178,7 @@ public class TabViewTests (ITestOutputHelper output) Assert.Equal (tab1, clicked); Assert.Equal (tab2, tv.SelectedTab); - args = new () { Position = new (12, 1), Flags = MouseFlags.Button1Clicked }; + args = new () { ScreenPosition = new (12, 1), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); @@ -233,7 +233,7 @@ public class TabViewTests (ITestOutputHelper output) Application.Begin (top); // Click the right arrow - var args = new MouseEvent { Position = new (6, 2), Flags = MouseFlags.Button1Clicked }; + var args = new MouseEvent { ScreenPosition = new (6, 2), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); @@ -253,7 +253,7 @@ public class TabViewTests (ITestOutputHelper output) ); // Click the left arrow - args = new () { Position = new (0, 2), Flags = MouseFlags.Button1Clicked }; + args = new () { ScreenPosition = new (0, 2), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); @@ -324,7 +324,7 @@ public class TabViewTests (ITestOutputHelper output) Application.Begin (top); // Click the right arrow - var args = new MouseEvent { Position = new (7, 3), Flags = MouseFlags.Button1Clicked }; + var args = new MouseEvent { ScreenPosition = new (7, 3), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); @@ -346,7 +346,7 @@ public class TabViewTests (ITestOutputHelper output) ); // Click the left arrow - args = new () { Position = new (1, 3), Flags = MouseFlags.Button1Clicked }; + args = new () { ScreenPosition = new (1, 3), Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); diff --git a/UnitTests/Views/TableViewTests.cs b/UnitTests/Views/TableViewTests.cs index ce911c8fc..350b93706 100644 --- a/UnitTests/Views/TableViewTests.cs +++ b/UnitTests/Views/TableViewTests.cs @@ -2568,6 +2568,7 @@ A B C [SetupFakeDriver] public void TestTableViewCheckboxes_ByObject () { + Assert.Equal(ConfigurationManager.ConfigLocations.DefaultOnly, ConfigurationManager.Locations); TableView tv = GetPetTable (out EnumerableTableSource source); tv.LayoutSubviews (); IReadOnlyCollection pets = source.Data; diff --git a/UnitTests/Views/TextFieldTests.cs b/UnitTests/Views/TextFieldTests.cs index 9be4e42be..8220d949a 100644 --- a/UnitTests/Views/TextFieldTests.cs +++ b/UnitTests/Views/TextFieldTests.cs @@ -777,7 +777,7 @@ public class TextFieldTests (ITestOutputHelper output) } [Fact] - public void Accept_Command_Fires_Accept () + public void Accepted_Command_Fires_Accept () { var view = new TextField (); @@ -794,7 +794,7 @@ public class TextFieldTests (ITestOutputHelper output) [Theory] [InlineData (false, 1)] [InlineData (true, 0)] - public void Accept_Handler_Handled_Prevents_Default_Button_Accept (bool handleAccept, int expectedButtonAccepts) + public void Accepted_Handler_Handled_Prevents_Default_Button_Accept (bool handleAccept, int expectedButtonAccepts) { var superView = new Window () { @@ -846,7 +846,7 @@ public class TextFieldTests (ITestOutputHelper output) } [Fact] - public void Accept_No_Handler_Enables_Default_Button_Accept () + public void Accepted_No_Handler_Enables_Default_Button_Accept () { var superView = new Window () { @@ -887,7 +887,7 @@ public class TextFieldTests (ITestOutputHelper output) } [Fact] - public void Accept_Cancel_Event_HandlesCommand () + public void Accepted_Cancel_Event_HandlesCommand () { //var super = new View (); var view = new TextField (); diff --git a/UnitTests/Views/TextViewTests.cs b/UnitTests/Views/TextViewTests.cs index d640c59e0..f9d740f1c 100644 --- a/UnitTests/Views/TextViewTests.cs +++ b/UnitTests/Views/TextViewTests.cs @@ -5338,7 +5338,7 @@ This is the second line. tv.AllowsReturn = false; Assert.Equal (Point.Empty, tv.CursorPosition); Assert.False (tv.Selecting); - Assert.True (tv.NewKeyDownEvent (Key.Enter)); + Assert.False (tv.NewKeyDownEvent (Key.Enter)); // Accepted event not handled Assert.Equal ($"This is the second line.{Environment.NewLine}This is the third ", tv.Text); Assert.Equal (Point.Empty, tv.CursorPosition); Assert.Equal (0, tv.SelectedLength); @@ -8476,28 +8476,28 @@ line. [Theory] [InlineData (false, 1)] - [InlineData (true, 0)] - public void Accept_Command_Fires_Accept_Based_On_AllowsReturn (bool allowsReturn, int expectedAcceptEvents) + [InlineData (true, 1)] + public void Accepted_Command_Raises_Accepted_Regardles_Of_AllowsReturn (bool allowsReturn, int expectedAcceptEvents) { var view = new TextView () { AllowsReturn = allowsReturn, }; - int acceptEvents = 0; + int acceptedEvents = 0; view.Accepted += Accept; view.InvokeCommand (Command.Accept); - Assert.Equal (expectedAcceptEvents, acceptEvents); + Assert.Equal (expectedAcceptEvents, acceptedEvents); return; - void Accept (object sender, HandledEventArgs e) { acceptEvents++; } + void Accept (object sender, HandledEventArgs e) { acceptedEvents++; } } [Theory] [InlineData (false, 1)] [InlineData (true, 0)] - public void Enter_Key_Fires_Accept_BasedOn_AllowsReturn (bool allowsReturn, int expectedAccepts) + public void Enter_Key_Fires_Accepted_BasedOn_AllowsReturn (bool allowsReturn, int expectedAccepts) { var view = new TextView () { @@ -8517,7 +8517,7 @@ line. [Theory] [InlineData (false, 1)] [InlineData (true, 0)] - public void Enter_Key_Fires_Accept_BasedOn_Multiline (bool multiline, int expectedAccepts) + public void Enter_Key_Fires_Accepted_BasedOn_Multiline (bool multiline, int expectedAccepts) { var view = new TextView () { @@ -8539,7 +8539,7 @@ line. [InlineData (false, true, 1, 0)] [InlineData (true, false, 0, 0)] [InlineData (true, true, 0, 0)] - public void Accept_Event_Handled_Prevents_Default_Button_Accept (bool multiline, bool handleAccept, int expectedAccepts, int expectedButtonAccepts) + public void Accepted_Event_Handled_Prevents_Default_Button_Accept (bool multiline, bool handleAccept, int expectedAccepts, int expectedButtonAccepts) { var superView = new Window (); var tv = new TextView () @@ -8588,7 +8588,7 @@ line. [Theory] [InlineData (true, 0)] [InlineData (false, 1)] - public void Accept_No_Handler_Enables_Default_Button_Accept (bool multiline, int expectedButtonAccept) + public void Accepted_No_Handler_Enables_Default_Button_Accept (bool multiline, int expectedButtonAccept) { var superView = new Window (); var tv = new TextView () diff --git a/UnitTests/Views/ToplevelTests.cs b/UnitTests/Views/ToplevelTests.cs index 305c1a00b..3590cd3d7 100644 --- a/UnitTests/Views/ToplevelTests.cs +++ b/UnitTests/Views/ToplevelTests.cs @@ -440,7 +440,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Assert.Null (Application.MouseGrabView); // Grab the mouse - Application.OnMouseEvent (new () { Position = new (3, 2), Flags = MouseFlags.Button1Pressed }); + Application.OnMouseEvent (new () { ScreenPosition = new (3, 2), Flags = MouseFlags.Button1Pressed }); Assert.Equal (Application.Top!.Border, Application.MouseGrabView); Assert.Equal (new (2, 2, 10, 3), Application.Top.Frame); @@ -453,7 +453,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (2, 2), Flags = MouseFlags.Button1Pressed + ScreenPosition = new (2, 2), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); @@ -476,7 +476,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (2, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (2, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); @@ -496,7 +496,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Assert.Equal (Application.Top!.Border, Application.MouseGrabView); // Ungrab the mouse - Application.OnMouseEvent (new () { Position = new (2, 1), Flags = MouseFlags.Button1Released }); + Application.OnMouseEvent (new () { ScreenPosition = new (2, 1), Flags = MouseFlags.Button1Released }); Application.Refresh (); Assert.Null (Application.MouseGrabView); @@ -548,7 +548,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (win.Frame.X, win.Frame.Y), Flags = MouseFlags.Button1Pressed + ScreenPosition = new (win.Frame.X, win.Frame.Y), Flags = MouseFlags.Button1Pressed }); Assert.Equal (win.Border, Application.MouseGrabView); @@ -564,7 +564,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = + ScreenPosition = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); @@ -589,7 +589,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = + ScreenPosition = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); @@ -614,7 +614,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (win.Frame.X + movex, win.Frame.Y + movey), + ScreenPosition = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = MouseFlags.Button1Released }); @@ -743,11 +743,11 @@ public partial class ToplevelTests (ITestOutputHelper output) Assert.Equal (new (0, 0, 200, 100), scrollView.Subviews [0].Frame); Assert.Equal (new (3, 3, 194, 94), win.Frame); - Application.OnMouseEvent (new () { Position = new (6, 6), Flags = MouseFlags.Button1Pressed }); + Application.OnMouseEvent (new () { ScreenPosition = new (6, 6), Flags = MouseFlags.Button1Pressed }); Assert.Equal (win.Border, Application.MouseGrabView); Assert.Equal (new (3, 3, 194, 94), win.Frame); - Application.OnMouseEvent (new () { Position = new (9, 9), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); + Application.OnMouseEvent (new () { ScreenPosition = new (9, 9), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Assert.Equal (win.Border, Application.MouseGrabView); top.SetNeedsLayout (); top.LayoutSubviews (); @@ -757,7 +757,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (5, 5), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (5, 5), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Assert.Equal (win.Border, Application.MouseGrabView); top.SetNeedsLayout (); @@ -765,12 +765,12 @@ public partial class ToplevelTests (ITestOutputHelper output) Assert.Equal (new (2, 2, 195, 95), win.Frame); Application.Refresh (); - Application.OnMouseEvent (new () { Position = new (5, 5), Flags = MouseFlags.Button1Released }); + Application.OnMouseEvent (new () { ScreenPosition = new (5, 5), Flags = MouseFlags.Button1Released }); // ScrollView always grab the mouse when the container's subview OnMouseEnter don't want grab the mouse Assert.Equal (scrollView, Application.MouseGrabView); - Application.OnMouseEvent (new () { Position = new (4, 4), Flags = MouseFlags.ReportMousePosition }); + Application.OnMouseEvent (new () { ScreenPosition = new (4, 4), Flags = MouseFlags.ReportMousePosition }); Assert.Equal (scrollView, Application.MouseGrabView); top.Dispose (); } @@ -790,14 +790,14 @@ public partial class ToplevelTests (ITestOutputHelper output) Assert.Null (Application.MouseGrabView); - Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Pressed }); + Application.OnMouseEvent (new () { ScreenPosition = new (0, 0), Flags = MouseFlags.Button1Pressed }); Assert.Equal (window.Border, Application.MouseGrabView); Application.OnMouseEvent ( new () { - Position = new (-11, -4), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (-11, -4), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); @@ -810,7 +810,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); @@ -823,7 +823,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); @@ -833,7 +833,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (18, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (18, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); @@ -844,7 +844,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (19, 2), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (19, 2), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); @@ -882,7 +882,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Assert.Null (Application.MouseGrabView); Assert.Equal (new (0, 0, 10, 3), window.Frame); - Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Pressed }); + Application.OnMouseEvent (new () { ScreenPosition = new (0, 0), Flags = MouseFlags.Button1Pressed }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -893,7 +893,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Application.OnMouseEvent ( new () { - Position = new (1, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition + ScreenPosition = new (1, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); firstIteration = false; @@ -984,7 +984,7 @@ public partial class ToplevelTests (ITestOutputHelper output) Assert.Equal (new (2, 1, 15, 10), testWindow.Frame); - Application.OnMouseEvent (new () { Position = new (5, 2), Flags = MouseFlags.Button1Clicked }); + Application.OnMouseEvent (new () { ScreenPosition = new (5, 2), Flags = MouseFlags.Button1Clicked }); Application.Refresh ();