1
0

TabStripTests.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System.Collections.ObjectModel;
  2. using System.Linq;
  3. using Moq;
  4. using Avalonia.Controls.Presenters;
  5. using Avalonia.Controls.Primitives;
  6. using Avalonia.Controls.Templates;
  7. using Avalonia.LogicalTree;
  8. using Avalonia.UnitTests;
  9. using Xunit;
  10. namespace Avalonia.Controls.UnitTests.Primitives
  11. {
  12. public class TabStripTests : ScopedTestBase
  13. {
  14. [Fact]
  15. public void First_Tab_Should_Be_Selected_By_Default()
  16. {
  17. var target = new TabStrip
  18. {
  19. Template = new FuncControlTemplate<TabStrip>(CreateTabStripTemplate),
  20. Items =
  21. {
  22. new TabItem
  23. {
  24. Name = "first"
  25. },
  26. new TabItem
  27. {
  28. Name = "second"
  29. },
  30. }
  31. };
  32. target.ApplyTemplate();
  33. Assert.Equal(0, target.SelectedIndex);
  34. Assert.Same(target.Items[0], target.SelectedItem);
  35. }
  36. [Fact]
  37. public void Setting_SelectedItem_Should_Set_Selection()
  38. {
  39. var target = new TabStrip
  40. {
  41. Template = new FuncControlTemplate<TabStrip>(CreateTabStripTemplate),
  42. Items =
  43. {
  44. new TabItem
  45. {
  46. Name = "first"
  47. },
  48. new TabItem
  49. {
  50. Name = "second"
  51. },
  52. },
  53. };
  54. target.SelectedItem = target.Items[1];
  55. target.ApplyTemplate();
  56. Assert.Equal(1, target.SelectedIndex);
  57. Assert.Same(target.Items[1], target.SelectedItem);
  58. }
  59. [Fact]
  60. public void Removing_Selected_Should_Select_First()
  61. {
  62. var target = new TabStrip
  63. {
  64. Template = new FuncControlTemplate<TabStrip>(CreateTabStripTemplate),
  65. Items =
  66. {
  67. new TabItem
  68. {
  69. Name = "first"
  70. },
  71. new TabItem
  72. {
  73. Name = "second"
  74. },
  75. new TabItem
  76. {
  77. Name = "3rd"
  78. },
  79. }
  80. };
  81. target.ApplyTemplate();
  82. target.SelectedItem = target.Items[1];
  83. Assert.Same(target.Items[1], target.SelectedItem);
  84. target.Items.RemoveAt(1);
  85. Assert.Equal(0, target.SelectedIndex);
  86. Assert.Same(target.Items[0], target.SelectedItem);
  87. Assert.Same("first", ((TabItem)target.SelectedItem).Name);
  88. }
  89. private Control CreateTabStripTemplate(TabStrip parent, INameScope scope)
  90. {
  91. return new ItemsPresenter
  92. {
  93. Name = "itemsPresenter",
  94. }.RegisterInNameScope(scope);
  95. }
  96. }
  97. }