LayoutTests.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using UnitTests;
  2. using Xunit.Abstractions;
  3. namespace UnitTests.LayoutTests;
  4. public class LayoutTests (ITestOutputHelper output) : TestsAllViews
  5. {
  6. [Theory]
  7. [SetupFakeDriver] // Required for spinner view that wants to register timeouts
  8. [MemberData (nameof (AllViewTypes))]
  9. public void AllViews_Layout_Does_Not_Draw (Type viewType)
  10. {
  11. // Required for spinner view that wants to register timeouts
  12. var view = (View)CreateInstanceIfNotGeneric (viewType);
  13. if (view == null)
  14. {
  15. output.WriteLine ($"Ignoring {viewType} - It's a Generic");
  16. return;
  17. }
  18. if (view is IDesignable designable)
  19. {
  20. designable.EnableForDesign ();
  21. }
  22. var drawContentCount = 0;
  23. view.DrawingContent += (s, e) => drawContentCount++;
  24. var layoutStartedCount = 0;
  25. view.SubViewLayout += (s, e) => layoutStartedCount++;
  26. var layoutCompleteCount = 0;
  27. view.SubViewsLaidOut += (s, e) => layoutCompleteCount++;
  28. view.SetNeedsLayout ();
  29. view.SetNeedsDraw();
  30. view.Layout ();
  31. Assert.Equal (0, drawContentCount);
  32. Assert.Equal (1, layoutStartedCount);
  33. Assert.Equal (1, layoutCompleteCount);
  34. }
  35. }