1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using UnitTests;
- using Xunit.Abstractions;
- namespace Terminal.Gui.LayoutTests;
- public class AllViewsDrawTests (ITestOutputHelper output) : TestsAllViews
- {
- [Theory]
- [SetupFakeDriver] // Required for spinner view that wants to register timeouts
- [MemberData (nameof (AllViewTypes))]
- public void AllViews_Draw_Does_Not_Layout (Type viewType)
- {
- Application.ResetState (true);
- // Required for spinner view that wants to register timeouts
- Application.MainLoop = new MainLoop (new FakeMainLoop (Application.Driver));
- var view = (View)CreateInstanceIfNotGeneric (viewType);
- if (view == null)
- {
- output.WriteLine ($"Ignoring {viewType} - It's a Generic");
- return;
- }
- output.WriteLine ($"Testing {viewType}");
- if (view is IDesignable designable)
- {
- designable.EnableForDesign ();
- }
- var drawCompleteCount = 0;
- view.DrawComplete += (s, e) => drawCompleteCount++;
- var layoutStartedCount = 0;
- view.SubViewLayout += (s, e) => layoutStartedCount++;
- var layoutCompleteCount = 0;
- view.SubViewsLaidOut += (s, e) => layoutCompleteCount++;
- view.SetNeedsLayout ();
- view.Layout ();
- Assert.Equal (0, drawCompleteCount);
- Assert.Equal (1, layoutStartedCount);
- Assert.Equal (1, layoutCompleteCount);
- if (view.Visible)
- {
- view.SetNeedsDraw ();
- view.Draw ();
- Assert.Equal (1, drawCompleteCount);
- Assert.Equal (1, layoutStartedCount);
- Assert.Equal (1, layoutCompleteCount);
- }
- }
- }
|