diff --git a/tests/Avalonia.Controls.UnitTests/WindowTests.cs b/tests/Avalonia.Controls.UnitTests/WindowTests.cs index 3677d62050..436f52ef65 100644 --- a/tests/Avalonia.Controls.UnitTests/WindowTests.cs +++ b/tests/Avalonia.Controls.UnitTests/WindowTests.cs @@ -549,22 +549,33 @@ namespace Avalonia.Controls.UnitTests screens.Setup(x => x.AllScreens).Returns(new Screen[] { screen1.Object }); screens.Setup(x => x.ScreenFromPoint(It.IsAny())).Returns(screen1.Object); - var windowImpl = MockWindowingPlatform.CreateWindowMock(); + var windowImpl = MockWindowingPlatform.CreateWindowMock(400, 300); windowImpl.Setup(x => x.DesktopScaling).Returns(1.75); windowImpl.Setup(x => x.RenderScaling).Returns(1.75); windowImpl.Setup(x => x.Screen).Returns(screens.Object); - var clientSize = new Size(400.142, 366); + var clientSize = new Size(400, 300); + bool isShown = false; - windowImpl.Setup(x => x.ClientSize).Returns(() => clientSize); windowImpl.Setup(x => x.Resize(It.IsAny(), It.IsAny())) .Callback((x, y) => { - clientSize = x; - windowImpl.Object.Resized?.Invoke(clientSize, y); + if (x != clientSize) + { + clientSize = x; + + windowImpl.Object.Resized?.Invoke(clientSize, y); + } }); - windowImpl.Setup(x => x.FrameSize).Returns(() => clientSize.Inflate(new Thickness(5, 25, 5, 5))); + windowImpl.Setup(x => x.Show(It.IsAny(), It.IsAny())) + .Callback((activate, isDialog) => + { + isShown = true; + windowImpl.Object.Resized?.Invoke(clientSize, PlatformResizeReason.Unspecified); + }); + + windowImpl.Setup(x => x.FrameSize).Returns(() => windowImpl.Object.ClientSize.Inflate(new Thickness(5, 25, 5, 5))); using (UnitTestApplication.Start(TestServices.StyledWindow)) { @@ -575,6 +586,7 @@ namespace Avalonia.Controls.UnitTests window.Show(); + Assert.Equal(new PixelPoint(601, 194), window.Position); Assert.Equal(new Size(720, 480), window.Bounds.Size); } } diff --git a/tests/Avalonia.UnitTests/MockWindowingPlatform.cs b/tests/Avalonia.UnitTests/MockWindowingPlatform.cs index 461e0f4392..ffa71d5226 100644 --- a/tests/Avalonia.UnitTests/MockWindowingPlatform.cs +++ b/tests/Avalonia.UnitTests/MockWindowingPlatform.cs @@ -21,11 +21,11 @@ namespace Avalonia.UnitTests _popupImpl = popupImpl; } - public static Mock CreateWindowMock() + public static Mock CreateWindowMock(double initialWidth = 800, double initialHeight = 600) { var windowImpl = new Mock(); var position = new PixelPoint(); - var clientSize = new Size(800, 600); + var clientSize = new Size(initialWidth, initialHeight); windowImpl.SetupAllProperties(); windowImpl.Setup(x => x.ClientSize).Returns(() => clientSize);