Add AutoSpin test

This commit is contained in:
tznind
2023-03-27 20:26:36 +01:00
committed by Tigger Kindel
parent b41bf86df3
commit 13bbc6a2ba

View File

@@ -1,4 +1,5 @@
using Terminal.Gui;
using System.Threading.Tasks;
using Terminal.Gui;
using Xunit;
using Xunit.Abstractions;
@@ -12,6 +13,27 @@ namespace UnitTests.Views {
this.output = output;
}
[Fact, AutoInitShutdown]
public void TestSpinnerView_AutoSpin()
{
var view = GetSpinnerView ();
Assert.Empty (Application.MainLoop.timeouts);
view.AutoSpin ();
Assert.NotEmpty (Application.MainLoop.timeouts);
//More calls to AutoSpin do not add more timeouts
Assert.Equal (1,Application.MainLoop.timeouts.Count);
view.AutoSpin ();
view.AutoSpin ();
view.AutoSpin ();
Assert.Equal (1, Application.MainLoop.timeouts.Count);
// Dispose clears timeout
Assert.NotEmpty (Application.MainLoop.timeouts);
view.Dispose ();
Assert.Empty (Application.MainLoop.timeouts);
}
[Fact, AutoInitShutdown]
public void TestSpinnerView_ThrottlesAnimation ()
@@ -34,6 +56,14 @@ namespace UnitTests.Views {
expected = "/";
TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
Task.Delay (400).Wait();
view.SetNeedsDisplay ();
view.Redraw (view.Bounds);
expected = "─";
TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
}
[Fact, AutoInitShutdown]
public void TestSpinnerView_NoThrottle ()