From f8d95598892d7bf3196f4f308f183b13e3cf374f Mon Sep 17 00:00:00 2001 From: "Leaf Shi (BEYONDSOFT CONSULTING INC)" Date: Thu, 17 Jul 2025 14:58:25 +0800 Subject: [PATCH 1/2] Add judgement for test ListView_Click_On_Second_Column_Does_Not_Alter_CheckBoxesAsync --- .../UIIntegrationTests/ListViewTests.cs | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/test/integration/UIIntegrationTests/ListViewTests.cs b/src/test/integration/UIIntegrationTests/ListViewTests.cs index 8f37d8a12f0..3dca26feceb 100644 --- a/src/test/integration/UIIntegrationTests/ListViewTests.cs +++ b/src/test/integration/UIIntegrationTests/ListViewTests.cs @@ -539,8 +539,12 @@ await RunTestAsync(async (form, listView) => { InitializeItems(listView, View.Details, virtualModeEnabled: false, checkBoxesEnabled: true); + Assert.True(listView.Items.Count > 0, + $"Expected ListView to contain at least one item, but found {listView.Items.Count}."); + foreach (ListViewItem item in listView.Items) { + Console.WriteLine($"Item State: SubItems count = {item.SubItems.Count}, StateImageIndex = {item.StateImageIndex}"); Assert.Equal(0, item.StateImageIndex); Assert.False(item.Selected); } @@ -552,24 +556,26 @@ await form.InvokeAsync(() => Application.DoEvents(); }); - Assert.True(listView.Items.Count > 0, - $"Expected ListView to contain at least one item, but found {listView.Items.Count}."); - Assert.True(listView.Items[0].SubItems.Count > 1, - $"Expected first item to have more than one subitem, but found {listView.Items[0].SubItems.Count}."); - - Point listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[0].SubItems[1].Bounds)); - await MoveMouseAsync(form, listViewCenter); - - await InputSimulator.SendAsync( - form, - inputSimulator => inputSimulator.Keyboard.KeyDown(VIRTUAL_KEY.VK_SHIFT) - .Mouse.LeftButtonClick()); - listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[2].SubItems[1].Bounds)); - await MoveMouseAsync(form, listViewCenter); - await InputSimulator.SendAsync( - form, - inputSimulator => inputSimulator.Mouse.LeftButtonClick() - .Keyboard.KeyUp(VIRTUAL_KEY.VK_SHIFT)); + if (listView.Items.Count > 0 && listView.Items[0].SubItems.Count > 1) + { + Point listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[0].SubItems[1].Bounds)); + await MoveMouseAsync(form, listViewCenter); + + await InputSimulator.SendAsync( + form, + inputSimulator => inputSimulator.Keyboard.KeyDown(VIRTUAL_KEY.VK_SHIFT) + .Mouse.LeftButtonClick()); + listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[2].SubItems[1].Bounds)); + await MoveMouseAsync(form, listViewCenter); + await InputSimulator.SendAsync( + form, + inputSimulator => inputSimulator.Mouse.LeftButtonClick() + .Keyboard.KeyUp(VIRTUAL_KEY.VK_SHIFT)); + } + else + { + throw new InvalidOperationException("ListView refresh failed: insufficient items or subitems."); + } foreach (ListViewItem item in listView.Items) { From 4d2b9b44c2c16a8a7dfce7d45ff5b07ddfd5fa3e Mon Sep 17 00:00:00 2001 From: "Leaf Shi (BEYONDSOFT CONSULTING INC)" Date: Tue, 22 Jul 2025 16:24:28 +0800 Subject: [PATCH 2/2] Add listView.BeginUpdate and listView.EndUpdate --- src/test/integration/UIIntegrationTests/ListViewTests.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/integration/UIIntegrationTests/ListViewTests.cs b/src/test/integration/UIIntegrationTests/ListViewTests.cs index 3dca26feceb..e7aa554a3f3 100644 --- a/src/test/integration/UIIntegrationTests/ListViewTests.cs +++ b/src/test/integration/UIIntegrationTests/ListViewTests.cs @@ -537,14 +537,15 @@ public async Task ListView_Click_On_Second_Column_Does_Not_Alter_CheckBoxesAsync { await RunTestAsync(async (form, listView) => { + listView.BeginUpdate(); InitializeItems(listView, View.Details, virtualModeEnabled: false, checkBoxesEnabled: true); + listView.EndUpdate(); Assert.True(listView.Items.Count > 0, $"Expected ListView to contain at least one item, but found {listView.Items.Count}."); foreach (ListViewItem item in listView.Items) { - Console.WriteLine($"Item State: SubItems count = {item.SubItems.Count}, StateImageIndex = {item.StateImageIndex}"); Assert.Equal(0, item.StateImageIndex); Assert.False(item.Selected); } @@ -556,7 +557,7 @@ await form.InvokeAsync(() => Application.DoEvents(); }); - if (listView.Items.Count > 0 && listView.Items[0].SubItems.Count > 1) + if (listView.Items.Count > 0 && listView.Items[0].SubItems is not null && listView.Items[0].SubItems.Count > 1) { Point listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[0].SubItems[1].Bounds)); await MoveMouseAsync(form, listViewCenter);