TitleTests.cs 2.3 KB

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