Skip to content

Commit

Permalink
Update tests to use DragMouseBy and DragMouseTo (#8950)
Browse files Browse the repository at this point in the history
* Wait for WM_MOUSEMOVE processing before sending more messages.
* Match WM_LBUTTONDOWN with WM_LBUTTONUP

Closes #6609
Closes #6714
Closes #7297
Closes #7407
Closes #8635
  • Loading branch information
sharwell authored Apr 6, 2023
1 parent 3899736 commit 5d8e6d6
Show file tree
Hide file tree
Showing 6 changed files with 157 additions and 159 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ await InputSimulator.SendAsync(
});
}

[WinFormsFact(Skip = "https://github.com/dotnet/winforms/issues/8635")]
[WinFormsFact]
public async Task Button_AchorNone_NoResizeOnWindowSizeWiderAsync()
{
await RunTestAsync(async (form, button) =>
Expand All @@ -120,7 +120,7 @@ await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse
.LeftButtonDown()
.MoveMouseBy(form.DisplayRectangle.Width, 0)
.DragMouseBy(form.DisplayRectangle.Width, 0)
.LeftButtonUp());

Assert.True(form.DisplayRectangle.Width > originalFormSize.Width);
Expand All @@ -129,8 +129,7 @@ await InputSimulator.SendAsync(
});
}

[ActiveIssue("https://github.com/dotnet/winforms/issues/6714")]
[WinFormsFact(Skip = "Flaky tests, see: https://github.com/dotnet/winforms/issues/6714")]
[WinFormsFact]
public async Task Button_AchorNone_NoResizeOnWindowSizeTallerAsync()
{
await RunTestAsync(async (form, button) =>
Expand All @@ -145,7 +144,7 @@ await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse
.LeftButtonDown()
.MoveMouseBy(0, form.DisplayRectangle.Height)
.DragMouseBy(0, form.DisplayRectangle.Height)
.LeftButtonUp());

Assert.True(form.DisplayRectangle.Height > originalFormSize.Height);
Expand All @@ -154,8 +153,7 @@ await InputSimulator.SendAsync(
});
}

[ActiveIssue("https://github.com/dotnet/winforms/issues/7297")]
[WinFormsFact(Skip = "Flaky tests, see: https://github.com/dotnet/winforms/issues/7297")]
[WinFormsFact]
public async Task Button_Anchor_ResizeOnWindowSizeWiderAsync()
{
await RunTestAsync(async (form, button) =>
Expand All @@ -172,7 +170,7 @@ await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse
.LeftButtonDown()
.MoveMouseBy(form.DisplayRectangle.Width, 0)
.DragMouseBy(form.DisplayRectangle.Width, 0)
.LeftButtonUp());

Assert.True(form.DisplayRectangle.Width > originalFormSize.Width);
Expand All @@ -185,8 +183,7 @@ await InputSimulator.SendAsync(
});
}

[ActiveIssue("https://github.com/dotnet/winforms/issues/7407")]
[WinFormsFact(Skip = "Flaky tests, see: https://github.com/dotnet/winforms/issues/7407")]
[WinFormsFact]
public async Task Button_Anchor_ResizeOnWindowSizeTallerAsync()
{
await RunTestAsync(async (form, button) =>
Expand All @@ -203,7 +200,7 @@ await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse
.LeftButtonDown()
.MoveMouseBy(0, form.DisplayRectangle.Height)
.DragMouseBy(0, form.DisplayRectangle.Height)
.LeftButtonUp());

Assert.True(form.DisplayRectangle.Height > originalFormSize.Height);
Expand All @@ -228,13 +225,13 @@ await RunControlPairTestAsync<Button, Button>(async (form, controls) =>
control2.Click += (sender, e) => control2ClickCount++;

await MoveMouseToControlAsync(control1);
await InputSimulator.SendAsync(form, inputSimulator => inputSimulator.Mouse.LeftButtonDown().LeftButtonUp());
await InputSimulator.SendAsync(form, inputSimulator => inputSimulator.Mouse.LeftButtonClick());

Assert.Equal(1, control1ClickCount);
Assert.Equal(0, control2ClickCount);

await MoveMouseToControlAsync(control2);
await InputSimulator.SendAsync(form, inputSimulator => inputSimulator.Mouse.LeftButtonDown().LeftButtonUp());
await InputSimulator.SendAsync(form, inputSimulator => inputSimulator.Mouse.LeftButtonClick());

Assert.Equal(1, control1ClickCount);
Assert.Equal(1, control2ClickCount);
Expand Down Expand Up @@ -266,7 +263,7 @@ await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse
.LeftButtonDown()
.MoveMouseTo(virtualPoint.X, virtualPoint.Y)
.DragMouseTo(virtualPoint.X, virtualPoint.Y)
.LeftButtonUp());

Assert.Equal(0, control1ClickCount);
Expand Down Expand Up @@ -301,8 +298,8 @@ await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse
.LeftButtonDown()
.MoveMouseTo(virtualPoint.X, virtualPoint.Y)
.MoveMouseTo(virtualPoint1.X, virtualPoint1.Y)
.DragMouseTo(virtualPoint.X, virtualPoint.Y)
.DragMouseTo(virtualPoint1.X, virtualPoint1.Y)
.LeftButtonUp());

Assert.Equal(1, control1ClickCount);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ await RunTestAsync(async (form, dataGridView) =>
// Move mouse cursor over any cell of the first row to trigger a tooltip.
await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse.MoveMouseTo(targetPoint.X, targetPoint.Y));
inputSimulator => inputSimulator.Mouse.DragMouseTo(targetPoint.X, targetPoint.Y));

// Close the form to verify no exceptions thrown while showing the tooltip.
// Regression test for https://github.com/dotnet/winforms/issues/5496
Expand Down Expand Up @@ -62,7 +62,7 @@ await RunTestAsync(async (form, dataGridView) =>
// Wait 1 second to make sure that the toolTip appeared, it has some delay (500 ms by default).
await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse.MoveMouseTo(targetPoint.X, targetPoint.Y).Sleep(1000));
inputSimulator => inputSimulator.Mouse.DragMouseTo(targetPoint.X, targetPoint.Y).Sleep(1000));

// DataGridViewToolTip is private so use the reflection
object toolTip = dataGridView.TestAccessor().Dynamic._toolTipControl;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,17 +128,10 @@ async Task InitiateDrangDropAsync(Form form, Point startCoordinates, Control roo

await InputSimulator.SendAsync(
form,
inputSimulator => inputSimulator.Mouse.MoveMouseTo(virtualPointStart.X + 6, virtualPointStart.Y + 6)
inputSimulator => inputSimulator.Mouse.DragMouseTo(virtualPointStart.X + 6, virtualPointStart.Y + 6)
.LeftButtonDown()
.Sleep(100)
.MoveMouseTo(virtualPointEnd.X, virtualPointEnd.Y)
// The d'n'd is very finicky, and if we just call LeftButtonUp()
// it won't work... It'd for some reason think we'd left the control instead.
//
// To work around it - give it a full second to react and then
// simulate a mouse click.
.Sleep(100)
.LeftButtonClick());
.DragMouseTo(virtualPointEnd.X, virtualPointEnd.Y)
.LeftButtonUp());

dndSignal.Release();
}
Expand Down
Loading

0 comments on commit 5d8e6d6

Please sign in to comment.