TitleTests.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System.Text;
  2. using Xunit.Abstractions;
  3. namespace Terminal.Gui.ViewTests;
  4. public class TitleTests (ITestOutputHelper output)
  5. {
  6. // Unit tests that verify look & feel of title are in BorderTests.cs
  7. [Fact]
  8. public void Set_Title_Fires_TitleChanged ()
  9. {
  10. var r = new View ();
  11. Assert.Equal (string.Empty, r.Title);
  12. string expectedOld = null;
  13. string expected = null;
  14. r.TitleChanged += (s, args) =>
  15. {
  16. Assert.Equal (r.Title, args.CurrentValue);
  17. };
  18. expected = "title";
  19. expectedOld = r.Title;
  20. r.Title = expected;
  21. Assert.Equal (expected, r.Title);
  22. r.Dispose ();
  23. }
  24. [Fact]
  25. public void Set_Title_Fires_TitleChanging ()
  26. {
  27. var r = new View ();
  28. Assert.Equal (string.Empty, r.Title);
  29. string expectedOld = null;
  30. string expectedDuring = null;
  31. string expectedAfter = null;
  32. var cancel = false;
  33. r.TitleChanging += (s, args) =>
  34. {
  35. Assert.Equal (expectedOld, args.CurrentValue);
  36. Assert.Equal (expectedDuring, args.NewValue);
  37. args.Cancel = cancel;
  38. };
  39. expectedOld = string.Empty;
  40. r.Title = expectedDuring = expectedAfter = "title";
  41. Assert.Equal (expectedAfter, r.Title);
  42. expectedOld = r.Title;
  43. r.Title = expectedDuring = expectedAfter = "a different title";
  44. Assert.Equal (expectedAfter, r.Title);
  45. // Now setup cancelling the change and change it back to "title"
  46. cancel = true;
  47. expectedOld = r.Title;
  48. r.Title = expectedDuring = "title";
  49. Assert.Equal (expectedAfter, r.Title);
  50. r.Dispose ();
  51. }
  52. // Setting Text does NOT set the HotKey
  53. [Fact]
  54. public void Title_Does_Set_HotKey ()
  55. {
  56. var view = new View { HotKeySpecifier = (Rune)'_', Title = "_Hello World" };
  57. Assert.Equal (Key.H, view.HotKey);
  58. }
  59. }