mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-01-01 16:59:35 +01:00
Fixes #2451. ListView SelectedItem should be -1 by default.
This commit is contained in:
@@ -88,13 +88,14 @@ namespace Terminal.Gui.ViewTests {
|
||||
Assert.Equal (-1, cb.SelectedItem);
|
||||
Assert.Equal (string.Empty, cb.Text);
|
||||
var opened = false;
|
||||
cb.OpenSelectedItem += (s,_) => opened = true;
|
||||
cb.OpenSelectedItem += (s, _) => opened = true;
|
||||
Assert.True (cb.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ())));
|
||||
Assert.False (opened);
|
||||
cb.Text = "Tw";
|
||||
Assert.True (cb.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ())));
|
||||
Assert.True (opened);
|
||||
Assert.Equal ("Two", cb.Text);
|
||||
Assert.Equal ("", cb.Text);
|
||||
Assert.False (cb.IsShow);
|
||||
cb.SetSource (null);
|
||||
Assert.False (cb.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ())));
|
||||
Assert.True (cb.ProcessKey (new KeyEvent (Key.F4, new KeyModifiers ()))); // with no source also expand empty
|
||||
@@ -253,11 +254,11 @@ Three
|
||||
Assert.True (cb.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ())));
|
||||
Assert.False (cb.IsShow);
|
||||
Assert.Equal (2, cb.Source.Count);
|
||||
Assert.Equal (1, cb.SelectedItem);
|
||||
Assert.Equal ("Two", cb.Text);
|
||||
Assert.Equal (-1, cb.SelectedItem);
|
||||
Assert.Equal ("", cb.Text);
|
||||
Assert.True (cb.ProcessKey (new KeyEvent (Key.Esc, new KeyModifiers ())));
|
||||
Assert.False (cb.IsShow);
|
||||
Assert.Equal (1, cb.SelectedItem); // retains last accept selected item
|
||||
Assert.Equal (-1, cb.SelectedItem); // retains last accept selected item
|
||||
Assert.Equal ("", cb.Text); // clear text
|
||||
cb.SetSource (new List<string> ());
|
||||
Assert.Equal (0, cb.Source.Count);
|
||||
@@ -274,7 +275,7 @@ Three
|
||||
Width = 5
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -369,7 +370,7 @@ Three
|
||||
HideDropdownListOnClick = true
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -431,7 +432,7 @@ Three
|
||||
HideDropdownListOnClick = true
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -551,7 +552,7 @@ Three
|
||||
ReadOnly = true
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -611,7 +612,7 @@ Three
|
||||
HideDropdownListOnClick = true
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -648,7 +649,7 @@ Three
|
||||
HideDropdownListOnClick = false
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -685,7 +686,7 @@ Three
|
||||
HideDropdownListOnClick = true
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -790,7 +791,7 @@ Three
|
||||
HideDropdownListOnClick = true,
|
||||
};
|
||||
cb.SetSource (new List<string> { "One", "Two", "Three" });
|
||||
cb.OpenSelectedItem += (s,e) => selected = e.Value.ToString ();
|
||||
cb.OpenSelectedItem += (s, e) => selected = e.Value.ToString ();
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -912,8 +913,8 @@ Three ", output);
|
||||
};
|
||||
var list = new List<string> { "One", "Two", "Three" };
|
||||
|
||||
cb.Expanded += (s,e) => cb.SetSource (list);
|
||||
cb.Collapsed += (s,e) => cb.Source = null;
|
||||
cb.Expanded += (s, e) => cb.SetSource (list);
|
||||
cb.Collapsed += (s, e) => cb.Source = null;
|
||||
|
||||
Application.Top.Add (cb);
|
||||
Application.Begin (Application.Top);
|
||||
|
||||
@@ -22,19 +22,24 @@ namespace Terminal.Gui.ViewTests {
|
||||
var lv = new ListView ();
|
||||
Assert.Null (lv.Source);
|
||||
Assert.True (lv.CanFocus);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
|
||||
lv = new ListView (new List<string> () { "One", "Two", "Three" });
|
||||
Assert.NotNull (lv.Source);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
|
||||
lv = new ListView (new NewListDataSource ());
|
||||
Assert.NotNull (lv.Source);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
|
||||
lv = new ListView (new Rect (0, 1, 10, 20), new List<string> () { "One", "Two", "Three" });
|
||||
Assert.NotNull (lv.Source);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
Assert.Equal (new Rect (0, 1, 10, 20), lv.Frame);
|
||||
|
||||
lv = new ListView (new Rect (0, 1, 10, 20), new NewListDataSource ());
|
||||
Assert.NotNull (lv.Source);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
Assert.Equal (new Rect (0, 1, 10, 20), lv.Frame);
|
||||
}
|
||||
|
||||
@@ -46,8 +51,8 @@ namespace Terminal.Gui.ViewTests {
|
||||
|
||||
Assert.NotNull (lv.Source);
|
||||
|
||||
// first item should be selected by default
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
// first item should be deselected by default
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
|
||||
// nothing is ticked
|
||||
Assert.False (lv.Source.IsMarked (0));
|
||||
@@ -61,6 +66,17 @@ namespace Terminal.Gui.ViewTests {
|
||||
// view should indicate that it has accepted and consumed the event
|
||||
Assert.True (lv.ProcessKey (ev));
|
||||
|
||||
// first item should now be selected
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
|
||||
// none of the items should be ticked
|
||||
Assert.False (lv.Source.IsMarked (0));
|
||||
Assert.False (lv.Source.IsMarked (1));
|
||||
Assert.False (lv.Source.IsMarked (2));
|
||||
|
||||
// Press key combo again
|
||||
Assert.True (lv.ProcessKey (ev));
|
||||
|
||||
// second item should now be selected
|
||||
Assert.Equal (1, lv.SelectedItem);
|
||||
|
||||
@@ -109,8 +125,8 @@ namespace Terminal.Gui.ViewTests {
|
||||
|
||||
Assert.NotNull (lv.Source);
|
||||
|
||||
// first item should be selected by default
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
// first item should be deselected by default
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
|
||||
// bind shift down to move down twice in control
|
||||
lv.AddKeyBinding (Key.CursorDown | Key.ShiftMask, Command.LineDown, Command.LineDown);
|
||||
@@ -119,8 +135,8 @@ namespace Terminal.Gui.ViewTests {
|
||||
|
||||
Assert.True (lv.ProcessKey (ev), "The first time we move down 2 it should be possible");
|
||||
|
||||
// After moving down twice from One we should be at 'Three'
|
||||
Assert.Equal (2, lv.SelectedItem);
|
||||
// After moving down twice from -1 we should be at 'Two'
|
||||
Assert.Equal (1, lv.SelectedItem);
|
||||
|
||||
// clear the items
|
||||
lv.SetSource (null);
|
||||
@@ -160,9 +176,9 @@ namespace Terminal.Gui.ViewTests {
|
||||
{
|
||||
List<string> source = new List<string> () { "One", "Two", "Three" };
|
||||
ListView lv = new ListView (source) { Height = 2, AllowsMarking = true };
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
Assert.True (lv.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ())));
|
||||
Assert.Equal (1, lv.SelectedItem);
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
Assert.True (lv.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())));
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
Assert.True (lv.ProcessKey (new KeyEvent (Key.PageDown, new KeyModifiers ())));
|
||||
@@ -175,7 +191,7 @@ namespace Terminal.Gui.ViewTests {
|
||||
Assert.True (lv.ProcessKey (new KeyEvent (Key.Space, new KeyModifiers ())));
|
||||
Assert.True (lv.Source.IsMarked (lv.SelectedItem));
|
||||
var opened = false;
|
||||
lv.OpenSelectedItem += (s,_) => opened = true;
|
||||
lv.OpenSelectedItem += (s, _) => opened = true;
|
||||
Assert.True (lv.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ())));
|
||||
Assert.True (opened);
|
||||
Assert.True (lv.ProcessKey (new KeyEvent (Key.End, new KeyModifiers ())));
|
||||
@@ -191,7 +207,7 @@ namespace Terminal.Gui.ViewTests {
|
||||
var rendered = false;
|
||||
var source = new List<string> () { "one", "two", "three" };
|
||||
var lv = new ListView () { Width = Dim.Fill (), Height = Dim.Fill () };
|
||||
lv.RowRender += (s,_) => rendered = true;
|
||||
lv.RowRender += (s, _) => rendered = true;
|
||||
Application.Top.Add (lv);
|
||||
Application.Begin (Application.Top);
|
||||
Assert.False (rendered);
|
||||
@@ -246,7 +262,7 @@ namespace Terminal.Gui.ViewTests {
|
||||
((FakeDriver)Application.Driver).SetBufferSize (12, 12);
|
||||
Application.Refresh ();
|
||||
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (@"
|
||||
┌──────────┐
|
||||
│Line0 │
|
||||
@@ -263,7 +279,7 @@ namespace Terminal.Gui.ViewTests {
|
||||
|
||||
Assert.True (lv.ScrollDown (10));
|
||||
lv.Redraw (lv.Bounds);
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
Assert.Equal (-1, lv.SelectedItem);
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (@"
|
||||
┌──────────┐
|
||||
│Line10 │
|
||||
@@ -280,9 +296,10 @@ namespace Terminal.Gui.ViewTests {
|
||||
|
||||
Assert.True (lv.MoveDown ());
|
||||
lv.Redraw (lv.Bounds);
|
||||
Assert.Equal (1, lv.SelectedItem);
|
||||
Assert.Equal (0, lv.SelectedItem);
|
||||
TestHelpers.AssertDriverContentsWithFrameAre (@"
|
||||
┌──────────┐
|
||||
│Line0 │
|
||||
│Line1 │
|
||||
│Line2 │
|
||||
│Line3 │
|
||||
@@ -292,7 +309,6 @@ namespace Terminal.Gui.ViewTests {
|
||||
│Line7 │
|
||||
│Line8 │
|
||||
│Line9 │
|
||||
│Line10 │
|
||||
└──────────┘", output);
|
||||
|
||||
Assert.True (lv.MoveEnd ());
|
||||
|
||||
Reference in New Issue
Block a user