|
|
@@ -4,33 +4,26 @@
|
|
|
// </copyright>
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
+using Avalonia.Layout;
|
|
|
+using Avalonia.Platform;
|
|
|
+using Avalonia.UnitTests;
|
|
|
+using Moq;
|
|
|
+using Xunit;
|
|
|
+
|
|
|
namespace Avalonia.Controls.UnitTests
|
|
|
{
|
|
|
- using System.Reactive;
|
|
|
- using System.Reactive.Subjects;
|
|
|
- using Moq;
|
|
|
- using Avalonia.Controls.Presenters;
|
|
|
- using Avalonia.Controls.Templates;
|
|
|
- using Avalonia.Input;
|
|
|
- using Avalonia.Input.Raw;
|
|
|
- using Avalonia.Layout;
|
|
|
- using Avalonia.Platform;
|
|
|
- using Avalonia.Rendering;
|
|
|
- using Avalonia.Styling;
|
|
|
- using Ploeh.AutoFixture;
|
|
|
- using Ploeh.AutoFixture.AutoMoq;
|
|
|
- using Splat;
|
|
|
- using Xunit;
|
|
|
-
|
|
|
public class WindowTests
|
|
|
{
|
|
|
[Fact]
|
|
|
public void Setting_Title_Should_Set_Impl_Title()
|
|
|
{
|
|
|
- using (Locator.CurrentMutable.WithResolver())
|
|
|
+ var windowImpl = new Mock<IWindowImpl>();
|
|
|
+ var services = new TestServices(
|
|
|
+ windowingPlatform: new MockWindowingPlatform(() => windowImpl.Object));
|
|
|
+
|
|
|
+ using (UnitTestApplication.Start(services))
|
|
|
{
|
|
|
- var windowImpl = new Mock<IWindowImpl>();
|
|
|
- Locator.CurrentMutable.RegisterConstant(windowImpl.Object, typeof(IWindowImpl));
|
|
|
+ AvaloniaLocator.CurrentMutable.BindToSelf(windowImpl.Object);
|
|
|
|
|
|
var target = new Window();
|
|
|
|
|
|
@@ -39,5 +32,90 @@ namespace Avalonia.Controls.UnitTests
|
|
|
windowImpl.Verify(x => x.SetTitle("Hello World"));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsVisible_Should_Initially_Be_False()
|
|
|
+ {
|
|
|
+ using (UnitTestApplication.Start(TestServices.MockWindowingPlatform))
|
|
|
+ {
|
|
|
+ var window = new Window();
|
|
|
+
|
|
|
+ Assert.False(window.IsVisible);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsVisible_Should_Be_True_After_Show()
|
|
|
+ {
|
|
|
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
|
|
|
+ {
|
|
|
+ var window = new Window();
|
|
|
+
|
|
|
+ window.Show();
|
|
|
+
|
|
|
+ Assert.True(window.IsVisible);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsVisible_Should_Be_True_After_ShowDialog()
|
|
|
+ {
|
|
|
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
|
|
|
+ {
|
|
|
+ var window = new Window();
|
|
|
+
|
|
|
+ var task = window.ShowDialog();
|
|
|
+
|
|
|
+ Assert.True(window.IsVisible);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsVisible_Should_Be_False_Atfer_Hide()
|
|
|
+ {
|
|
|
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
|
|
|
+ {
|
|
|
+ var window = new Window();
|
|
|
+
|
|
|
+ window.Show();
|
|
|
+ window.Hide();
|
|
|
+
|
|
|
+ Assert.False(window.IsVisible);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsVisible_Should_Be_False_Atfer_Close()
|
|
|
+ {
|
|
|
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
|
|
|
+ {
|
|
|
+ var window = new Window();
|
|
|
+
|
|
|
+ window.Show();
|
|
|
+ window.Close();
|
|
|
+
|
|
|
+ Assert.False(window.IsVisible);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void IsVisible_Should_Be_False_Atfer_Impl_Signals_Close()
|
|
|
+ {
|
|
|
+ var windowImpl = new Mock<IWindowImpl>();
|
|
|
+ windowImpl.SetupProperty(x => x.Closed);
|
|
|
+
|
|
|
+ var services = TestServices.StyledWindow.With(
|
|
|
+ windowingPlatform: new MockWindowingPlatform(() => windowImpl.Object));
|
|
|
+
|
|
|
+ using (UnitTestApplication.Start(services))
|
|
|
+ {
|
|
|
+ var window = new Window();
|
|
|
+
|
|
|
+ window.Show();
|
|
|
+ windowImpl.Object.Closed();
|
|
|
+
|
|
|
+ Assert.False(window.IsVisible);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|