mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-01-02 01:03:29 +01:00
Fixed ScrollBarViewTests
This commit is contained in:
@@ -3,11 +3,8 @@ using Xunit.Abstractions;
|
||||
|
||||
namespace Terminal.Gui.ViewsTests;
|
||||
|
||||
public class RuneCellTests
|
||||
public class RuneCellTests (ITestOutputHelper output)
|
||||
{
|
||||
private readonly ITestOutputHelper _output;
|
||||
public RuneCellTests (ITestOutputHelper output) { _output = output; }
|
||||
|
||||
[Fact]
|
||||
public void Constructor_Defaults ()
|
||||
{
|
||||
@@ -24,13 +21,13 @@ public class RuneCellTests
|
||||
|
||||
var rc2 = new RuneCell
|
||||
{
|
||||
Rune = new Rune ('a'), ColorScheme = new ColorScheme { Normal = new Attribute (Color.Red) }
|
||||
Rune = new ('a'), ColorScheme = new() { Normal = new (Color.Red) }
|
||||
};
|
||||
Assert.False (rc1.Equals (rc2));
|
||||
Assert.False (rc2.Equals (rc1));
|
||||
|
||||
rc1.Rune = new Rune ('a');
|
||||
rc1.ColorScheme = new ColorScheme ();
|
||||
rc1.Rune = new ('a');
|
||||
rc1.ColorScheme = new ();
|
||||
Assert.Equal (rc1.Rune, rc2.Rune);
|
||||
Assert.False (rc1.Equals (rc2));
|
||||
Assert.False (rc2.Equals (rc1));
|
||||
@@ -44,10 +41,10 @@ public class RuneCellTests
|
||||
Assert.True (rc1.Equals (rc2));
|
||||
Assert.True (rc2.Equals (rc1));
|
||||
|
||||
rc1.Rune = new Rune ('a');
|
||||
rc1.ColorScheme = new ColorScheme ();
|
||||
rc2.Rune = new Rune ('a');
|
||||
rc2.ColorScheme = new ColorScheme ();
|
||||
rc1.Rune = new ('a');
|
||||
rc1.ColorScheme = new ();
|
||||
rc2.Rune = new ('a');
|
||||
rc2.ColorScheme = new ();
|
||||
Assert.True (rc1.Equals (rc2));
|
||||
Assert.True (rc2.Equals (rc1));
|
||||
}
|
||||
@@ -64,10 +61,10 @@ public class RuneCellTests
|
||||
|
||||
foreach (Rune rune in csName.EnumerateRunes ())
|
||||
{
|
||||
runeCells.Add (new RuneCell { Rune = rune, ColorScheme = color.Value });
|
||||
runeCells.Add (new() { Rune = rune, ColorScheme = color.Value });
|
||||
}
|
||||
|
||||
runeCells.Add (new RuneCell { Rune = (Rune)'\n', ColorScheme = color.Value });
|
||||
runeCells.Add (new() { Rune = (Rune)'\n', ColorScheme = color.Value });
|
||||
}
|
||||
|
||||
TextView tv = CreateTextView ();
|
||||
@@ -83,7 +80,7 @@ Base
|
||||
Dialog
|
||||
Menu
|
||||
Error ";
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
|
||||
|
||||
Attribute [] attributes =
|
||||
{
|
||||
@@ -113,16 +110,16 @@ Error ";
|
||||
|
||||
tv.WordWrap = true;
|
||||
Application.Refresh ();
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
|
||||
TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
|
||||
|
||||
tv.CursorPosition = new Point (6, 2);
|
||||
tv.CursorPosition = new (6, 2);
|
||||
tv.SelectionStartColumn = 0;
|
||||
tv.SelectionStartRow = 0;
|
||||
Assert.Equal ($"TopLevel{Environment.NewLine}Base{Environment.NewLine}Dialog", tv.SelectedText);
|
||||
tv.Copy ();
|
||||
tv.Selecting = false;
|
||||
tv.CursorPosition = new Point (2, 4);
|
||||
tv.CursorPosition = new (2, 4);
|
||||
tv.Paste ();
|
||||
Application.Refresh ();
|
||||
|
||||
@@ -134,7 +131,7 @@ Menu
|
||||
ErTopLevel
|
||||
Base
|
||||
Dialogror ";
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
|
||||
|
||||
expectedColor = @"
|
||||
0000000000
|
||||
@@ -147,7 +144,7 @@ Dialogror ";
|
||||
TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
|
||||
|
||||
tv.Undo ();
|
||||
tv.CursorPosition = new Point (0, 3);
|
||||
tv.CursorPosition = new (0, 3);
|
||||
tv.SelectionStartColumn = 0;
|
||||
tv.SelectionStartRow = 0;
|
||||
|
||||
@@ -157,7 +154,7 @@ Dialogror ";
|
||||
);
|
||||
tv.Copy ();
|
||||
tv.Selecting = false;
|
||||
tv.CursorPosition = new Point (2, 4);
|
||||
tv.CursorPosition = new (2, 4);
|
||||
tv.Paste ();
|
||||
Application.Refresh ();
|
||||
|
||||
@@ -170,7 +167,7 @@ ErTopLevel
|
||||
Base
|
||||
Dialog
|
||||
ror ";
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, _output);
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (expectedText, output);
|
||||
|
||||
expectedColor = @"
|
||||
0000000000
|
||||
@@ -184,18 +181,18 @@ ror ";
|
||||
TestHelpers.AssertDriverAttributesAre (expectedColor, Application.Driver, attributes);
|
||||
|
||||
Application.End (rs);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[AutoInitShutdown]
|
||||
public void RuneCell_LoadRuneCells_Without_ColorScheme_Is_Never_Null ()
|
||||
{
|
||||
List<RuneCell> cells = new ()
|
||||
{
|
||||
new RuneCell { Rune = new Rune ('T') },
|
||||
new RuneCell { Rune = new Rune ('e') },
|
||||
new RuneCell { Rune = new Rune ('s') },
|
||||
new RuneCell { Rune = new Rune ('t') }
|
||||
new() { Rune = new ('T') },
|
||||
new() { Rune = new ('e') },
|
||||
new() { Rune = new ('s') },
|
||||
new() { Rune = new ('t') }
|
||||
};
|
||||
TextView tv = CreateTextView ();
|
||||
var top = new Toplevel ();
|
||||
@@ -250,7 +247,7 @@ ror ";
|
||||
@"
|
||||
This is the first line.
|
||||
This is the second line.",
|
||||
_output
|
||||
output
|
||||
);
|
||||
|
||||
tv.Width = 10;
|
||||
@@ -268,10 +265,11 @@ This is
|
||||
the
|
||||
second
|
||||
line. ",
|
||||
_output
|
||||
output
|
||||
);
|
||||
|
||||
Assert.Equal (eventCount, (text [0].Count + text [1].Count) * 2);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -281,7 +279,7 @@ line. ",
|
||||
|
||||
var rc2 = new RuneCell
|
||||
{
|
||||
Rune = new Rune ('a'), ColorScheme = new ColorScheme { Normal = new Attribute (Color.Red) }
|
||||
Rune = new ('a'), ColorScheme = new() { Normal = new (Color.Red) }
|
||||
};
|
||||
Assert.Equal ("U+0000 '\0'; null", rc1.ToString ());
|
||||
|
||||
@@ -292,5 +290,5 @@ line. ",
|
||||
}
|
||||
|
||||
// TODO: Move the tests below to View or Color - they test ColorScheme, not RuneCell primitives.
|
||||
private TextView CreateTextView () { return new TextView { Width = 30, Height = 10 }; }
|
||||
private TextView CreateTextView () { return new() { Width = 30, Height = 10 }; }
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ public class ScrollBarViewTests
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void AutoHideScrollBars_Check ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
|
||||
@@ -132,6 +133,7 @@ public class ScrollBarViewTests
|
||||
Assert.Equal (79, _scrollBar.OtherScrollBarView.Viewport.Width);
|
||||
Assert.Equal ("Absolute(1)", _scrollBar.OtherScrollBarView.Height.ToString ());
|
||||
Assert.Equal (1, _scrollBar.OtherScrollBarView.Viewport.Height);
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -214,13 +216,15 @@ public class ScrollBarViewTests
|
||||
│▼│
|
||||
└─┘";
|
||||
_ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void ChangedPosition_Negative_Value ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
|
||||
@@ -231,13 +235,16 @@ public class ScrollBarViewTests
|
||||
_scrollBar.OtherScrollBarView.Position = -50;
|
||||
Assert.Equal (0, _scrollBar.OtherScrollBarView.Position);
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.Position, _hostView.Left);
|
||||
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void ChangedPosition_Scrolling ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
|
||||
@@ -264,13 +271,15 @@ public class ScrollBarViewTests
|
||||
_scrollBar.OtherScrollBarView.Position -= 1;
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.Position, _hostView.Left);
|
||||
}
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void ChangedPosition_Update_The_Hosted_View ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
|
||||
@@ -279,6 +288,7 @@ public class ScrollBarViewTests
|
||||
|
||||
_scrollBar.OtherScrollBarView.Position = 5;
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.Position, _hostView.Left);
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -355,6 +365,7 @@ This is a tes
|
||||
",
|
||||
_output
|
||||
);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -605,6 +616,7 @@ This is a tes▼
|
||||
",
|
||||
_output
|
||||
);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -654,13 +666,15 @@ This is a test
|
||||
",
|
||||
_output
|
||||
);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void DrawContent_Update_The_ScrollBarView_Position ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
|
||||
@@ -671,6 +685,7 @@ This is a test
|
||||
_hostView.Left = 6;
|
||||
_hostView.Draw ();
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.Position, _hostView.Left);
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -694,6 +709,7 @@ This is a test
|
||||
│◄├────────────────┤░░░░░░░░░░░░░░░░░░►│
|
||||
└──────────────────────────────────────┘";
|
||||
_ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -733,7 +749,6 @@ This is a test
|
||||
RemoveHandlers ();
|
||||
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
Assert.True (_scrollBar.IsVertical);
|
||||
@@ -752,6 +767,7 @@ This is a test
|
||||
Assert.Equal (_scrollBar.Size, _hostView.Lines);
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.Position, _hostView.Left);
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.Size, _hostView.Cols);
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -914,6 +930,7 @@ This is a test
|
||||
|
||||
pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
|
||||
Assert.Equal (new Rectangle (0, 0, 10, 10), pos);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -928,6 +945,8 @@ This is a test
|
||||
|
||||
Assert.Throws<ArgumentException> (() => v.OtherScrollBarView = h);
|
||||
Assert.Throws<ArgumentException> (() => h.OtherScrollBarView = v);
|
||||
top.Dispose ();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -942,6 +961,7 @@ This is a test
|
||||
|
||||
Assert.Throws<ArgumentException> (() => v.OtherScrollBarView = h);
|
||||
Assert.Throws<ArgumentException> (() => h.OtherScrollBarView = v);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -994,15 +1014,19 @@ This is a test
|
||||
Assert.Equal (99, max);
|
||||
Assert.True (sbv.Visible);
|
||||
Assert.True (sbv.OtherScrollBarView.Visible);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void KeepContentAlwaysInViewport_False ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
_hostView.SuperView.LayoutSubviews ();
|
||||
_hostView.Draw ();
|
||||
|
||||
_scrollBar.KeepContentAlwaysInViewport = false;
|
||||
_scrollBar.Position = 50;
|
||||
@@ -1016,16 +1040,20 @@ This is a test
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.Position, _hostView.Left);
|
||||
Assert.Equal (99, _scrollBar.OtherScrollBarView.Position);
|
||||
Assert.Equal (99, _hostView.Left);
|
||||
_hostView.SuperView.Dispose ();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void KeepContentAlwaysInViewport_True ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
|
||||
_hostView.SuperView.LayoutSubviews ();
|
||||
_hostView.Draw ();
|
||||
Assert.Equal (80, _hostView.Viewport.Width);
|
||||
Assert.Equal (25, _hostView.Viewport.Height);
|
||||
Assert.Equal (79, _scrollBar.OtherScrollBarView.Viewport.Width);
|
||||
@@ -1060,19 +1088,22 @@ This is a test
|
||||
Assert.True (_scrollBar.OtherScrollBarView.ShowScrollIndicator);
|
||||
Assert.True (_scrollBar.Visible);
|
||||
Assert.True (_scrollBar.OtherScrollBarView.Visible);
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void OtherScrollBarView_Not_Null ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
|
||||
Assert.NotNull (_scrollBar.OtherScrollBarView);
|
||||
Assert.NotEqual (_scrollBar, _scrollBar.OtherScrollBarView);
|
||||
Assert.Equal (_scrollBar.OtherScrollBarView.OtherScrollBarView, _scrollBar);
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -1082,18 +1113,23 @@ This is a test
|
||||
var sbv = new ScrollBarView { Position = 1 };
|
||||
Assert.Equal (1, sbv.Position);
|
||||
Assert.NotEqual (0, sbv.Position);
|
||||
sbv.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ScrollBarAutoInitShutdown]
|
||||
public void ShowScrollIndicator_Check ()
|
||||
{
|
||||
Hosting_A_View_To_A_ScrollBarView ();
|
||||
_scrollBar = new ScrollBarView (_hostView, true);
|
||||
Application.Begin (_hostView.SuperView as Toplevel);
|
||||
|
||||
AddHandlers ();
|
||||
_hostView.SuperView.LayoutSubviews ();
|
||||
_hostView.Draw ();
|
||||
|
||||
Assert.True (_scrollBar.ShowScrollIndicator);
|
||||
Assert.True (_scrollBar.OtherScrollBarView.ShowScrollIndicator);
|
||||
_hostView.SuperView.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -1165,6 +1201,7 @@ This is a test ",
|
||||
Assert.Equal (5, sbv.Size);
|
||||
Assert.False (sbv.ShowScrollIndicator);
|
||||
Assert.False (sbv.Visible);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -1235,6 +1272,7 @@ This is a test ",
|
||||
│▼│
|
||||
└─┘";
|
||||
_ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
private void _hostView_DrawContent (object sender, DrawEventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user