Browse Source

Make sure that tests inherit from ScropedTestBase (#18690)

pull/18723/head
Nikita Tsukanov 1 year ago
committed by GitHub
parent
commit
fedbb270c0
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      tests/Avalonia.Controls.UnitTests/ApplicationTests.cs
  2. 2
      tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs
  3. 5
      tests/Avalonia.Controls.UnitTests/Automation/ControlAutomationPeerTests.cs
  4. 3
      tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
  5. 4
      tests/Avalonia.Controls.UnitTests/BorderTests.cs
  6. 2
      tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs
  7. 3
      tests/Avalonia.Controls.UnitTests/CalendarTests.cs
  8. 2
      tests/Avalonia.Controls.UnitTests/CanvasTests.cs
  9. 2
      tests/Avalonia.Controls.UnitTests/CarouselTests.cs
  10. 3
      tests/Avalonia.Controls.UnitTests/ClassesTests.cs
  11. 2
      tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs
  12. 2
      tests/Avalonia.Controls.UnitTests/ContentControlTests.cs
  13. 2
      tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs
  14. 2
      tests/Avalonia.Controls.UnitTests/DatePickerTests.cs
  15. 4
      tests/Avalonia.Controls.UnitTests/DecoratorTests.cs
  16. 2
      tests/Avalonia.Controls.UnitTests/DesktopStyleApplicationLifetimeTests.cs
  17. 3
      tests/Avalonia.Controls.UnitTests/DockPanelTests.cs
  18. 2
      tests/Avalonia.Controls.UnitTests/FlyoutTests.cs
  19. 3
      tests/Avalonia.Controls.UnitTests/GridLengthTests.cs
  20. 3
      tests/Avalonia.Controls.UnitTests/HeaderedItemsControlTests .cs
  21. 2
      tests/Avalonia.Controls.UnitTests/HotKeyedControlsTests.cs
  22. 3
      tests/Avalonia.Controls.UnitTests/ImageTests.cs
  23. 2
      tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
  24. 3
      tests/Avalonia.Controls.UnitTests/ItemsSourceViewTests.cs
  25. 2
      tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs
  26. 2
      tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs
  27. 2
      tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs
  28. 2
      tests/Avalonia.Controls.UnitTests/LoadedTests.cs
  29. 2
      tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
  30. 2
      tests/Avalonia.Controls.UnitTests/MenuItemTests.cs
  31. 2
      tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs
  32. 3
      tests/Avalonia.Controls.UnitTests/Mixins/SelectableMixinTests.cs
  33. 3
      tests/Avalonia.Controls.UnitTests/NameScopeTests.cs
  34. 2
      tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs
  35. 2
      tests/Avalonia.Controls.UnitTests/PanelTests.cs
  36. 9
      tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
  37. 5
      tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs
  38. 3
      tests/Avalonia.Controls.UnitTests/Platform/StorageProviderHelperTests.cs
  39. 2
      tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_InTemplate.cs
  40. 4
      tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Layout.cs
  41. 2
      tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Standalone.cs
  42. 2
      tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Unrooted.cs
  43. 4
      tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs
  44. 2
      tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs
  45. 3
      tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests_ILogicalScrollable.cs
  46. 2
      tests/Avalonia.Controls.UnitTests/Presenters/TextPresenter_Tests.cs
  47. 2
      tests/Avalonia.Controls.UnitTests/Primitives/PopupRootTests.cs
  48. 2
      tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs
  49. 2
      tests/Avalonia.Controls.UnitTests/Primitives/RangeBaseTests.cs
  50. 3
      tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs
  51. 116
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs
  52. 2
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_AutoSelect.cs
  53. 2
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs
  54. 2
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_SelectedValue.cs
  55. 3
      tests/Avalonia.Controls.UnitTests/Primitives/TabStripTests.cs
  56. 2
      tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs
  57. 2
      tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs
  58. 3
      tests/Avalonia.Controls.UnitTests/Primitives/TrackTests.cs
  59. 3
      tests/Avalonia.Controls.UnitTests/Primitives/UniformGridTests.cs
  60. 2
      tests/Avalonia.Controls.UnitTests/RadioButtonTests.cs
  61. 2
      tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs
  62. 3
      tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs
  63. 35
      tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Multiple.cs
  64. 33
      tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs
  65. 2
      tests/Avalonia.Controls.UnitTests/Shapes/EllipseTests.cs
  66. 2
      tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs
  67. 2
      tests/Avalonia.Controls.UnitTests/Shapes/PolygonTests.cs
  68. 2
      tests/Avalonia.Controls.UnitTests/Shapes/PolylineTests.cs
  69. 2
      tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs
  70. 3
      tests/Avalonia.Controls.UnitTests/SliderTests.cs
  71. 2
      tests/Avalonia.Controls.UnitTests/SplitViewTests.cs
  72. 3
      tests/Avalonia.Controls.UnitTests/StackPanelTests.cs
  73. 2
      tests/Avalonia.Controls.UnitTests/TabControlTests.cs
  74. 3
      tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs
  75. 2
      tests/Avalonia.Controls.UnitTests/TextBlockTests.cs
  76. 2
      tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
  77. 2
      tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs
  78. 2
      tests/Avalonia.Controls.UnitTests/TimePickerTests.cs
  79. 2
      tests/Avalonia.Controls.UnitTests/ToolTipTests.cs
  80. 2
      tests/Avalonia.Controls.UnitTests/TopLevelTests.cs
  81. 2
      tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs
  82. 2
      tests/Avalonia.Controls.UnitTests/UserControlTests.cs
  83. 3
      tests/Avalonia.Controls.UnitTests/Utils/AncestorFinderTests.cs
  84. 3
      tests/Avalonia.Controls.UnitTests/Utils/CollectionChangedEventManagerTests.cs
  85. 2
      tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs
  86. 3
      tests/Avalonia.Controls.UnitTests/Utils/SafeEnumerableHashSetTests.cs
  87. 2
      tests/Avalonia.Controls.UnitTests/ViewboxTests.cs
  88. 83
      tests/Avalonia.Controls.UnitTests/VirtualizingCarouselPanelTests.cs
  89. 2
      tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs
  90. 4
      tests/Avalonia.Controls.UnitTests/WindowTests.cs
  91. 3
      tests/Avalonia.Controls.UnitTests/WrapPanelTests.cs
  92. 5
      tests/Avalonia.LeakTests/AvaloniaObjectTests.cs
  93. 3
      tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
  94. 3
      tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs
  95. 3
      tests/Avalonia.Markup.UnitTests/Data/BindingTests_Converters.cs
  96. 2
      tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs
  97. 3
      tests/Avalonia.Markup.UnitTests/Data/BindingTests_Delay.cs
  98. 2
      tests/Avalonia.Markup.UnitTests/Data/BindingTests_ElementName.cs
  99. 20
      tests/Avalonia.Markup.UnitTests/Data/BindingTests_Logging.cs
  100. 3
      tests/Avalonia.Markup.UnitTests/Data/BindingTests_Method.cs

2
tests/Avalonia.Controls.UnitTests/ApplicationTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ApplicationTests public class ApplicationTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Throws_ArgumentNullException_On_Run_If_MainWindow_Is_Null() public void Throws_ArgumentNullException_On_Run_If_MainWindow_Is_Null()

2
tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs

@ -16,7 +16,7 @@ using Moq;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class AutoCompleteBoxTests public class AutoCompleteBoxTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Search_Filters() public void Search_Filters()

5
tests/Avalonia.Controls.UnitTests/Automation/ControlAutomationPeerTests.cs

@ -2,6 +2,7 @@
using Avalonia.Automation.Peers; using Avalonia.Automation.Peers;
using Avalonia.Controls.Presenters; using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates; using Avalonia.Controls.Templates;
using Avalonia.UnitTests;
using Avalonia.VisualTree; using Avalonia.VisualTree;
using Xunit; using Xunit;
@ -11,7 +12,7 @@ namespace Avalonia.Controls.UnitTests.Automation
{ {
public class ControlAutomationPeerTests public class ControlAutomationPeerTests
{ {
public class Children public class Children : ScopedTestBase
{ {
[Fact] [Fact]
public void Creates_Children_For_Controls_In_Visual_Tree() public void Creates_Children_For_Controls_In_Visual_Tree()
@ -149,7 +150,7 @@ namespace Avalonia.Controls.UnitTests.Automation
} }
} }
public class Parent public class Parent : ScopedTestBase
{ {
[Fact] [Fact]
public void Connects_Peer_To_Tree_When_GetParent_Called() public void Connects_Peer_To_Tree_When_GetParent_Called()

3
tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj

@ -20,8 +20,7 @@
<ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" /> <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" /> <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
<ProjectReference Include="..\Avalonia.UnitTests\Avalonia.UnitTests.csproj" /> <ProjectReference Include="..\Avalonia.UnitTests\Avalonia.UnitTests.csproj" />
</ItemGroup> <Compile Include="../Shared/ScopedSanityCheck.cs"/>
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" /> <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup> </ItemGroup>
</Project> </Project>

4
tests/Avalonia.Controls.UnitTests/BorderTests.cs

@ -8,7 +8,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class BorderTests public class BorderTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Should_Return_BorderThickness_Plus_Padding_When_No_Child_Present() public void Measure_Should_Return_BorderThickness_Plus_Padding_When_No_Child_Present()
@ -46,7 +46,7 @@ namespace Avalonia.Controls.UnitTests
Assert.Equal(new Rect(6, 6, 0, 0), content.Bounds); Assert.Equal(new Rect(6, 6, 0, 0), content.Bounds);
} }
public class UseLayoutRounding public class UseLayoutRounding : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Rounds_Padding() public void Measure_Rounds_Padding()

2
tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs

@ -11,7 +11,7 @@ using System.Globalization;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class CalendarDatePickerTests public class CalendarDatePickerTests : ScopedTestBase
{ {
private static bool CompareDates(DateTime first, DateTime second) private static bool CompareDates(DateTime first, DateTime second)
{ {

3
tests/Avalonia.Controls.UnitTests/CalendarTests.cs

@ -3,10 +3,11 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Avalonia.UnitTests;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class CalendarTests public class CalendarTests : ScopedTestBase
{ {
private static bool CompareDates(DateTime first, DateTime second) private static bool CompareDates(DateTime first, DateTime second)
{ {

2
tests/Avalonia.Controls.UnitTests/CanvasTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class CanvasTests public class CanvasTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Left_Property_Should_Work() public void Left_Property_Should_Work()

2
tests/Avalonia.Controls.UnitTests/CarouselTests.cs

@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class CarouselTests public class CarouselTests : ScopedTestBase
{ {
[Fact] [Fact]
public void First_Item_Should_Be_Selected_By_Default() public void First_Item_Should_Be_Selected_By_Default()

3
tests/Avalonia.Controls.UnitTests/ClassesTests.cs

@ -1,9 +1,10 @@
using System; using System;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ClassesTests public class ClassesTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Duplicates_Should_Not_Be_Added() public void Duplicates_Should_Not_Be_Added()

2
tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs

@ -16,7 +16,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ComboBoxTests public class ComboBoxTests : ScopedTestBase
{ {
MouseTestHelper _helper = new MouseTestHelper(); MouseTestHelper _helper = new MouseTestHelper();

2
tests/Avalonia.Controls.UnitTests/ContentControlTests.cs

@ -15,7 +15,7 @@ using System.Collections.Generic;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ContentControlTests public class ContentControlTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Template_Should_Be_Instantiated() public void Template_Should_Be_Instantiated()

2
tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs

@ -13,7 +13,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ContextMenuTests public class ContextMenuTests : ScopedTestBase
{ {
private Mock<IPopupImpl> popupImpl; private Mock<IPopupImpl> popupImpl;
private MouseTestHelper _mouse = new MouseTestHelper(); private MouseTestHelper _mouse = new MouseTestHelper();

2
tests/Avalonia.Controls.UnitTests/DatePickerTests.cs

@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class DatePickerTests public class DatePickerTests : ScopedTestBase
{ {
[Fact] [Fact]
public void SelectedDateChanged_Should_Fire_When_SelectedDate_Set() public void SelectedDateChanged_Should_Fire_When_SelectedDate_Set()

4
tests/Avalonia.Controls.UnitTests/DecoratorTests.cs

@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class DecoratorTests public class DecoratorTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_Content_Should_Set_Child_Controls_Parent() public void Setting_Content_Should_Set_Child_Controls_Parent()
@ -118,7 +118,7 @@ namespace Avalonia.Controls.UnitTests
Assert.Equal(new Size(16, 16), target.DesiredSize); Assert.Equal(new Size(16, 16), target.DesiredSize);
} }
public class UseLayoutRounding public class UseLayoutRounding : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Rounds_Padding() public void Measure_Rounds_Padding()

2
tests/Avalonia.Controls.UnitTests/DesktopStyleApplicationLifetimeTests.cs

@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class DesktopStyleApplicationLifetimeTests public class DesktopStyleApplicationLifetimeTests : ScopedTestBase
{ {
IDispatcherImpl CreateDispatcherWithInstantMainLoop() IDispatcherImpl CreateDispatcherWithInstantMainLoop()
{ {

3
tests/Avalonia.Controls.UnitTests/DockPanelTests.cs

@ -1,8 +1,9 @@
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class DockPanelTests public class DockPanelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void DockPanel_Without_Child() public void DockPanel_Without_Child()

2
tests/Avalonia.Controls.UnitTests/FlyoutTests.cs

@ -18,7 +18,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class FlyoutTests public class FlyoutTests : ScopedTestBase
{ {
protected bool UseOverlayPopups { get; set; } protected bool UseOverlayPopups { get; set; }

3
tests/Avalonia.Controls.UnitTests/GridLengthTests.cs

@ -3,11 +3,12 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class GridLengthTests public class GridLengthTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Parse_Should_Parse_Auto() public void Parse_Should_Parse_Auto()

3
tests/Avalonia.Controls.UnitTests/HeaderedItemsControlTests .cs

@ -2,11 +2,12 @@ using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates; using Avalonia.Controls.Templates;
using Avalonia.LogicalTree; using Avalonia.LogicalTree;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class HeaderedItemsControlTests public class HeaderedItemsControlTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Control_Header_Should_Be_Logical_Child_Before_ApplyTemplate() public void Control_Header_Should_Be_Logical_Child_Before_ApplyTemplate()

2
tests/Avalonia.Controls.UnitTests/HotKeyedControlsTests.cs

@ -71,7 +71,7 @@ namespace Avalonia.Controls.UnitTests
} }
} }
public class HotKeyedControlsTests public class HotKeyedControlsTests : ScopedTestBase
{ {
private static Window PreparedWindow(object content = null) private static Window PreparedWindow(object content = null)
{ {

3
tests/Avalonia.Controls.UnitTests/ImageTests.cs

@ -1,11 +1,12 @@
using Moq; using Moq;
using Avalonia.Media; using Avalonia.Media;
using Avalonia.Media.Imaging; using Avalonia.Media.Imaging;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ImageTests public class ImageTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Should_Return_Correct_Size_For_No_Stretch() public void Measure_Should_Return_Correct_Size_For_No_Stretch()

2
tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs

@ -24,7 +24,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ItemsControlTests public class ItemsControlTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_ItemsSource_Should_Populate_Items() public void Setting_ItemsSource_Should_Populate_Items()

3
tests/Avalonia.Controls.UnitTests/ItemsSourceViewTests.cs

@ -5,11 +5,12 @@ using System.Collections.Specialized;
using System.Text; using System.Text;
using Avalonia.Collections; using Avalonia.Collections;
using Avalonia.Diagnostics; using Avalonia.Diagnostics;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ItemsSourceViewTests public class ItemsSourceViewTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Only_Subscribes_To_Source_CollectionChanged_When_CollectionChanged_Subscribed() public void Only_Subscribes_To_Source_CollectionChanged_When_CollectionChanged_Subscribed()

2
tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class LayoutTransformControlTests public class LayoutTransformControlTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_On_Scale_x2_Is_Correct() public void Measure_On_Scale_x2_Is_Correct()

2
tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs

@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ListBoxTests_Multiple public class ListBoxTests_Multiple : ScopedTestBase
{ {
private MouseTestHelper _helper = new MouseTestHelper(); private MouseTestHelper _helper = new MouseTestHelper();

2
tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs

@ -16,7 +16,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ListBoxTests_Single public class ListBoxTests_Single : ScopedTestBase
{ {
MouseTestHelper _mouse = new MouseTestHelper(); MouseTestHelper _mouse = new MouseTestHelper();

2
tests/Avalonia.Controls.UnitTests/LoadedTests.cs

@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests; namespace Avalonia.Controls.UnitTests;
public class LoadedTests public class LoadedTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Window_Loads_And_Unloads() public void Window_Loads_And_Unloads()

2
tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs

@ -18,7 +18,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class MaskedTextBoxTests public class MaskedTextBoxTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Opening_Context_Menu_Does_not_Lose_Selection() public void Opening_Context_Menu_Does_not_Lose_Selection()

2
tests/Avalonia.Controls.UnitTests/MenuItemTests.cs

@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class MenuItemTests public class MenuItemTests : ScopedTestBase
{ {
private Mock<IPopupImpl> popupImpl; private Mock<IPopupImpl> popupImpl;

2
tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs

@ -4,7 +4,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Mixins namespace Avalonia.Controls.UnitTests.Mixins
{ {
public class PressedMixinTests public class PressedMixinTests : ScopedTestBase
{ {
private MouseTestHelper _mouse = new MouseTestHelper(); private MouseTestHelper _mouse = new MouseTestHelper();

3
tests/Avalonia.Controls.UnitTests/Mixins/SelectableMixinTests.cs

@ -1,10 +1,11 @@
using Avalonia.Controls.Mixins; using Avalonia.Controls.Mixins;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Mixins namespace Avalonia.Controls.UnitTests.Mixins
{ {
public class SelectableMixinTests public class SelectableMixinTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Selected_Class_Should_Not_Initially_Be_Added() public void Selected_Class_Should_Not_Initially_Be_Added()

3
tests/Avalonia.Controls.UnitTests/NameScopeTests.cs

@ -1,9 +1,10 @@
using System; using System;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class NameScopeTests public class NameScopeTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Register_Registers_Element() public void Register_Registers_Element()

2
tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs

@ -11,7 +11,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class NumericUpDownTests public class NumericUpDownTests : ScopedTestBase
{ {
private static TestServices Services => TestServices.StyledWindow; private static TestServices Services => TestServices.StyledWindow;

2
tests/Avalonia.Controls.UnitTests/PanelTests.cs

@ -10,7 +10,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class PanelTests public class PanelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Adding_Control_To_Panel_Should_Set_Child_Controls_Parent() public void Adding_Control_To_Panel_Should_Set_Child_Controls_Parent()

9
tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs

@ -4,13 +4,14 @@ using Avalonia.Controls.Primitives;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.Input.GestureRecognizers; using Avalonia.Input.GestureRecognizers;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.UnitTests;
using Avalonia.VisualTree; using Avalonia.VisualTree;
using Moq; using Moq;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Platform namespace Avalonia.Controls.UnitTests.Platform
{ {
public class DefaultMenuInteractionHandlerTests public class DefaultMenuInteractionHandlerTests : ScopedTestBase
{ {
static PointerPressedEventArgs CreatePressed(object source) => new PointerPressedEventArgs(source, static PointerPressedEventArgs CreatePressed(object source) => new PointerPressedEventArgs(source,
new FakePointer(), (Visual)source, default,0, new PointerPointProperties (RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed), new FakePointer(), (Visual)source, default,0, new PointerPointProperties (RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed),
@ -21,7 +22,7 @@ namespace Avalonia.Controls.UnitTests.Platform
new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.LeftButtonReleased), new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.LeftButtonReleased),
default, MouseButton.Left); default, MouseButton.Left);
public class TopLevel public class TopLevel : ScopedTestBase
{ {
[Fact] [Fact]
public void Up_Opens_MenuItem_With_SubMenu() public void Up_Opens_MenuItem_With_SubMenu()
@ -227,7 +228,7 @@ namespace Avalonia.Controls.UnitTests.Platform
} }
} }
public class NonTopLevel public class NonTopLevel : ScopedTestBase
{ {
[Fact] [Fact]
public void Up_Selects_Previous_MenuItem() public void Up_Selects_Previous_MenuItem()
@ -546,7 +547,7 @@ namespace Avalonia.Controls.UnitTests.Platform
} }
} }
public class ContextMenu public class ContextMenu : ScopedTestBase
{ {
[Fact] [Fact]
public void Down_Selects_Selects_First_MenuItem_When_No_Selection() public void Down_Selects_Selects_First_MenuItem_When_No_Selection()

5
tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs

@ -102,10 +102,11 @@ public class ScreensTests : ScopedTestBase
} }
[Fact] [Fact]
public async Task Should_Raise_Event_When_Screen_Changed_From_Another_Thread() public void Should_Raise_Event_When_Screen_Changed_From_Another_Thread()
{ {
using var _ = UnitTestApplication.Start(TestServices.MockThreadingInterface); using var _ = UnitTestApplication.Start(TestServices.MockThreadingInterface);
Dispatcher.UIThread.VerifyAccess();
var hasChangedTimes = 0; var hasChangedTimes = 0;
var screens = new TestScreens(); var screens = new TestScreens();
screens.Changed = () => screens.Changed = () =>
@ -114,7 +115,7 @@ public class ScreensTests : ScopedTestBase
hasChangedTimes += 1; hasChangedTimes += 1;
}; };
await Task.Run(() => screens.PushNewScreens([1, 2])); ThreadRunHelper.RunOnDedicatedThread(() => screens.PushNewScreens([1, 2])).GetAwaiter().GetResult();
Dispatcher.UIThread.RunJobs(); Dispatcher.UIThread.RunJobs();
Assert.Equal(1, hasChangedTimes); Assert.Equal(1, hasChangedTimes);

3
tests/Avalonia.Controls.UnitTests/Platform/StorageProviderHelperTests.cs

@ -2,11 +2,12 @@ using System;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Avalonia.Platform.Storage.FileIO; using Avalonia.Platform.Storage.FileIO;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Platform; namespace Avalonia.Controls.UnitTests.Platform;
public class StorageProviderHelperTests public class StorageProviderHelperTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Can_Encode_And_Decode_Bookmark() public void Can_Encode_And_Decode_Bookmark()

2
tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_InTemplate.cs

@ -16,7 +16,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
/// <summary> /// <summary>
/// Tests for ContentControls that are hosted in a control template. /// Tests for ContentControls that are hosted in a control template.
/// </summary> /// </summary>
public class ContentPresenterTests_InTemplate public class ContentPresenterTests_InTemplate : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Register_With_Host_When_TemplatedParent_Set() public void Should_Register_With_Host_When_TemplatedParent_Set()

4
tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Layout.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters namespace Avalonia.Controls.UnitTests.Presenters
{ {
public class ContentPresenterTests_Layout public class ContentPresenterTests_Layout : ScopedTestBase
{ {
[Theory] [Theory]
[InlineData(HorizontalAlignment.Stretch, VerticalAlignment.Stretch, 0, 0, 100, 100)] [InlineData(HorizontalAlignment.Stretch, VerticalAlignment.Stretch, 0, 0, 100, 100)]
@ -234,7 +234,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
Assert.Equal(new Rect(32, 32, 0, 0), content.Bounds); Assert.Equal(new Rect(32, 32, 0, 0), content.Bounds);
} }
public class UseLayoutRounding public class UseLayoutRounding : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Rounds_Padding() public void Measure_Rounds_Padding()

2
tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Standalone.cs

@ -18,7 +18,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
/// <summary> /// <summary>
/// Tests for ContentControls that aren't hosted in a control template. /// Tests for ContentControls that aren't hosted in a control template.
/// </summary> /// </summary>
public class ContentPresenterTests_Standalone public class ContentPresenterTests_Standalone : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Set_Childs_Parent_To_Itself_Standalone() public void Should_Set_Childs_Parent_To_Itself_Standalone()

2
tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Unrooted.cs

@ -9,7 +9,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
/// <summary> /// <summary>
/// Tests for ContentControls that are not attached to a logical tree. /// Tests for ContentControls that are not attached to a logical tree.
/// </summary> /// </summary>
public class ContentPresenterTests_Unrooted public class ContentPresenterTests_Unrooted : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_Content_To_Control_Should_Not_Set_Child_Unless_UpdateChild_Called() public void Setting_Content_To_Control_Should_Not_Set_Child_Unless_UpdateChild_Called()

4
tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs

@ -13,7 +13,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters namespace Avalonia.Controls.UnitTests.Presenters
{ {
public class ItemsPresenterTests public class ItemsPresenterTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Register_With_Host_When_TemplatedParent_Set() public void Should_Register_With_Host_When_TemplatedParent_Set()
@ -37,7 +37,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
Assert.Equal(target.Panel, child); Assert.Equal(target.Panel, child);
} }
public class NonVirtualizingPanel public class NonVirtualizingPanel : ScopedTestBase
{ {
[Fact] [Fact]
public void Creates_Containers_For_Initial_Items() public void Creates_Containers_For_Initial_Items()

2
tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs

@ -9,7 +9,7 @@ using Xunit.Sdk;
namespace Avalonia.Controls.UnitTests.Presenters namespace Avalonia.Controls.UnitTests.Presenters
{ {
public class ScrollContentPresenterTests public class ScrollContentPresenterTests : NameScopeTests
{ {
[Theory] [Theory]
[InlineData(HorizontalAlignment.Stretch, VerticalAlignment.Stretch, 10, 10, 80, 80)] [InlineData(HorizontalAlignment.Stretch, VerticalAlignment.Stretch, 10, 10, 80, 80)]

3
tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests_ILogicalScrollable.cs

@ -3,11 +3,12 @@ using System.Reactive.Linq;
using Avalonia.Controls.Presenters; using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ScrollContentPresenterTests_ILogicalScrollable public class ScrollContentPresenterTests_ILogicalScrollable : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Should_Pass_Unchanged_Bounds_To_ILogicalScrollable() public void Measure_Should_Pass_Unchanged_Bounds_To_ILogicalScrollable()

2
tests/Avalonia.Controls.UnitTests/Presenters/TextPresenter_Tests.cs

@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters namespace Avalonia.Controls.UnitTests.Presenters
{ {
public class TextPresenter_Tests public class TextPresenter_Tests : ScopedTestBase
{ {
[Fact] [Fact]
public void TextPresenter_Can_Contain_Null_With_Password_Char_Set() public void TextPresenter_Can_Contain_Null_With_Password_Char_Set()

2
tests/Avalonia.Controls.UnitTests/Primitives/PopupRootTests.cs

@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class PopupRootTests public class PopupRootTests : ScopedTestBase
{ {
[Fact] [Fact]
public void PopupRoot_IsAttachedToLogicalTree_Is_True() public void PopupRoot_IsAttachedToLogicalTree_Is_True()

2
tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs

@ -23,7 +23,7 @@ using Avalonia.Media;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class PopupTests public class PopupTests : ScopedTestBase
{ {
protected bool UsePopupHost; protected bool UsePopupHost;

2
tests/Avalonia.Controls.UnitTests/Primitives/RangeBaseTests.cs

@ -12,7 +12,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class RangeBaseTests public class RangeBaseTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Maximum_Should_Be_Coerced_To_Minimum() public void Maximum_Should_Be_Coerced_To_Minimum()

3
tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs

@ -4,11 +4,12 @@ using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates; using Avalonia.Controls.Templates;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.Media; using Avalonia.Media;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class ScrollBarTests public class ScrollBarTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_Value_Should_Update_Track_Value() public void Setting_Value_Should_Update_Track_Value()

116
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

@ -1844,27 +1844,29 @@ namespace Avalonia.Controls.UnitTests.Primitives
} }
[Fact(Timeout = 2000)] [Fact(Timeout = 2000)]
public async Task MoveSelection_Wrap_Does_Not_Hang_With_No_Focusable_Controls() public Task MoveSelection_Wrap_Does_Not_Hang_With_No_Focusable_Controls() =>
{ // Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below.
// Issue #3094. // https://github.com/xunit/xunit/issues/2222
var target = new TestSelector ThreadRunHelper.RunOnDedicatedThread(() =>
{ {
Template = Template(), using var _ = UnitTestApplication.Start();
Items = // Issue #3094.
var target = new TestSelector
{ {
new ListBoxItem { Focusable = false }, Template = Template(),
new ListBoxItem { Focusable = false }, Items =
}, {
SelectedIndex = 0, new ListBoxItem { Focusable = false },
}; new ListBoxItem { Focusable = false },
},
target.Measure(new Size(100, 100)); SelectedIndex = 0,
target.Arrange(new Rect(0, 0, 100, 100)); };
// Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below. target.Measure(new Size(100, 100));
// https://github.com/xunit/xunit/issues/2222 target.Arrange(new Rect(0, 0, 100, 100));
await Task.Run(() => target.MoveSelection(NavigationDirection.Next, true));
} target.MoveSelection(NavigationDirection.Next, true);
});
[Fact] [Fact]
public void MoveSelection_Skips_Non_Focusable_Controls_When_Moving_To_Last_Item() public void MoveSelection_Skips_Non_Focusable_Controls_When_Moving_To_Last_Item()
@ -1907,50 +1909,54 @@ namespace Avalonia.Controls.UnitTests.Primitives
} }
[Fact(Timeout = 2000)] [Fact(Timeout = 2000)]
public async Task MoveSelection_Does_Not_Hang_When_All_Items_Are_Non_Focusable_And_We_Move_To_First_Item() public Task MoveSelection_Does_Not_Hang_When_All_Items_Are_Non_Focusable_And_We_Move_To_First_Item() =>
{
var target = new TestSelector
{
Template = Template(),
Items =
{
new ListBoxItem { Focusable = false },
new ListBoxItem { Focusable = false },
}
};
target.Measure(new Size(100, 100));
target.Arrange(new Rect(0, 0, 100, 100));
// Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below. // Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below.
// https://github.com/xunit/xunit/issues/2222 // https://github.com/xunit/xunit/issues/2222
await Task.Run(() => target.MoveSelection(NavigationDirection.First, true)); ThreadRunHelper.RunOnDedicatedThread(
() =>
{
using var _ = UnitTestApplication.Start();
var target = new TestSelector
{
Template = Template(),
Items =
{
new ListBoxItem { Focusable = false },
new ListBoxItem { Focusable = false },
}
};
Assert.Equal(-1, target.SelectedIndex); target.Measure(new Size(100, 100));
} target.Arrange(new Rect(0, 0, 100, 100));
target.MoveSelection(NavigationDirection.First, true);
Assert.Equal(-1, target.SelectedIndex);
});
[Fact(Timeout = 2000)] [Fact(Timeout = 2000)]
public async Task MoveSelection_Does_Not_Hang_When_All_Items_Are_Non_Focusable_And_We_Move_To_Last_Item() public Task MoveSelection_Does_Not_Hang_When_All_Items_Are_Non_Focusable_And_We_Move_To_Last_Item()
{ // Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below.
var target = new TestSelector // https://github.com/xunit/xunit/issues/2222
=> ThreadRunHelper.RunOnDedicatedThread(() =>
{ {
Template = Template(), var target = new TestSelector
Items =
{ {
new ListBoxItem { Focusable = false }, Template = Template(),
new ListBoxItem { Focusable = false }, Items =
} {
}; new ListBoxItem { Focusable = false },
new ListBoxItem { Focusable = false },
target.Measure(new Size(100, 100)); }
target.Arrange(new Rect(0, 0, 100, 100)); };
// Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below. target.Measure(new Size(100, 100));
// https://github.com/xunit/xunit/issues/2222 target.Arrange(new Rect(0, 0, 100, 100));
await Task.Run(() => target.MoveSelection(NavigationDirection.Last, true));
target.MoveSelection(NavigationDirection.Last, true);
Assert.Equal(-1, target.SelectedIndex); Assert.Equal(-1, target.SelectedIndex);
} });
[Fact] [Fact]
public void MoveSelection_Does_Select_Disabled_Controls() public void MoveSelection_Does_Select_Disabled_Controls()
@ -2247,9 +2253,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact] [Fact]
public void Setting_IsTextSearchEnabled_Enables_Or_Disables_Text_Search() public void Setting_IsTextSearchEnabled_Enables_Or_Disables_Text_Search()
{ {
var pti = Mock.Of<IDispatcherImpl>(x => x.CurrentThreadIsLoopThread == true); using (UnitTestApplication.Start(TestServices.StyledWindow.With()))
using (UnitTestApplication.Start(TestServices.StyledWindow.With(dispatcherImpl: pti)))
{ {
var items = new[] var items = new[]
{ {

2
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_AutoSelect.cs

@ -9,7 +9,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class SelectingItemsControlTests_AutoSelect public class SelectingItemsControlTests_AutoSelect : ScopedTestBase
{ {
[Fact] [Fact]
public void First_Item_Should_Be_Selected() public void First_Item_Should_Be_Selected()

2
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs

@ -22,7 +22,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class SelectingItemsControlTests_Multiple public class SelectingItemsControlTests_Multiple : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_SelectedIndex_Should_Add_To_SelectedItems() public void Setting_SelectedIndex_Should_Add_To_SelectedItems()

2
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_SelectedValue.cs

@ -13,7 +13,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class SelectingItemsControlTests_SelectedValue public class SelectingItemsControlTests_SelectedValue : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_SelectedItem_Sets_SelectedValue() public void Setting_SelectedItem_Sets_SelectedValue()

3
tests/Avalonia.Controls.UnitTests/Primitives/TabStripTests.cs

@ -5,11 +5,12 @@ using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates; using Avalonia.Controls.Templates;
using Avalonia.LogicalTree; using Avalonia.LogicalTree;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class TabStripTests public class TabStripTests : ScopedTestBase
{ {
[Fact] [Fact]
public void First_Tab_Should_Be_Selected_By_Default() public void First_Tab_Should_Be_Selected_By_Default()

2
tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs

@ -14,7 +14,7 @@ using Avalonia.Media;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class TemplatedControlTests public class TemplatedControlTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Template_Doesnt_Get_Executed_On_Set() public void Template_Doesnt_Get_Executed_On_Set()

2
tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs

@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.Primitives.UnitTests namespace Avalonia.Controls.Primitives.UnitTests
{ {
public class ToggleButtonTests public class ToggleButtonTests : ScopedTestBase
{ {
private const string uncheckedClass = ":unchecked"; private const string uncheckedClass = ":unchecked";
private const string checkedClass = ":checked"; private const string checkedClass = ":checked";

3
tests/Avalonia.Controls.UnitTests/Primitives/TrackTests.cs

@ -1,11 +1,12 @@
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Layout; using Avalonia.Layout;
using Avalonia.LogicalTree; using Avalonia.LogicalTree;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class TrackTests public class TrackTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Should_Return_Thumb_DesiredWidth_In_Vertical_Orientation() public void Measure_Should_Return_Thumb_DesiredWidth_In_Vertical_Orientation()

3
tests/Avalonia.Controls.UnitTests/Primitives/UniformGridTests.cs

@ -1,9 +1,10 @@
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives namespace Avalonia.Controls.UnitTests.Primitives
{ {
public class UniformGridTests public class UniformGridTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Grid_Columns_Equals_Rows_For_Auto_Columns_And_Rows() public void Grid_Columns_Equals_Rows_For_Auto_Columns_And_Rows()

2
tests/Avalonia.Controls.UnitTests/RadioButtonTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class RadioButtonTests public class RadioButtonTests : ScopedTestBase
{ {
[Theory] [Theory]
[InlineData(false)] [InlineData(false)]

2
tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs

@ -4,7 +4,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class RelativePanelTests public class RelativePanelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Lays_Out_1_Child_Next_the_other() public void Lays_Out_1_Child_Next_the_other()

3
tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs

@ -4,11 +4,12 @@ using System.Collections.Generic;
using System.Collections.Specialized; using System.Collections.Specialized;
using Avalonia.Collections; using Avalonia.Collections;
using Avalonia.Controls.Selection; using Avalonia.Controls.Selection;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Selection namespace Avalonia.Controls.UnitTests.Selection
{ {
public class InternalSelectionModelTests public class InternalSelectionModelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Selecting_Item_Adds_To_WritableSelectedItems() public void Selecting_Item_Adds_To_WritableSelectedItems()

35
tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Multiple.cs

@ -3,15 +3,16 @@ using System.Collections.Generic;
using System.Collections.Specialized; using System.Collections.Specialized;
using Avalonia.Collections; using Avalonia.Collections;
using Avalonia.Controls.Selection; using Avalonia.Controls.Selection;
using Avalonia.UnitTests;
using Xunit; using Xunit;
#nullable enable #nullable enable
namespace Avalonia.Controls.UnitTests.Selection namespace Avalonia.Controls.UnitTests.Selection
{ {
public class SelectionModelTests_Multiple public class SelectionModelTests_Multiple : ScopedTestBase
{ {
public class No_Source public class No_Source : ScopedTestBase
{ {
[Fact] [Fact]
public void Can_Select_Multiple_Items_Before_Source_Assigned() public void Can_Select_Multiple_Items_Before_Source_Assigned()
@ -210,7 +211,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedIndex public class SelectedIndex : ScopedTestBase
{ {
[Fact] [Fact]
public void SelectedIndex_Larger_Than_Source_Clears_Selection() public void SelectedIndex_Larger_Than_Source_Clears_Selection()
@ -301,7 +302,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedIndexes public class SelectedIndexes : ScopedTestBase
{ {
[Fact] [Fact]
public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes() public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes()
@ -323,7 +324,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedItem public class SelectedItem : ScopedTestBase
{ {
[Fact] [Fact]
public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes() public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes()
@ -345,7 +346,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedItems public class SelectedItems : ScopedTestBase
{ {
[Fact] [Fact]
public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes() public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes()
@ -367,7 +368,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class Select public class Select : ScopedTestBase
{ {
[Fact] [Fact]
public void Select_Sets_SelectedIndex_If_Previously_Unset() public void Select_Sets_SelectedIndex_If_Previously_Unset()
@ -449,7 +450,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectRange public class SelectRange : ScopedTestBase
{ {
[Fact] [Fact]
public void SelectRange_Selects_Items() public void SelectRange_Selects_Items()
@ -517,7 +518,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class Deselect public class Deselect : ScopedTestBase
{ {
[Fact] [Fact]
public void Deselect_Clears_Selected_Item() public void Deselect_Clears_Selected_Item()
@ -558,7 +559,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class DeselectRange public class DeselectRange : ScopedTestBase
{ {
[Fact] [Fact]
public void DeselectRange_Clears_Identical_Range() public void DeselectRange_Clears_Identical_Range()
@ -630,7 +631,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class Clear public class Clear : ScopedTestBase
{ {
[Fact] [Fact]
public void Clear_Raises_SelectionChanged() public void Clear_Raises_SelectionChanged()
@ -656,7 +657,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class AnchorIndex public class AnchorIndex : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_SelectedIndex_Sets_AnchorIndex() public void Setting_SelectedIndex_Sets_AnchorIndex()
@ -768,7 +769,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SingleSelect public class SingleSelect : ScopedTestBase
{ {
[Fact] [Fact]
public void Converting_To_Single_Selection_Removes_Multiple_Selection() public void Converting_To_Single_Selection_Removes_Multiple_Selection()
@ -816,7 +817,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class CollectionChanges public class CollectionChanges : ScopedTestBase
{ {
[Fact] [Fact]
public void Adding_Item_Before_Selected_Item_Updates_Indexes() public void Adding_Item_Before_Selected_Item_Updates_Indexes()
@ -1377,7 +1378,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class BatchUpdate public class BatchUpdate : ScopedTestBase
{ {
[Fact] [Fact]
public void Correctly_Batches_Selects() public void Correctly_Batches_Selects()
@ -1584,7 +1585,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class LostSelection public class LostSelection : ScopedTestBase
{ {
[Fact] [Fact]
public void LostSelection_Called_On_Clear() public void LostSelection_Called_On_Clear()
@ -1644,7 +1645,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SourceReset public class SourceReset : ScopedTestBase
{ {
[Fact] [Fact]
public void Can_Restore_Selection_In_SourceReset_Event() public void Can_Restore_Selection_In_SourceReset_Event()

33
tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs

@ -5,6 +5,7 @@ using System.Linq;
using Avalonia.Collections; using Avalonia.Collections;
using Avalonia.Controls.Selection; using Avalonia.Controls.Selection;
using Avalonia.Controls.Utils; using Avalonia.Controls.Utils;
using Avalonia.UnitTests;
using Xunit; using Xunit;
using CollectionChangedEventManager = Avalonia.Controls.Utils.CollectionChangedEventManager; using CollectionChangedEventManager = Avalonia.Controls.Utils.CollectionChangedEventManager;
@ -14,7 +15,7 @@ namespace Avalonia.Controls.UnitTests.Selection
{ {
public class SelectionModelTests_Single public class SelectionModelTests_Single
{ {
public class Source public class Source : ScopedTestBase
{ {
[Fact] [Fact]
public void Can_Select_Index_Before_Source_Assigned() public void Can_Select_Index_Before_Source_Assigned()
@ -324,7 +325,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedIndex public class SelectedIndex : ScopedTestBase
{ {
[Fact] [Fact]
public void SelectedIndex_Larger_Than_Source_Clears_Selection() public void SelectedIndex_Larger_Than_Source_Clears_Selection()
@ -454,7 +455,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedItem public class SelectedItem : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_SelectedItem_To_Valid_Item_Updates_Selection() public void Setting_SelectedItem_To_Valid_Item_Updates_Selection()
@ -496,7 +497,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedIndexes public class SelectedIndexes : ScopedTestBase
{ {
[Fact] [Fact]
public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes() public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes()
@ -538,7 +539,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectedItems public class SelectedItems : ScopedTestBase
{ {
[Fact] [Fact]
public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes() public void PropertyChanged_Is_Raised_When_SelectedIndex_Changes()
@ -580,7 +581,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class Select public class Select : ScopedTestBase
{ {
[Fact] [Fact]
public void Select_Sets_SelectedIndex() public void Select_Sets_SelectedIndex()
@ -664,7 +665,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SelectRange public class SelectRange : ScopedTestBase
{ {
[Fact] [Fact]
public void SelectRange_Throws() public void SelectRange_Throws()
@ -675,7 +676,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class Deselect public class Deselect : ScopedTestBase
{ {
[Fact] [Fact]
public void Deselect_Clears_Current_Selection() public void Deselect_Clears_Current_Selection()
@ -721,7 +722,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class DeselectRange public class DeselectRange : ScopedTestBase
{ {
[Fact] [Fact]
public void DeselectRange_Clears_Current_Selection_For_Intersecting_Range() public void DeselectRange_Clears_Current_Selection_For_Intersecting_Range()
@ -767,7 +768,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class Clear public class Clear : ScopedTestBase
{ {
[Fact] [Fact]
public void Clear_Raises_SelectionChanged() public void Clear_Raises_SelectionChanged()
@ -792,7 +793,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class AnchorIndex public class AnchorIndex : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_SelectedIndex_Sets_AnchorIndex() public void Setting_SelectedIndex_Sets_AnchorIndex()
@ -898,7 +899,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class SingleSelect public class SingleSelect : ScopedTestBase
{ {
[Fact] [Fact]
public void Converting_To_Multiple_Selection_Preserves_Selection() public void Converting_To_Multiple_Selection_Preserves_Selection()
@ -939,7 +940,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class CollectionChanges public class CollectionChanges : ScopedTestBase
{ {
[Fact] [Fact]
public void Adding_Item_Before_Selected_Item_Updates_Indexes() public void Adding_Item_Before_Selected_Item_Updates_Indexes()
@ -1273,7 +1274,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class BatchUpdate public class BatchUpdate : ScopedTestBase
{ {
[Fact] [Fact]
public void Changes_Do_Not_Take_Effect_Until_EndUpdate_Called() public void Changes_Do_Not_Take_Effect_Until_EndUpdate_Called()
@ -1309,7 +1310,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class LostSelection public class LostSelection : ScopedTestBase
{ {
[Fact] [Fact]
public void LostSelection_Called_On_Clear() public void LostSelection_Called_On_Clear()
@ -1421,7 +1422,7 @@ namespace Avalonia.Controls.UnitTests.Selection
} }
} }
public class UntypedInterface public class UntypedInterface : ScopedTestBase
{ {
[Fact] [Fact]
public void Raises_Untyped_SelectionChanged_Event() public void Raises_Untyped_SelectionChanged_Event()

2
tests/Avalonia.Controls.UnitTests/Shapes/EllipseTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes namespace Avalonia.Controls.UnitTests.Shapes
{ {
public class EllipseTests public class EllipseTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Does_Not_Set_RenderedGeometry_Rect() public void Measure_Does_Not_Set_RenderedGeometry_Rect()

2
tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes namespace Avalonia.Controls.UnitTests.Shapes
{ {
public class PathTests public class PathTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Path_With_Null_Data_Does_Not_Throw_On_Measure() public void Path_With_Null_Data_Does_Not_Throw_On_Measure()

2
tests/Avalonia.Controls.UnitTests/Shapes/PolygonTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes; namespace Avalonia.Controls.UnitTests.Shapes;
public class PolygonTests public class PolygonTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Polygon_Will_Update_Geometry_On_Shapes_Collection_Content_Change() public void Polygon_Will_Update_Geometry_On_Shapes_Collection_Content_Change()

2
tests/Avalonia.Controls.UnitTests/Shapes/PolylineTests.cs

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes; namespace Avalonia.Controls.UnitTests.Shapes;
public class PolylineTests public class PolylineTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Polyline_Will_Update_Geometry_On_Shapes_Collection_Content_Change() public void Polyline_Will_Update_Geometry_On_Shapes_Collection_Content_Change()

2
tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs

@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes namespace Avalonia.Controls.UnitTests.Shapes
{ {
public class RectangleTests public class RectangleTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Measure_Does_Not_Set_RenderedGeometry_Rect() public void Measure_Does_Not_Set_RenderedGeometry_Rect()

3
tests/Avalonia.Controls.UnitTests/SliderTests.cs

@ -2,11 +2,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using Avalonia.Layout; using Avalonia.Layout;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class SliderTests public class SliderTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Default_Orientation_Should_Be_Horizontal() public void Default_Orientation_Should_Be_Horizontal()

2
tests/Avalonia.Controls.UnitTests/SplitViewTests.cs

@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class SplitViewTests public class SplitViewTests : ScopedTestBase
{ {
[Fact] [Fact]
public void SplitView_PaneOpening_Should_Fire_Before_PaneOpened() public void SplitView_PaneOpening_Should_Fire_Before_PaneOpened()

3
tests/Avalonia.Controls.UnitTests/StackPanelTests.cs

@ -1,10 +1,11 @@
using System.Linq; using System.Linq;
using Avalonia.Layout; using Avalonia.Layout;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class StackPanelTests public class StackPanelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Lays_Out_Children_Vertically() public void Lays_Out_Children_Vertically()

2
tests/Avalonia.Controls.UnitTests/TabControlTests.cs

@ -21,7 +21,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class TabControlTests public class TabControlTests : ScopedTestBase
{ {
static TabControlTests() static TabControlTests()
{ {

3
tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs

@ -1,10 +1,11 @@
using System.Linq; using System.Linq;
using Avalonia.Controls.UnitTests; using Avalonia.Controls.UnitTests;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.Templates.UnitTests namespace Avalonia.Controls.Templates.UnitTests
{ {
public class TemplateExtensionsTests public class TemplateExtensionsTests : ScopedTestBase
{ {
/// <summary> /// <summary>
/// Control templates can themselves contain templated controls. Make sure that /// Control templates can themselves contain templated controls. Make sure that

2
tests/Avalonia.Controls.UnitTests/TextBlockTests.cs

@ -10,7 +10,7 @@ using static System.Net.Mime.MediaTypeNames;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class TextBlockTests public class TextBlockTests : ScopedTestBase
{ {
[Fact] [Fact]
public void DefaultBindingMode_Should_Be_OneWay() public void DefaultBindingMode_Should_Be_OneWay()

2
tests/Avalonia.Controls.UnitTests/TextBoxTests.cs

@ -22,7 +22,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class TextBoxTests public class TextBoxTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Opening_Context_Menu_Does_not_Lose_Selection() public void Opening_Context_Menu_Does_not_Lose_Selection()

2
tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs

@ -18,7 +18,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class TextBoxTests_DataValidation public class TextBoxTests_DataValidation : ScopedTestBase
{ {
[Fact] [Fact]
public void Setter_Exceptions_Should_Set_Error_Pseudoclass() public void Setter_Exceptions_Should_Set_Error_Pseudoclass()

2
tests/Avalonia.Controls.UnitTests/TimePickerTests.cs

@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class TimePickerTests public class TimePickerTests : ScopedTestBase
{ {
[Fact] [Fact]
public void SelectedTimeChanged_Should_Fire_When_SelectedTime_Set() public void SelectedTimeChanged_Should_Fire_When_SelectedTime_Set()

2
tests/Avalonia.Controls.UnitTests/ToolTipTests.cs

@ -63,7 +63,7 @@ namespace Avalonia.Controls.UnitTests
} }
} }
public abstract class ToolTipTests public abstract class ToolTipTests : ScopedTestBase
{ {
protected abstract TestServices ConfigureServices(TestServices baseServices); protected abstract TestServices ConfigureServices(TestServices baseServices);

2
tests/Avalonia.Controls.UnitTests/TopLevelTests.cs

@ -17,7 +17,7 @@ using static Avalonia.Controls.UnitTests.MaskedTextBoxTests;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class TopLevelTests public class TopLevelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void IsAttachedToLogicalTree_Is_True() public void IsAttachedToLogicalTree_Is_True()

2
tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs

@ -16,7 +16,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class TransitioningContentControlTests public class TransitioningContentControlTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Transition_Should_Not_Be_Run_When_First_Shown() public void Transition_Should_Not_Be_Run_When_First_Shown()

2
tests/Avalonia.Controls.UnitTests/UserControlTests.cs

@ -8,7 +8,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class UserControlTests public class UserControlTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Be_Styled_As_UserControl() public void Should_Be_Styled_As_UserControl()

3
tests/Avalonia.Controls.UnitTests/Utils/AncestorFinderTests.cs

@ -4,12 +4,13 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Controls.Utils; using Avalonia.Controls.Utils;
using Avalonia.UnitTests;
using Avalonia.VisualTree; using Avalonia.VisualTree;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Utils namespace Avalonia.Controls.UnitTests.Utils
{ {
public class AncestorFinderTests public class AncestorFinderTests : ScopedTestBase
{ {
[Fact] [Fact]
public void SanityCheck() public void SanityCheck()

3
tests/Avalonia.Controls.UnitTests/Utils/CollectionChangedEventManagerTests.cs

@ -4,12 +4,13 @@ using System.Collections.Specialized;
using System.Text; using System.Text;
using Avalonia.Collections; using Avalonia.Collections;
using Avalonia.Controls.Utils; using Avalonia.Controls.Utils;
using Avalonia.UnitTests;
using Xunit; using Xunit;
using CollectionChangedEventManager = Avalonia.Controls.Utils.CollectionChangedEventManager; using CollectionChangedEventManager = Avalonia.Controls.Utils.CollectionChangedEventManager;
namespace Avalonia.Controls.UnitTests.Utils namespace Avalonia.Controls.UnitTests.Utils
{ {
public class CollectionChangedEventManagerTests public class CollectionChangedEventManagerTests : ScopedTestBase
{ {
[Fact] [Fact]
public void AddListener_Listens_To_Events() public void AddListener_Listens_To_Events()

2
tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs

@ -10,7 +10,7 @@ using Factory = System.Func<int, System.Action<object>, Avalonia.Controls.Window
namespace Avalonia.Controls.UnitTests.Utils namespace Avalonia.Controls.UnitTests.Utils
{ {
public class HotKeyManagerTests public class HotKeyManagerTests : ScopedTestBase
{ {
[Fact] [Fact]
public void HotKeyManager_Should_Register_And_Unregister_Key_Binding() public void HotKeyManager_Should_Register_And_Unregister_Key_Binding()

3
tests/Avalonia.Controls.UnitTests/Utils/SafeEnumerableHashSetTests.cs

@ -1,10 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
using Avalonia.UnitTests;
using Avalonia.Utilities; using Avalonia.Utilities;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests.Utils namespace Avalonia.Controls.UnitTests.Utils
{ {
public class SafeEnumerableHashSetTests public class SafeEnumerableHashSetTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Set_Is_Not_Copied_Outside_Enumeration() public void Set_Is_Not_Copied_Outside_Enumeration()

2
tests/Avalonia.Controls.UnitTests/ViewboxTests.cs

@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class ViewboxTests public class ViewboxTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Viewbox_Stretch_Uniform_Child() public void Viewbox_Stretch_Uniform_Child()

83
tests/Avalonia.Controls.UnitTests/VirtualizingCarouselPanelTests.cs

@ -10,6 +10,7 @@ using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates; using Avalonia.Controls.Templates;
using Avalonia.Layout; using Avalonia.Layout;
using Avalonia.Threading;
using Avalonia.UnitTests; using Avalonia.UnitTests;
using Avalonia.VisualTree; using Avalonia.VisualTree;
using Moq; using Moq;
@ -19,7 +20,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class VirtualizingCarouselPanelTests public class VirtualizingCarouselPanelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Initial_Item_Is_Displayed() public void Initial_Item_Is_Displayed()
@ -134,7 +135,7 @@ namespace Avalonia.Controls.UnitTests
}); });
} }
public class Transitions public class Transitions : ScopedTestBase
{ {
[Fact] [Fact]
public void Initial_Item_Does_Not_Start_Transition() public void Initial_Item_Does_Not_Start_Transition()
@ -175,49 +176,59 @@ namespace Avalonia.Controls.UnitTests
public void Changing_SelectedIndex_transitions_forward_cycle() public void Changing_SelectedIndex_transitions_forward_cycle()
{ {
using var app = Start(); using var app = Start();
var items = new Control[] { new Button(), new Canvas(), new Label() }; Dispatcher.UIThread.Invoke(() => // This sets up a proper sync context
var transition = new Mock<IPageTransition>();
var (target, carousel) = CreateTarget(items, transition.Object);
var cycleindexes = new[] { 1, 2, 0};
for (int cycleIndex = 0; cycleIndex < cycleindexes.Length; cycleIndex++)
{ {
carousel.SelectedIndex = cycleindexes[cycleIndex]; var items = new Control[] { new Button(), new Canvas(), new Label() };
Layout(target); var transition = new Mock<IPageTransition>();
var (target, carousel) = CreateTarget(items, transition.Object);
var index = cycleIndex; var cycleindexes = new[] { 1, 2, 0 };
transition.Verify(x => x.Start(
index > 0 ? items[cycleindexes[index - 1]] : items[0], for (int cycleIndex = 0; cycleIndex < cycleindexes.Length; cycleIndex++)
items[cycleindexes[index]], {
true, carousel.SelectedIndex = cycleindexes[cycleIndex];
It.IsAny<CancellationToken>()), Layout(target);
Times.Once);
} Dispatcher.UIThread.RunJobs();
var index = cycleIndex;
transition.Verify(x => x.Start(
index > 0 ? items[cycleindexes[index - 1]] : items[0],
items[cycleindexes[index]],
true,
It.IsAny<CancellationToken>()),
Times.Once);
}
});
} }
[Fact] [Fact]
public void Changing_SelectedIndex_transitions_backward_cycle() public void Changing_SelectedIndex_transitions_backward_cycle()
{ {
using var app = Start(); using var app = Start();
var items = new Control[] { new Button(), new Canvas(), new Label() }; Dispatcher.UIThread.Invoke(() => // This sets up a proper sync context
var transition = new Mock<IPageTransition>(); {
var (target, carousel) = CreateTarget(items, transition.Object); var items = new Control[] { new Button(), new Canvas(), new Label() };
var transition = new Mock<IPageTransition>();
var (target, carousel) = CreateTarget(items, transition.Object);
var cycleindexes = new[] { 2, 1, 0}; var cycleindexes = new[] { 2, 1, 0 };
for (int cycleIndex = 0; cycleIndex < cycleindexes.Length; cycleIndex++) for (int cycleIndex = 0; cycleIndex < cycleindexes.Length; cycleIndex++)
{ {
carousel.SelectedIndex = cycleindexes[cycleIndex]; carousel.SelectedIndex = cycleindexes[cycleIndex];
Layout(target); Layout(target);
var index = cycleIndex; Dispatcher.UIThread.RunJobs();
transition.Verify(x => x.Start(
index > 0 ? items[cycleindexes[index - 1]] : items[0], var index = cycleIndex;
items[cycleindexes[index]], transition.Verify(x => x.Start(
false, index > 0 ? items[cycleindexes[index - 1]] : items[0],
It.IsAny<CancellationToken>()), items[cycleindexes[index]],
Times.Once); false,
} It.IsAny<CancellationToken>()),
Times.Once);
}
});
} }
[Fact] [Fact]

2
tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs

@ -17,7 +17,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class WindowBaseTests public class WindowBaseTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Activate_Should_Call_Impl_Activate() public void Activate_Should_Call_Impl_Activate()

4
tests/Avalonia.Controls.UnitTests/WindowTests.cs

@ -12,7 +12,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class WindowTests public class WindowTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Setting_Title_Should_Set_Impl_Title() public void Setting_Title_Should_Set_Impl_Title()
@ -672,7 +672,7 @@ namespace Avalonia.Controls.UnitTests
} }
} }
public class SizingTests public class SizingTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Child_Should_Be_Measured_With_Width_And_Height_If_SizeToContent_Is_Manual() public void Child_Should_Be_Measured_With_Width_And_Height_If_SizeToContent_Is_Manual()

3
tests/Avalonia.Controls.UnitTests/WrapPanelTests.cs

@ -1,10 +1,11 @@
using System; using System;
using Avalonia.Layout; using Avalonia.Layout;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Controls.UnitTests namespace Avalonia.Controls.UnitTests
{ {
public class WrapPanelTests public class WrapPanelTests : ScopedTestBase
{ {
[Fact] [Fact]
public void Lays_Out_Horizontally_On_Separate_Lines() public void Lays_Out_Horizontally_On_Separate_Lines()

5
tests/Avalonia.LeakTests/AvaloniaObjectTests.cs

@ -11,6 +11,7 @@ using Avalonia.Data.Core;
using Avalonia.Markup.Xaml.MarkupExtensions; using Avalonia.Markup.Xaml.MarkupExtensions;
using Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings; using Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings;
using Avalonia.Threading; using Avalonia.Threading;
using Avalonia.UnitTests;
using JetBrains.dotMemoryUnit; using JetBrains.dotMemoryUnit;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
@ -18,7 +19,7 @@ using Xunit.Abstractions;
namespace Avalonia.LeakTests namespace Avalonia.LeakTests
{ {
[DotMemoryUnit(FailIfRunWithoutSupport = false)] [DotMemoryUnit(FailIfRunWithoutSupport = false)]
public class AvaloniaObjectTests public class AvaloniaObjectTests : ScopedTestBase
{ {
public AvaloniaObjectTests(ITestOutputHelper atr) public AvaloniaObjectTests(ITestOutputHelper atr)
{ {
@ -159,7 +160,7 @@ namespace Avalonia.LeakTests
} }
var weakTarget = SetupBinding(); var weakTarget = SetupBinding();
CollectGarbage(); CollectGarbage();
Assert.False(weakTarget.IsAlive); Assert.False(weakTarget.IsAlive);
} }

3
tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj

@ -16,8 +16,7 @@
<ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" /> <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" /> <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
<ProjectReference Include="..\Avalonia.UnitTests\Avalonia.UnitTests.csproj" /> <ProjectReference Include="..\Avalonia.UnitTests\Avalonia.UnitTests.csproj" />
</ItemGroup> <Compile Include="../Shared/ScopedSanityCheck.cs"/>
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup> </ItemGroup>
</Project> </Project>

3
tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs

@ -7,12 +7,13 @@ using Avalonia.Controls;
using Avalonia.Data; using Avalonia.Data;
using Avalonia.Data.Converters; using Avalonia.Data.Converters;
using Avalonia.Threading; using Avalonia.Threading;
using Avalonia.UnitTests;
using Moq; using Moq;
using Xunit; using Xunit;
namespace Avalonia.Markup.UnitTests.Data namespace Avalonia.Markup.UnitTests.Data
{ {
public class BindingTests public class BindingTests : ScopedTestBase
{ {
[Fact] [Fact]
public void OneWay_Binding_Should_Be_Set_Up() public void OneWay_Binding_Should_Be_Set_Up()

3
tests/Avalonia.Markup.UnitTests/Data/BindingTests_Converters.cs

@ -4,12 +4,13 @@ using Avalonia.Controls;
using Avalonia.Data; using Avalonia.Data;
using Avalonia.Data.Converters; using Avalonia.Data.Converters;
using Avalonia.Data.Core; using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Moq; using Moq;
using Xunit; using Xunit;
namespace Avalonia.Markup.UnitTests.Data namespace Avalonia.Markup.UnitTests.Data
{ {
public class BindingTests_Converters public class BindingTests_Converters : ScopedTestBase
{ {
[Fact] [Fact]
public void Converter_Should_Be_Used() public void Converter_Should_Be_Used()

2
tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs

@ -13,7 +13,7 @@ namespace Avalonia.Markup.UnitTests.Data
{ {
public class BindingTests_DataValidation public class BindingTests_DataValidation
{ {
public abstract class TestBase<T> public abstract class TestBase<T> : ScopedTestBase
where T : AvaloniaProperty<int> where T : AvaloniaProperty<int>
{ {
[Fact] [Fact]

3
tests/Avalonia.Markup.UnitTests/Data/BindingTests_Delay.cs

@ -10,7 +10,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data; namespace Avalonia.Markup.UnitTests.Data;
public class BindingTests_Delay : IDisposable public class BindingTests_Delay : ScopedTestBase, IDisposable
{ {
private const int DelayMilliseconds = 10; private const int DelayMilliseconds = 10;
private const string InitialFooValue = "foo"; private const string InitialFooValue = "foo";
@ -39,6 +39,7 @@ public class BindingTests_Delay : IDisposable
public void Dispose() public void Dispose()
{ {
_app.Dispose(); _app.Dispose();
base.Dispose();
} }
[Fact] [Fact]

2
tests/Avalonia.Markup.UnitTests/Data/BindingTests_ElementName.cs

@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data namespace Avalonia.Markup.UnitTests.Data
{ {
public class BindingTests_ElementName public class BindingTests_ElementName : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Bind_To_Element_Path() public void Should_Bind_To_Element_Path()

20
tests/Avalonia.Markup.UnitTests/Data/BindingTests_Logging.cs

@ -20,9 +20,9 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data namespace Avalonia.Markup.UnitTests.Data
{ {
public class BindingTests_Logging public class BindingTests_Logging : ScopedTestBase
{ {
public class DataContext public class DataContext : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Not_Log_Missing_Member_On_Null_DataContext() public void Should_Not_Log_Missing_Member_On_Null_DataContext()
@ -68,7 +68,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class Source public class Source : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Log_Null_Source() public void Should_Log_Null_Source()
@ -96,7 +96,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class LogicalAncestor public class LogicalAncestor : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Log_Ancestor_Not_Found() public void Should_Log_Ancestor_Not_Found()
@ -124,7 +124,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class VisualAncestor public class VisualAncestor : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Log_Ancestor_Not_Found() public void Should_Log_Ancestor_Not_Found()
@ -187,7 +187,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class NamedElement public class NamedElement : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Log_NameScope_Not_Found() public void Should_Log_NameScope_Not_Found()
@ -233,7 +233,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class Converter public class Converter : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Log_Error_For_Unconvertible_Type() public void Should_Log_Error_For_Unconvertible_Type()
@ -275,7 +275,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class Fallback public class Fallback : ScopedTestBase
{ {
[Theory] [Theory]
[InlineData(true)] [InlineData(true)]
@ -324,7 +324,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class NonControlDataContext public class NonControlDataContext : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Not_Log_Missing_Member_On_Null_DataContext() public void Should_Not_Log_Missing_Member_On_Null_DataContext()
@ -369,7 +369,7 @@ namespace Avalonia.Markup.UnitTests.Data
} }
} }
public class CompiledBinding public class CompiledBinding : ScopedTestBase
{ {
[Fact] [Fact]
public void Should_Log_For_Invalid_DataContext_Type() public void Should_Log_For_Invalid_DataContext_Type()

3
tests/Avalonia.Markup.UnitTests/Data/BindingTests_Method.cs

@ -2,11 +2,12 @@
using Avalonia.Data; using Avalonia.Data;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.UnitTests;
using Xunit; using Xunit;
namespace Avalonia.Markup.UnitTests.Data namespace Avalonia.Markup.UnitTests.Data
{ {
public class BindingTests_Method public class BindingTests_Method : ScopedTestBase
{ {
[Fact] [Fact]
public void Binding_To_Private_Methods_Shouldnt_Work() public void Binding_To_Private_Methods_Shouldnt_Work()

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save