Skip to content

Commit 770b5a9

Browse files
authored
Add judgement for test ListView_Click_On_Second_Column_Does_Not_Alter_CheckBoxesAsync (#13712)
<!-- Please read CONTRIBUTING.md before submitting a pull request --> Releated #13288 ## Proposed changes - Add judgement for test ListView_Click_On_Second_Column_Does_Not_Alter_CheckBoxesAsync ###### Microsoft Reviewers: [Open in CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/dotnet/winforms/pull/13712)
1 parent 91ebb74 commit 770b5a9

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

src/test/integration/UIIntegrationTests/ListViewTests.cs

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,12 @@ public async Task ListView_Click_On_Second_Column_Does_Not_Alter_CheckBoxesAsync
537537
{
538538
await RunTestAsync(async (form, listView) =>
539539
{
540+
listView.BeginUpdate();
540541
InitializeItems(listView, View.Details, virtualModeEnabled: false, checkBoxesEnabled: true);
542+
listView.EndUpdate();
543+
544+
Assert.True(listView.Items.Count > 0,
545+
$"Expected ListView to contain at least one item, but found {listView.Items.Count}.");
541546

542547
foreach (ListViewItem item in listView.Items)
543548
{
@@ -552,24 +557,26 @@ await form.InvokeAsync(() =>
552557
Application.DoEvents();
553558
});
554559

555-
Assert.True(listView.Items.Count > 0,
556-
$"Expected ListView to contain at least one item, but found {listView.Items.Count}.");
557-
Assert.True(listView.Items[0].SubItems.Count > 1,
558-
$"Expected first item to have more than one subitem, but found {listView.Items[0].SubItems.Count}.");
559-
560-
Point listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[0].SubItems[1].Bounds));
561-
await MoveMouseAsync(form, listViewCenter);
562-
563-
await InputSimulator.SendAsync(
564-
form,
565-
inputSimulator => inputSimulator.Keyboard.KeyDown(VIRTUAL_KEY.VK_SHIFT)
566-
.Mouse.LeftButtonClick());
567-
listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[2].SubItems[1].Bounds));
568-
await MoveMouseAsync(form, listViewCenter);
569-
await InputSimulator.SendAsync(
570-
form,
571-
inputSimulator => inputSimulator.Mouse.LeftButtonClick()
572-
.Keyboard.KeyUp(VIRTUAL_KEY.VK_SHIFT));
560+
if (listView.Items.Count > 0 && listView.Items[0].SubItems is not null && listView.Items[0].SubItems.Count > 1)
561+
{
562+
Point listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[0].SubItems[1].Bounds));
563+
await MoveMouseAsync(form, listViewCenter);
564+
565+
await InputSimulator.SendAsync(
566+
form,
567+
inputSimulator => inputSimulator.Keyboard.KeyDown(VIRTUAL_KEY.VK_SHIFT)
568+
.Mouse.LeftButtonClick());
569+
listViewCenter = GetCenter(listView.RectangleToScreen(listView.Items[2].SubItems[1].Bounds));
570+
await MoveMouseAsync(form, listViewCenter);
571+
await InputSimulator.SendAsync(
572+
form,
573+
inputSimulator => inputSimulator.Mouse.LeftButtonClick()
574+
.Keyboard.KeyUp(VIRTUAL_KEY.VK_SHIFT));
575+
}
576+
else
577+
{
578+
throw new InvalidOperationException("ListView refresh failed: insufficient items or subitems.");
579+
}
573580

574581
foreach (ListViewItem item in listView.Items)
575582
{

0 commit comments

Comments
 (0)