|
@@ -1,15 +1,10 @@
|
|
|
using Xunit.Abstractions;
|
|
|
-using static System.Net.Mime.MediaTypeNames;
|
|
|
|
|
|
namespace Terminal.Gui.ViewsTests;
|
|
|
|
|
|
-public class ToplevelTests
|
|
|
+public class ToplevelTests (ITestOutputHelper output)
|
|
|
{
|
|
|
- private readonly ITestOutputHelper _output;
|
|
|
- public ToplevelTests (ITestOutputHelper output) { _output = output; }
|
|
|
-
|
|
|
[Fact]
|
|
|
- [AutoInitShutdown]
|
|
|
public void Constructor_Default ()
|
|
|
{
|
|
|
var top = new Toplevel ();
|
|
@@ -227,7 +222,7 @@ public class ToplevelTests
|
|
|
top.OnClosed (top);
|
|
|
Assert.Equal ("Closed", eventInvoked);
|
|
|
top.Closing += (s, e) => eventInvoked = "Closing";
|
|
|
- top.OnClosing (new ToplevelClosingEventArgs (top));
|
|
|
+ top.OnClosing (new (top));
|
|
|
Assert.Equal ("Closing", eventInvoked);
|
|
|
top.AllChildClosed += (s, e) => eventInvoked = "AllChildClosed";
|
|
|
top.OnAllChildClosed ();
|
|
@@ -351,7 +346,7 @@ public class ToplevelTests
|
|
|
|
|
|
top.Remove (win);
|
|
|
|
|
|
- win = new Window { Width = 60, Height = 15 };
|
|
|
+ win = new () { Width = 60, Height = 15 };
|
|
|
top.Add (win);
|
|
|
|
|
|
// Application.Top without menu and status bar.
|
|
@@ -379,16 +374,20 @@ public class ToplevelTests
|
|
|
Assert.NotNull (sb);
|
|
|
|
|
|
top.PositionToplevels ();
|
|
|
- Assert.Equal (new Rectangle (0, 1, 60, 15), win.Frame);
|
|
|
+ Assert.Equal (new (0, 1, 60, 15), win.Frame);
|
|
|
|
|
|
//Assert.Null (Toplevel._dragPosition);
|
|
|
- win.NewMouseEvent (new MouseEvent { Position = new (6, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
+ win.NewMouseEvent (new () { Position = new (6, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
+
|
|
|
// Assert.Equal (new Point (6, 0), Toplevel._dragPosition);
|
|
|
- win.NewMouseEvent (new MouseEvent { Position = new (6, 0), Flags = MouseFlags.Button1Released });
|
|
|
+ win.NewMouseEvent (new () { Position = new (6, 0), Flags = MouseFlags.Button1Released });
|
|
|
+
|
|
|
//Assert.Null (Toplevel._dragPosition);
|
|
|
win.CanFocus = false;
|
|
|
- win.NewMouseEvent (new MouseEvent { Position = new (6, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
+ win.NewMouseEvent (new () { Position = new (6, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
+
|
|
|
//Assert.Null (Toplevel._dragPosition);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -465,8 +464,8 @@ public class ToplevelTests
|
|
|
Application.Begin (top);
|
|
|
top.Running = true;
|
|
|
|
|
|
- Assert.Equal (new Rectangle (0, 0, 40, 25), win1.Frame);
|
|
|
- Assert.Equal (new Rectangle (41, 0, 40, 25), win2.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 40, 25), win1.Frame);
|
|
|
+ Assert.Equal (new (41, 0, 40, 25), win2.Frame);
|
|
|
Assert.Equal (win1, top.Focused);
|
|
|
Assert.Equal (tf1W1, top.MostFocused);
|
|
|
|
|
@@ -540,7 +539,7 @@ public class ToplevelTests
|
|
|
Assert.True (Application.OnKeyDown (Key.End.WithCtrl));
|
|
|
Assert.Equal (win1, top.Focused);
|
|
|
Assert.Equal (tvW1, top.MostFocused);
|
|
|
- Assert.Equal (new Point (16, 1), tvW1.CursorPosition);
|
|
|
+ Assert.Equal (new (16, 1), tvW1.CursorPosition);
|
|
|
#if UNIX_KEY_BINDINGS
|
|
|
Assert.True (Application.OnKeyDown (new (Key.F.WithCtrl)));
|
|
|
#else
|
|
@@ -554,6 +553,7 @@ public class ToplevelTests
|
|
|
#else
|
|
|
Assert.True (Application.OnKeyDown (Key.F5));
|
|
|
#endif
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -600,7 +600,7 @@ public class ToplevelTests
|
|
|
Assert.True (top.IsCurrentTop);
|
|
|
Assert.Equal (top, Application.OverlappedTop);
|
|
|
Application.Begin (win1);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 40, 25), win1.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 40, 25), win1.Frame);
|
|
|
Assert.NotEqual (top, Application.Current);
|
|
|
Assert.False (top.IsCurrentTop);
|
|
|
Assert.Equal (win1, Application.Current);
|
|
@@ -612,7 +612,7 @@ public class ToplevelTests
|
|
|
Assert.True (win1.IsOverlapped);
|
|
|
Assert.Single (Application.OverlappedChildren);
|
|
|
Application.Begin (win2);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 40, 25), win2.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 40, 25), win2.Frame);
|
|
|
Assert.NotEqual (top, Application.Current);
|
|
|
Assert.False (top.IsCurrentTop);
|
|
|
Assert.Equal (win2, Application.Current);
|
|
@@ -728,7 +728,7 @@ public class ToplevelTests
|
|
|
);
|
|
|
Assert.Equal (win1, Application.OverlappedChildren [0]);
|
|
|
Assert.Equal (tvW1, win1.MostFocused);
|
|
|
- Assert.Equal (new Point (16, 1), tvW1.CursorPosition);
|
|
|
+ Assert.Equal (new (16, 1), tvW1.CursorPosition);
|
|
|
#if UNIX_KEY_BINDINGS
|
|
|
Assert.True (Application.OverlappedChildren [0].ProcessKeyDown (new (Key.F.WithCtrl)));
|
|
|
#else
|
|
@@ -742,6 +742,7 @@ public class ToplevelTests
|
|
|
#endif
|
|
|
win2.Dispose ();
|
|
|
win1.Dispose ();
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -842,6 +843,7 @@ public class ToplevelTests
|
|
|
Assert.Equal (KeyCode.PageDown | KeyCode.CtrlMask, Application.AlternateForwardKey);
|
|
|
Assert.Equal (KeyCode.PageUp | KeyCode.CtrlMask, Application.AlternateBackwardKey);
|
|
|
Assert.Equal (KeyCode.Q | KeyCode.CtrlMask, Application.QuitKey);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -863,7 +865,7 @@ public class ToplevelTests
|
|
|
((FakeDriver)Application.Driver).SetBufferSize (15, 7);
|
|
|
|
|
|
// Don't use MessageBox here; it's too complicated for this unit test; just use Window
|
|
|
- testWindow = new Window
|
|
|
+ testWindow = new ()
|
|
|
{
|
|
|
Text = "Hello",
|
|
|
X = 2,
|
|
@@ -876,7 +878,7 @@ public class ToplevelTests
|
|
|
}
|
|
|
else if (iterations == 1)
|
|
|
{
|
|
|
- Assert.Equal(new Point(2,2), Application.Current.Frame.Location);
|
|
|
+ Assert.Equal (new (2, 2), Application.Current.Frame.Location);
|
|
|
}
|
|
|
else if (iterations == 2)
|
|
|
{
|
|
@@ -886,27 +888,28 @@ public class ToplevelTests
|
|
|
Application.OnMouseEvent (new () { Position = new (3, 2), Flags = MouseFlags.Button1Pressed });
|
|
|
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
- Assert.Equal (new Rectangle (2, 2, 10, 3), Application.Current.Frame);
|
|
|
+ Assert.Equal (new (2, 2, 10, 3), Application.Current.Frame);
|
|
|
}
|
|
|
else if (iterations == 3)
|
|
|
{
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
|
|
|
// Drag to left
|
|
|
- Application.OnMouseEvent (new ()
|
|
|
- {
|
|
|
- Position = new (2, 2), Flags = MouseFlags.Button1Pressed
|
|
|
- | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (2, 2), Flags = MouseFlags.Button1Pressed
|
|
|
+ | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
- Assert.Equal (new Rectangle (1, 2, 10, 3), Application.Current.Frame);
|
|
|
+ Assert.Equal (new (1, 2, 10, 3), Application.Current.Frame);
|
|
|
}
|
|
|
else if (iterations == 4)
|
|
|
{
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
- Assert.Equal (new Point (1, 2), Application.Current.Frame.Location);
|
|
|
+ Assert.Equal (new (1, 2), Application.Current.Frame.Location);
|
|
|
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
}
|
|
@@ -915,23 +918,23 @@ public class ToplevelTests
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
|
|
|
// Drag up
|
|
|
- Application.OnMouseEvent (new ()
|
|
|
- {
|
|
|
- Position = new (2, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (2, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
- Assert.Equal (new Rectangle (1, 1, 10, 3), Application.Current.Frame);
|
|
|
+ Assert.Equal (new (1, 1, 10, 3), Application.Current.Frame);
|
|
|
}
|
|
|
else if (iterations == 6)
|
|
|
{
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
- Assert.Equal (new Point (1, 1), Application.Current.Frame.Location);
|
|
|
-
|
|
|
+ Assert.Equal (new (1, 1), Application.Current.Frame.Location);
|
|
|
|
|
|
Assert.Equal (Application.Current.Border, Application.MouseGrabView);
|
|
|
- Assert.Equal (new Rectangle (1, 1, 10, 3), Application.Current.Frame);
|
|
|
+ Assert.Equal (new (1, 1, 10, 3), Application.Current.Frame);
|
|
|
}
|
|
|
else if (iterations == 7)
|
|
|
{
|
|
@@ -954,6 +957,7 @@ public class ToplevelTests
|
|
|
};
|
|
|
|
|
|
Application.Run (top);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -986,10 +990,11 @@ public class ToplevelTests
|
|
|
Assert.Null (Application.MouseGrabView);
|
|
|
|
|
|
// Grab the mouse
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (win.Frame.X, win.Frame.Y), Flags = MouseFlags.Button1Pressed
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (win.Frame.X, win.Frame.Y), Flags = MouseFlags.Button1Pressed
|
|
|
+ });
|
|
|
|
|
|
Assert.Equal (win.Border, Application.MouseGrabView);
|
|
|
}
|
|
@@ -1001,11 +1006,13 @@ public class ToplevelTests
|
|
|
movex = 1;
|
|
|
movey = 0;
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = MouseFlags.Button1Pressed
|
|
|
- | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags =
|
|
|
+ MouseFlags.Button1Pressed
|
|
|
+ | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
Assert.Equal (win.Border, Application.MouseGrabView);
|
|
|
}
|
|
@@ -1024,11 +1031,13 @@ public class ToplevelTests
|
|
|
movex = 0;
|
|
|
movey = -1;
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = MouseFlags.Button1Pressed
|
|
|
- | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags =
|
|
|
+ MouseFlags.Button1Pressed
|
|
|
+ | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
Assert.Equal (win.Border, Application.MouseGrabView);
|
|
|
}
|
|
@@ -1047,10 +1056,12 @@ public class ToplevelTests
|
|
|
movex = 0;
|
|
|
movey = 0;
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (win.Frame.X + movex, win.Frame.Y + movey), Flags = MouseFlags.Button1Released
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (win.Frame.X + movex, win.Frame.Y + movey),
|
|
|
+ Flags = MouseFlags.Button1Released
|
|
|
+ });
|
|
|
|
|
|
Assert.Null (Application.MouseGrabView);
|
|
|
}
|
|
@@ -1061,14 +1072,16 @@ public class ToplevelTests
|
|
|
};
|
|
|
|
|
|
Application.Run (top);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
|
- [AutoInitShutdown]
|
|
|
+ [SetupFakeDriver]
|
|
|
public void GetLocationThatFits_With_Border_Null_Not_Throws ()
|
|
|
{
|
|
|
var top = new Toplevel ();
|
|
|
- Application.Begin (top);
|
|
|
+ top.BeginInit ();
|
|
|
+ top.EndInit ();
|
|
|
|
|
|
Exception exception = Record.Exception (() => ((FakeDriver)Application.Driver).SetBufferSize (0, 10));
|
|
|
Assert.Null (exception);
|
|
@@ -1100,6 +1113,7 @@ public class ToplevelTests
|
|
|
|
|
|
// From the v view
|
|
|
Assert.True (isEnter);
|
|
|
+
|
|
|
// The Leave event is only raised on the End method
|
|
|
// and the top is still running
|
|
|
Assert.False (isLeave);
|
|
@@ -1120,14 +1134,17 @@ public class ToplevelTests
|
|
|
isEnter = false;
|
|
|
|
|
|
Application.End (rsDialog);
|
|
|
+ d.Dispose ();
|
|
|
|
|
|
// From the v view
|
|
|
Assert.True (isEnter);
|
|
|
+
|
|
|
// From the dv view
|
|
|
Assert.True (isLeave);
|
|
|
Assert.True (v.HasFocus);
|
|
|
|
|
|
Application.End (rsTop);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1214,6 +1231,7 @@ public class ToplevelTests
|
|
|
Assert.True (isEnterDiag);
|
|
|
Assert.False (isLeaveDiag);
|
|
|
Assert.False (isEnterTop);
|
|
|
+
|
|
|
// The Leave event is only raised on the End method
|
|
|
// and the top is still running
|
|
|
Assert.False (isLeaveTop);
|
|
@@ -1221,10 +1239,12 @@ public class ToplevelTests
|
|
|
isEnterDiag = false;
|
|
|
isLeaveTop = false;
|
|
|
Application.End (rsDiag);
|
|
|
+ diag.Dispose ();
|
|
|
|
|
|
Assert.False (isEnterDiag);
|
|
|
Assert.True (isLeaveDiag);
|
|
|
Assert.True (isEnterTop);
|
|
|
+
|
|
|
// Leave event on top cannot be raised
|
|
|
// because Current is null on the End method
|
|
|
Assert.False (isLeaveTop);
|
|
@@ -1236,6 +1256,7 @@ public class ToplevelTests
|
|
|
Assert.Equal (2, steps [1]);
|
|
|
Assert.Equal (3, steps [2]);
|
|
|
Assert.Equal (4, steps [^1]);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1259,6 +1280,7 @@ public class ToplevelTests
|
|
|
Application.PositionCursor (top);
|
|
|
Application.Driver.GetCursorVisibility (out cursor);
|
|
|
Assert.Equal (CursorVisibility.Invisible, cursor);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1270,6 +1292,7 @@ public class ToplevelTests
|
|
|
|
|
|
Application.Begin (top);
|
|
|
Assert.True (top.IsLoaded);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1278,19 +1301,19 @@ public class ToplevelTests
|
|
|
{
|
|
|
Toplevel top = new ();
|
|
|
var subTop = new Toplevel ();
|
|
|
- var view = new View { Frame = new Rectangle (0, 0, 20, 10) };
|
|
|
+ var view = new View { Frame = new (0, 0, 20, 10) };
|
|
|
subTop.Add (view);
|
|
|
top.Add (subTop);
|
|
|
|
|
|
Assert.False (top.IsLoaded);
|
|
|
Assert.False (subTop.IsLoaded);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 10), view.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 20, 10), view.Frame);
|
|
|
|
|
|
view.LayoutStarted += view_LayoutStarted;
|
|
|
|
|
|
void view_LayoutStarted (object sender, LayoutEventArgs e)
|
|
|
{
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 10), view._needsDisplayRect);
|
|
|
+ Assert.Equal (new (0, 0, 20, 10), view._needsDisplayRect);
|
|
|
view.LayoutStarted -= view_LayoutStarted;
|
|
|
}
|
|
|
|
|
@@ -1298,7 +1321,7 @@ public class ToplevelTests
|
|
|
|
|
|
Assert.True (top.IsLoaded);
|
|
|
Assert.True (subTop.IsLoaded);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 10), view.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 20, 10), view.Frame);
|
|
|
|
|
|
view.Frame = new (1, 3, 10, 5);
|
|
|
Assert.Equal (new (1, 3, 10, 5), view.Frame);
|
|
@@ -1308,6 +1331,7 @@ public class ToplevelTests
|
|
|
view.Frame = new (1, 3, 10, 5);
|
|
|
Assert.Equal (new (1, 3, 10, 5), view.Frame);
|
|
|
Assert.Equal (new (0, 0, 10, 5), view._needsDisplayRect);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1319,7 +1343,7 @@ public class ToplevelTests
|
|
|
X = 3,
|
|
|
Y = 3,
|
|
|
Width = 40,
|
|
|
- Height = 16,
|
|
|
+ Height = 16
|
|
|
};
|
|
|
scrollView.SetContentSize (new (200, 100));
|
|
|
var win = new Window { X = 3, Y = 3, Width = Dim.Fill (3), Height = Dim.Fill (3), Arrangement = ViewArrangement.Movable };
|
|
@@ -1333,34 +1357,36 @@ public class ToplevelTests
|
|
|
Assert.Equal (new (0, 0, 200, 100), scrollView.Subviews [0].Frame);
|
|
|
Assert.Equal (new (3, 3, 194, 94), win.Frame);
|
|
|
|
|
|
-
|
|
|
- Application.OnMouseEvent (new MouseEvent { Position = new (6, 6), Flags = MouseFlags.Button1Pressed });
|
|
|
+ Application.OnMouseEvent (new () { Position = new (6, 6), Flags = MouseFlags.Button1Pressed });
|
|
|
Assert.Equal (win.Border, Application.MouseGrabView);
|
|
|
Assert.Equal (new (3, 3, 194, 94), win.Frame);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent { Position = new (9, 9), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition });
|
|
|
+ Application.OnMouseEvent (new () { Position = new (9, 9), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition });
|
|
|
Assert.Equal (win.Border, Application.MouseGrabView);
|
|
|
top.SetNeedsLayout ();
|
|
|
top.LayoutSubviews ();
|
|
|
- Assert.Equal (new Rectangle (6, 6, 191, 91), win.Frame);
|
|
|
+ Assert.Equal (new (6, 6, 191, 91), win.Frame);
|
|
|
Application.Refresh ();
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (5, 5), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (5, 5), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
Assert.Equal (win.Border, Application.MouseGrabView);
|
|
|
top.SetNeedsLayout ();
|
|
|
top.LayoutSubviews ();
|
|
|
- Assert.Equal (new Rectangle (2, 2, 195, 95), win.Frame);
|
|
|
+ Assert.Equal (new (2, 2, 195, 95), win.Frame);
|
|
|
Application.Refresh ();
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent { Position = new (5, 5), Flags = MouseFlags.Button1Released });
|
|
|
+ Application.OnMouseEvent (new () { Position = 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 MouseEvent { Position = new (4, 4), Flags = MouseFlags.ReportMousePosition });
|
|
|
+ Application.OnMouseEvent (new () { Position = new (4, 4), Flags = MouseFlags.ReportMousePosition });
|
|
|
Assert.Equal (scrollView, Application.MouseGrabView);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1368,75 +1394,81 @@ public class ToplevelTests
|
|
|
public void Window_Viewport_Bigger_Than_Driver_Cols_And_Rows_Allow_Drag_Beyond_Left_Right_And_Bottom ()
|
|
|
{
|
|
|
Toplevel top = new ();
|
|
|
- var window = new Window { Width = 20, Height = 3, Arrangement = ViewArrangement.Movable};
|
|
|
+ var window = new Window { Width = 20, Height = 3, Arrangement = ViewArrangement.Movable };
|
|
|
RunState rsTop = Application.Begin (top);
|
|
|
((FakeDriver)Application.Driver).SetBufferSize (40, 10);
|
|
|
RunState rsWindow = Application.Begin (window);
|
|
|
Application.Refresh ();
|
|
|
- Assert.Equal (new Rectangle (0, 0, 40, 10), top.Frame);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 3), window.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 40, 10), top.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 20, 3), window.Frame);
|
|
|
|
|
|
Assert.Null (Application.MouseGrabView);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent { Position = new (0, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
+ Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
|
|
|
Assert.Equal (window.Border, Application.MouseGrabView);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (-11, -4), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (-11, -4), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
Application.Refresh ();
|
|
|
- Assert.Equal (new Rectangle (0, 0, 40, 10), top.Frame);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 3), window.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 40, 10), top.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 20, 3), window.Frame);
|
|
|
|
|
|
// Changes Top size to same size as Dialog more menu and scroll bar
|
|
|
((FakeDriver)Application.Driver).SetBufferSize (20, 3);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
Application.Refresh ();
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 3), top.Frame);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 3), window.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 20, 3), top.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 20, 3), window.Frame);
|
|
|
|
|
|
// Changes Top size smaller than Dialog size
|
|
|
((FakeDriver)Application.Driver).SetBufferSize (19, 2);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (-1, -1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
Application.Refresh ();
|
|
|
- Assert.Equal (new Rectangle (0, 0, 19, 2), top.Frame);
|
|
|
- Assert.Equal (new Rectangle (-1, 0, 20, 3), window.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 19, 2), top.Frame);
|
|
|
+ Assert.Equal (new (-1, 0, 20, 3), window.Frame);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (18, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (18, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
Application.Refresh ();
|
|
|
- Assert.Equal (new Rectangle (0, 0, 19, 2), top.Frame);
|
|
|
- Assert.Equal (new Rectangle (18, 1, 20, 3), window.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 19, 2), top.Frame);
|
|
|
+ Assert.Equal (new (18, 1, 20, 3), window.Frame);
|
|
|
|
|
|
// On a real app we can't go beyond the SuperView bounds
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (19, 2), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (19, 2), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
Application.Refresh ();
|
|
|
- Assert.Equal (new Rectangle (0, 0, 19, 2), top.Frame);
|
|
|
- Assert.Equal (new Rectangle (19, 2, 20, 3), window.Frame);
|
|
|
- TestHelpers.AssertDriverContentsWithFrameAre (@"", _output);
|
|
|
+ Assert.Equal (new (0, 0, 19, 2), top.Frame);
|
|
|
+ Assert.Equal (new (19, 2, 20, 3), window.Frame);
|
|
|
+ TestHelpers.AssertDriverContentsWithFrameAre (@"", output);
|
|
|
|
|
|
Application.End (rsWindow);
|
|
|
Application.End (rsTop);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1462,27 +1494,29 @@ public class ToplevelTests
|
|
|
RunState rs = Application.Begin (window);
|
|
|
|
|
|
Assert.Null (Application.MouseGrabView);
|
|
|
- Assert.Equal (new Rectangle (0, 0, 10, 3), window.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 10, 3), window.Frame);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent { Position = new (0, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
+ Application.OnMouseEvent (new () { Position = new (0, 0), Flags = MouseFlags.Button1Pressed });
|
|
|
|
|
|
var firstIteration = false;
|
|
|
Application.RunIteration (ref rs, ref firstIteration);
|
|
|
Assert.Equal (window.Border, Application.MouseGrabView);
|
|
|
|
|
|
- Assert.Equal (new Rectangle (0, 0, 10, 3), window.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 10, 3), window.Frame);
|
|
|
|
|
|
- Application.OnMouseEvent (new MouseEvent
|
|
|
- {
|
|
|
- Position = new (1, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
- });
|
|
|
+ Application.OnMouseEvent (
|
|
|
+ new ()
|
|
|
+ {
|
|
|
+ Position = new (1, 1), Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition
|
|
|
+ });
|
|
|
|
|
|
firstIteration = false;
|
|
|
Application.RunIteration (ref rs, ref firstIteration);
|
|
|
Assert.Equal (window.Border, Application.MouseGrabView);
|
|
|
- Assert.Equal (new Rectangle (1, 1, 10, 3), window.Frame);
|
|
|
+ Assert.Equal (new (1, 1, 10, 3), window.Frame);
|
|
|
|
|
|
Application.End (rs);
|
|
|
+ window.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1494,13 +1528,14 @@ public class ToplevelTests
|
|
|
((FakeDriver)Application.Driver).SetBufferSize (20, 20);
|
|
|
|
|
|
var testWindow = new Window { X = 2, Y = 1, Width = 15, Height = 10 };
|
|
|
- Assert.Equal (new Rectangle (2, 1, 15, 10), testWindow.Frame);
|
|
|
+ Assert.Equal (new (2, 1, 15, 10), testWindow.Frame);
|
|
|
|
|
|
RunState rsTestWindow = Application.Begin (testWindow);
|
|
|
- Assert.Equal (new Rectangle (2, 1, 15, 10), testWindow.Frame);
|
|
|
+ Assert.Equal (new (2, 1, 15, 10), testWindow.Frame);
|
|
|
|
|
|
Application.End (rsTestWindow);
|
|
|
Application.End (rsTop);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
// Don't use Dialog as a Top, use a Window instead - dialog has complex layout behavior that is not needed here.
|
|
@@ -1514,50 +1549,50 @@ public class ToplevelTests
|
|
|
RunState rsTop = Application.Begin (top);
|
|
|
((FakeDriver)Application.Driver).SetBufferSize (20, 20);
|
|
|
|
|
|
- Assert.Equal (new Rectangle (0, 0, 20, 20), win.Frame);
|
|
|
+ Assert.Equal (new (0, 0, 20, 20), win.Frame);
|
|
|
|
|
|
var btnPopup = new Button { Text = "Popup" };
|
|
|
var testWindow = new Window { X = 2, Y = 1, Width = 15, Height = 10 };
|
|
|
testWindow.Add (btnPopup);
|
|
|
|
|
|
btnPopup.Accept += (s, e) =>
|
|
|
- {
|
|
|
- Rectangle viewToScreen = btnPopup.ViewportToScreen (top.Frame);
|
|
|
-
|
|
|
- var viewAddedToTop = new View
|
|
|
- {
|
|
|
- Text = "viewAddedToTop",
|
|
|
- X = 1,
|
|
|
- Y = viewToScreen.Y + 1,
|
|
|
- Width = 18,
|
|
|
- Height = 16,
|
|
|
- BorderStyle = LineStyle.Single
|
|
|
- };
|
|
|
- Assert.Equal (testWindow, Application.Current);
|
|
|
- Application.Current.DrawContentComplete += OnDrawContentComplete;
|
|
|
- top.Add (viewAddedToTop);
|
|
|
-
|
|
|
- void OnDrawContentComplete (object sender, DrawEventArgs e)
|
|
|
- {
|
|
|
- Assert.Equal (new Rectangle (1, 3, 18, 16), viewAddedToTop.Frame);
|
|
|
-
|
|
|
- Rectangle savedClip = Application.Driver.Clip;
|
|
|
- Application.Driver.Clip = top.Frame;
|
|
|
- viewAddedToTop.Draw ();
|
|
|
- top.Move (2, 15);
|
|
|
- View.Driver.AddStr ("One");
|
|
|
- top.Move (2, 16);
|
|
|
- View.Driver.AddStr ("Two");
|
|
|
- top.Move (2, 17);
|
|
|
- View.Driver.AddStr ("Three");
|
|
|
- Application.Driver.Clip = savedClip;
|
|
|
-
|
|
|
- Application.Current.DrawContentComplete -= OnDrawContentComplete;
|
|
|
- }
|
|
|
- };
|
|
|
+ {
|
|
|
+ Rectangle viewToScreen = btnPopup.ViewportToScreen (top.Frame);
|
|
|
+
|
|
|
+ var viewAddedToTop = new View
|
|
|
+ {
|
|
|
+ Text = "viewAddedToTop",
|
|
|
+ X = 1,
|
|
|
+ Y = viewToScreen.Y + 1,
|
|
|
+ Width = 18,
|
|
|
+ Height = 16,
|
|
|
+ BorderStyle = LineStyle.Single
|
|
|
+ };
|
|
|
+ Assert.Equal (testWindow, Application.Current);
|
|
|
+ Application.Current.DrawContentComplete += OnDrawContentComplete;
|
|
|
+ top.Add (viewAddedToTop);
|
|
|
+
|
|
|
+ void OnDrawContentComplete (object sender, DrawEventArgs e)
|
|
|
+ {
|
|
|
+ Assert.Equal (new (1, 3, 18, 16), viewAddedToTop.Frame);
|
|
|
+
|
|
|
+ Rectangle savedClip = Application.Driver.Clip;
|
|
|
+ Application.Driver.Clip = top.Frame;
|
|
|
+ viewAddedToTop.Draw ();
|
|
|
+ top.Move (2, 15);
|
|
|
+ View.Driver.AddStr ("One");
|
|
|
+ top.Move (2, 16);
|
|
|
+ View.Driver.AddStr ("Two");
|
|
|
+ top.Move (2, 17);
|
|
|
+ View.Driver.AddStr ("Three");
|
|
|
+ Application.Driver.Clip = savedClip;
|
|
|
+
|
|
|
+ Application.Current.DrawContentComplete -= OnDrawContentComplete;
|
|
|
+ }
|
|
|
+ };
|
|
|
RunState rsTestWindow = Application.Begin (testWindow);
|
|
|
|
|
|
- Assert.Equal (new Rectangle (2, 1, 15, 10), testWindow.Frame);
|
|
|
+ Assert.Equal (new (2, 1, 15, 10), testWindow.Frame);
|
|
|
|
|
|
Application.OnMouseEvent (new () { Position = new (5, 2), Flags = MouseFlags.Button1Clicked });
|
|
|
Application.Top.Draw ();
|
|
@@ -1587,11 +1622,12 @@ public class ToplevelTests
|
|
|
││Three ││
|
|
|
│└────────────────┘│
|
|
|
└──────────────────┘",
|
|
|
- _output
|
|
|
+ output
|
|
|
);
|
|
|
|
|
|
Application.End (rsTestWindow);
|
|
|
Application.End (rsTop);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
private void OnDrawContentComplete (object sender, DrawEventArgs e) { throw new NotImplementedException (); }
|
|
@@ -1604,7 +1640,7 @@ public class ToplevelTests
|
|
|
{
|
|
|
Menus =
|
|
|
[
|
|
|
- new MenuBarItem ("Child", new MenuItem [] { new ("_Create Child", "", null) })
|
|
|
+ new ("Child", new MenuItem [] { new ("_Create Child", "", null) })
|
|
|
]
|
|
|
};
|
|
|
var topChild = new Toplevel ();
|
|
@@ -1615,6 +1651,7 @@ public class ToplevelTests
|
|
|
|
|
|
Exception exception = Record.Exception (() => topChild.NewKeyDownEvent (KeyCode.AltMask));
|
|
|
Assert.Null (exception);
|
|
|
+ top.Dispose ();
|
|
|
}
|
|
|
|
|
|
[Fact]
|