| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using Avalonia.Platform;
- using Avalonia.Threading;
- using Avalonia.UnitTests;
- using Moq;
- using Xunit;
- namespace Avalonia.Controls.UnitTests;
- public class LoadedTests
- {
- [Fact]
- public void Window_Loads_And_Unloads()
- {
- // Some other tests are populating the queue and are not resetting the dispatcher, so we need to purge it
- Control.ResetLoadedQueueForUnitTests();
- using (UnitTestApplication.Start(TestServices.StyledWindow))
- {
- int loadedCount = 0, unloadedCount = 0;
- var target = new Window();
- target.Loaded += (_, _) => loadedCount++;
- target.Unloaded += (_, _) => unloadedCount++;
-
- Assert.Equal(0, loadedCount);
- Assert.Equal(0, unloadedCount);
-
- target.Show();
- Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
- Assert.True(target.IsLoaded);
- Assert.Equal(1, loadedCount);
- Assert.Equal(0, unloadedCount);
-
- target.Close();
-
- Assert.Equal(1, loadedCount);
- Assert.Equal(1, unloadedCount);
- Assert.False(target.IsLoaded);
- }
- }
-
- [Fact]
- public void Control_Loads_And_Unloads()
- {
- // Some other tests are populating the queue and are not resetting the dispatcher, so we need to purge it
- Control.ResetLoadedQueueForUnitTests();
- using (UnitTestApplication.Start(TestServices.StyledWindow))
- {
- int loadedCount = 0, unloadedCount = 0;
- var window = new Window();
- window.Show();
- var target = new Button();
- target.Loaded += (_, _) => loadedCount++;
- target.Unloaded += (_, _) => unloadedCount++;
-
- Assert.Equal(0, loadedCount);
- Assert.Equal(0, unloadedCount);
-
- window.Content = target;
- Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
- Assert.True(target.IsLoaded);
- Assert.Equal(1, loadedCount);
- Assert.Equal(0, unloadedCount);
-
- window.Content = null;
-
- Assert.Equal(1, loadedCount);
- Assert.Equal(1, unloadedCount);
- Assert.False(target.IsLoaded);
- }
- }
- }
|