|
|
@@ -345,5 +345,62 @@ namespace Avalonia.Controls.UnitTests
|
|
|
Assert.False(hasExit);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Shutdown_NotCancellable_By_Preventing_Window_Close()
|
|
|
+ {
|
|
|
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
|
|
|
+ using(var lifetime = new ClassicDesktopStyleApplicationLifetime())
|
|
|
+ {
|
|
|
+ var hasExit = false;
|
|
|
+
|
|
|
+ lifetime.Exit += (s, e) => hasExit = true;
|
|
|
+
|
|
|
+ var windowA = new Window();
|
|
|
+
|
|
|
+ windowA.Show();
|
|
|
+
|
|
|
+ var windowB = new Window();
|
|
|
+
|
|
|
+ windowB.Show();
|
|
|
+
|
|
|
+ var raised = 0;
|
|
|
+
|
|
|
+ windowA.Closing += (sender, e) =>
|
|
|
+ {
|
|
|
+ e.Cancel = true;
|
|
|
+ ++raised;
|
|
|
+ };
|
|
|
+
|
|
|
+ lifetime.Shutdown();
|
|
|
+
|
|
|
+ Assert.Equal(1, raised);
|
|
|
+ Assert.True(hasExit);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Shutdown_Doesnt_Raise_Shutdown_Requested()
|
|
|
+ {
|
|
|
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
|
|
|
+ using(var lifetime = new ClassicDesktopStyleApplicationLifetime())
|
|
|
+ {
|
|
|
+ var hasExit = false;
|
|
|
+
|
|
|
+ lifetime.Exit += (s, e) => hasExit = true;
|
|
|
+
|
|
|
+ var raised = 0;
|
|
|
+
|
|
|
+ lifetime.ShutdownRequested += (sender, e) =>
|
|
|
+ {
|
|
|
+ ++raised;
|
|
|
+ };
|
|
|
+
|
|
|
+ lifetime.Shutdown();
|
|
|
+
|
|
|
+ Assert.Equal(0, raised);
|
|
|
+ Assert.True(hasExit);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|