mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-16 05:21:37 -04:00
test(desktop): guard cutoff drag mouse lifecycle
This commit is contained in:
1 parent
bf8ca19ce5
commit
e8c0eea0b0
1 file changed
+32
@@ -171,6 +171,32 @@ public class CutOffWindowSelectionTests
|
||||
Assert.Equal(before.X, cutoff.Position.X);
|
||||
});
|
||||
|
||||
[Fact]
|
||||
public void ActiveCutOffDragNeedsLeftMotionAndEndsAfterSelectionClears() => RunSta(() =>
|
||||
{
|
||||
var plate = new Plate(20, 20);
|
||||
var cutoff = new CutOff(new Vector(10, 0), CutOffAxis.Vertical);
|
||||
plate.CutOffs.Add(cutoff);
|
||||
plate.RegenerateCutOffs(new CutOffSettings());
|
||||
using var view = new EventView { Plate = plate, Size = new System.Drawing.Size(500, 500) };
|
||||
view.ZoomToArea(-2, -2, 24, 24);
|
||||
view.Down(new Vector(10, 2));
|
||||
Assert.True(view.CutOffs.IsDragging);
|
||||
|
||||
view.MoveTo(new Vector(13, 2), MouseButtons.None);
|
||||
Assert.Equal(10, cutoff.Position.X);
|
||||
view.UpRight(new Vector(13, 2));
|
||||
Assert.True(view.CutOffs.IsDragging);
|
||||
|
||||
view.MoveTo(new Vector(11, 2), MouseButtons.Left);
|
||||
Assert.Equal(11, cutoff.Position.X);
|
||||
view.Selection.DeselectCutOffs();
|
||||
view.Up(new Vector(11, 2));
|
||||
Assert.False(view.CutOffs.IsDragging);
|
||||
view.MoveTo(new Vector(13, 2), MouseButtons.None);
|
||||
Assert.Equal(11, cutoff.Position.X);
|
||||
});
|
||||
|
||||
private sealed class EventView : PlateView
|
||||
{
|
||||
public void Down(Vector world)
|
||||
@@ -186,6 +212,12 @@ public class CutOffWindowSelectionTests
|
||||
OnMouseUp(new MouseEventArgs(MouseButtons.Left, 1, point.X, point.Y, 0));
|
||||
}
|
||||
|
||||
public void UpRight(Vector world)
|
||||
{
|
||||
var point = PointWorldToControl(world);
|
||||
OnMouseUp(new MouseEventArgs(MouseButtons.Right, 1, point.X, point.Y, 0));
|
||||
}
|
||||
|
||||
public void MoveTo(Vector world, MouseButtons buttons)
|
||||
{
|
||||
var point = PointWorldToControl(world);
|
||||
|
||||
Reference in new issue
Block a user