PopoverBaseImplTests.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using Terminal.Gui;
  3. using Terminal.Gui.App;
  4. using Xunit;
  5. public class PopoverBaseImplTests
  6. {
  7. // Minimal concrete implementation for testing
  8. private class TestPopover : PopoverBaseImpl { }
  9. [Fact]
  10. public void Constructor_SetsDefaults ()
  11. {
  12. var popover = new TestPopover ();
  13. Assert.Equal ("popoverBaseImpl", popover.Id);
  14. Assert.True (popover.CanFocus);
  15. Assert.Equal (Dim.Fill (), popover.Width);
  16. Assert.Equal (Dim.Fill (), popover.Height);
  17. Assert.True (popover.ViewportSettings.HasFlag (ViewportSettingsFlags.Transparent));
  18. Assert.True (popover.ViewportSettings.HasFlag (ViewportSettingsFlags.TransparentMouse));
  19. }
  20. [Fact]
  21. public void Toplevel_Property_CanBeSetAndGet ()
  22. {
  23. var popover = new TestPopover ();
  24. var top = new Toplevel ();
  25. popover.Toplevel = top;
  26. Assert.Same (top, popover.Toplevel);
  27. }
  28. [Fact]
  29. public void Show_ThrowsIfPopoverMissingRequiredFlags ()
  30. {
  31. var popover = new TestPopover ();
  32. // Popover missing Transparent flags
  33. popover.ViewportSettings = ViewportSettingsFlags.None; // Remove required flags
  34. var popoverManager = new ApplicationPopover ();
  35. // Test missing Transparent flags
  36. Assert.ThrowsAny<Exception> (() => popoverManager.Show (popover));
  37. }
  38. [Fact]
  39. public void Show_ThrowsIfPopoverMissingQuitCommand ()
  40. {
  41. var popover = new TestPopover ();
  42. // Popover missing Command.Quit binding
  43. popover.KeyBindings.Clear (); // Remove all key bindings
  44. var popoverManager = new ApplicationPopover ();
  45. Assert.ThrowsAny<Exception> (() => popoverManager.Show (popover));
  46. }
  47. [Fact]
  48. public void Show_DoesNotThrow_BasePopoverImpl ()
  49. {
  50. var popover = new TestPopover ();
  51. var popoverManager = new ApplicationPopover ();
  52. popoverManager.Show (popover);
  53. }
  54. }