csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.3 KiB
75 lines
2.3 KiB
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);
|
|
}
|
|
}
|
|
}
|
|
|