X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Windows.Forms%2FTest%2FSystem.Windows.Forms%2FListViewTest.cs;h=a71067dc5f4e8985bd9b799a003414f7c25f198d;hb=HEAD;hp=46adeaaccb4d967f207eb6befe7015306307bad9;hpb=b7e80009158717d96fdbb42e93c10ebd927fd6a8;p=mono.git diff --git a/mcs/class/System.Windows.Forms/Test/System.Windows.Forms/ListViewTest.cs b/mcs/class/System.Windows.Forms/Test/System.Windows.Forms/ListViewTest.cs index 46adeaaccb4..a71067dc5f4 100644 --- a/mcs/class/System.Windows.Forms/Test/System.Windows.Forms/ListViewTest.cs +++ b/mcs/class/System.Windows.Forms/Test/System.Windows.Forms/ListViewTest.cs @@ -1958,5 +1958,56 @@ namespace MonoTests.System.Windows.Forms return base.IsInputChar (charCode); } } + + [Test] // Should not throw IndexOutOfBoundsException + public void ReaddingItem () + { + Form form = new Form (); + form.ShowInTaskbar = false; + ListView lvw1 = new ListView (); + ListView lvw2 = new ListView (); + lvw1.View = View.Details; + lvw2.View = View.Details; + lvw1.Columns.Add (new ColumnHeader ("1")); + lvw2.Columns.Add (new ColumnHeader ("2")); + form.Controls.Add (lvw1); + form.Controls.Add (lvw2); + form.Show (); + + for (int i = 0; i < 50; i++) + lvw1.Items.Add ("A"); + lvw2.Items.Add ("B1"); + + ListViewItem item = lvw1.Items [lvw1.Items.Count - 1]; + item.Selected = true; + item.Remove (); + lvw2.Items.Add (item); + item.Selected = true; + + Assert.AreEqual (lvw1.Items.Count, 49, "#1"); + Assert.AreEqual (lvw2.Items.Count, 2, "#2"); + Assert.AreEqual (lvw2.Items [1].Selected, true, "#3"); + + form.Dispose (); + } + + [Test] // Should not throw ArgumentOutOfRangeException + public void DeleteNotFocusedItem () + { + Form form = new Form (); + form.ShowInTaskbar = false; + ListView lvw = new ListView (); + form.Controls.Add (lvw); + form.Show (); + + for (int i = 0; i < 3; i++) + lvw.Items.Add ("A"); + + lvw.Items [lvw.Items.Count - 1].Focused = true; + lvw.Items [0].Remove (); + lvw.Items [0].Remove (); + + form.Dispose (); + } } }