diff --git a/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs b/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs
index 58ddc8ca60..dbfe18f0b8 100644
--- a/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ApplicationTests
+ public class ApplicationTests : ScopedTestBase
{
[Fact]
public void Throws_ArgumentNullException_On_Run_If_MainWindow_Is_Null()
diff --git a/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs b/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs
index 67f55055ec..a50e501023 100644
--- a/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs
@@ -16,7 +16,7 @@ using Moq;
namespace Avalonia.Controls.UnitTests
{
- public class AutoCompleteBoxTests
+ public class AutoCompleteBoxTests : ScopedTestBase
{
[Fact]
public void Search_Filters()
diff --git a/tests/Avalonia.Controls.UnitTests/Automation/ControlAutomationPeerTests.cs b/tests/Avalonia.Controls.UnitTests/Automation/ControlAutomationPeerTests.cs
index 5cd47cf27b..1e6b2d0025 100644
--- a/tests/Avalonia.Controls.UnitTests/Automation/ControlAutomationPeerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Automation/ControlAutomationPeerTests.cs
@@ -2,6 +2,7 @@
using Avalonia.Automation.Peers;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates;
+using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
@@ -11,7 +12,7 @@ namespace Avalonia.Controls.UnitTests.Automation
{
public class ControlAutomationPeerTests
{
- public class Children
+ public class Children : ScopedTestBase
{
[Fact]
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]
public void Connects_Peer_To_Tree_When_GetParent_Called()
diff --git a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
index 2d077f4837..dcff6ea10a 100644
--- a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
+++ b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
@@ -20,8 +20,7 @@
-
-
+
diff --git a/tests/Avalonia.Controls.UnitTests/BorderTests.cs b/tests/Avalonia.Controls.UnitTests/BorderTests.cs
index dcfa9931c4..e31eb08964 100644
--- a/tests/Avalonia.Controls.UnitTests/BorderTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/BorderTests.cs
@@ -8,7 +8,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class BorderTests
+ public class BorderTests : ScopedTestBase
{
[Fact]
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);
}
- public class UseLayoutRounding
+ public class UseLayoutRounding : ScopedTestBase
{
[Fact]
public void Measure_Rounds_Padding()
diff --git a/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs b/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs
index 013369f102..9e720c66c8 100644
--- a/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs
@@ -11,7 +11,7 @@ using System.Globalization;
namespace Avalonia.Controls.UnitTests
{
- public class CalendarDatePickerTests
+ public class CalendarDatePickerTests : ScopedTestBase
{
private static bool CompareDates(DateTime first, DateTime second)
{
diff --git a/tests/Avalonia.Controls.UnitTests/CalendarTests.cs b/tests/Avalonia.Controls.UnitTests/CalendarTests.cs
index 13c6638308..7f464827d7 100644
--- a/tests/Avalonia.Controls.UnitTests/CalendarTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/CalendarTests.cs
@@ -3,10 +3,11 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
+using Avalonia.UnitTests;
namespace Avalonia.Controls.UnitTests
{
- public class CalendarTests
+ public class CalendarTests : ScopedTestBase
{
private static bool CompareDates(DateTime first, DateTime second)
{
diff --git a/tests/Avalonia.Controls.UnitTests/CanvasTests.cs b/tests/Avalonia.Controls.UnitTests/CanvasTests.cs
index 11a349f53e..5d84f71858 100644
--- a/tests/Avalonia.Controls.UnitTests/CanvasTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/CanvasTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class CanvasTests
+ public class CanvasTests : ScopedTestBase
{
[Fact]
public void Left_Property_Should_Work()
diff --git a/tests/Avalonia.Controls.UnitTests/CarouselTests.cs b/tests/Avalonia.Controls.UnitTests/CarouselTests.cs
index 2a35787f3b..4bcfe3009f 100644
--- a/tests/Avalonia.Controls.UnitTests/CarouselTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/CarouselTests.cs
@@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class CarouselTests
+ public class CarouselTests : ScopedTestBase
{
[Fact]
public void First_Item_Should_Be_Selected_By_Default()
diff --git a/tests/Avalonia.Controls.UnitTests/ClassesTests.cs b/tests/Avalonia.Controls.UnitTests/ClassesTests.cs
index bcd2b6ec1f..59fb1ce725 100644
--- a/tests/Avalonia.Controls.UnitTests/ClassesTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ClassesTests.cs
@@ -1,9 +1,10 @@
using System;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ClassesTests
+ public class ClassesTests : ScopedTestBase
{
[Fact]
public void Duplicates_Should_Not_Be_Added()
diff --git a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs
index 3033decca9..96ff5ff786 100644
--- a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs
@@ -16,7 +16,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ComboBoxTests
+ public class ComboBoxTests : ScopedTestBase
{
MouseTestHelper _helper = new MouseTestHelper();
diff --git a/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs b/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs
index 507227eff8..883f8cfd94 100644
--- a/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs
@@ -15,7 +15,7 @@ using System.Collections.Generic;
namespace Avalonia.Controls.UnitTests
{
- public class ContentControlTests
+ public class ContentControlTests : ScopedTestBase
{
[Fact]
public void Template_Should_Be_Instantiated()
diff --git a/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs b/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs
index a8b27e004b..e655c32f8e 100644
--- a/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs
@@ -13,7 +13,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ContextMenuTests
+ public class ContextMenuTests : ScopedTestBase
{
private Mock popupImpl;
private MouseTestHelper _mouse = new MouseTestHelper();
diff --git a/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs b/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs
index 198a3fd1f6..dd34455162 100644
--- a/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs
@@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class DatePickerTests
+ public class DatePickerTests : ScopedTestBase
{
[Fact]
public void SelectedDateChanged_Should_Fire_When_SelectedDate_Set()
diff --git a/tests/Avalonia.Controls.UnitTests/DecoratorTests.cs b/tests/Avalonia.Controls.UnitTests/DecoratorTests.cs
index fe58cd4c7f..5e37f4b486 100644
--- a/tests/Avalonia.Controls.UnitTests/DecoratorTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/DecoratorTests.cs
@@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class DecoratorTests
+ public class DecoratorTests : ScopedTestBase
{
[Fact]
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);
}
- public class UseLayoutRounding
+ public class UseLayoutRounding : ScopedTestBase
{
[Fact]
public void Measure_Rounds_Padding()
diff --git a/tests/Avalonia.Controls.UnitTests/DesktopStyleApplicationLifetimeTests.cs b/tests/Avalonia.Controls.UnitTests/DesktopStyleApplicationLifetimeTests.cs
index f015ca7128..7baf4c1f0b 100644
--- a/tests/Avalonia.Controls.UnitTests/DesktopStyleApplicationLifetimeTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/DesktopStyleApplicationLifetimeTests.cs
@@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class DesktopStyleApplicationLifetimeTests
+ public class DesktopStyleApplicationLifetimeTests : ScopedTestBase
{
IDispatcherImpl CreateDispatcherWithInstantMainLoop()
{
diff --git a/tests/Avalonia.Controls.UnitTests/DockPanelTests.cs b/tests/Avalonia.Controls.UnitTests/DockPanelTests.cs
index f88772af76..9676bd4f2b 100644
--- a/tests/Avalonia.Controls.UnitTests/DockPanelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/DockPanelTests.cs
@@ -1,8 +1,9 @@
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class DockPanelTests
+ public class DockPanelTests : ScopedTestBase
{
[Fact]
public void DockPanel_Without_Child()
diff --git a/tests/Avalonia.Controls.UnitTests/FlyoutTests.cs b/tests/Avalonia.Controls.UnitTests/FlyoutTests.cs
index d748a709a5..c15c8ced20 100644
--- a/tests/Avalonia.Controls.UnitTests/FlyoutTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/FlyoutTests.cs
@@ -18,7 +18,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class FlyoutTests
+ public class FlyoutTests : ScopedTestBase
{
protected bool UseOverlayPopups { get; set; }
diff --git a/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs b/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs
index 10e52d1d95..d05b67c4f2 100644
--- a/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs
@@ -3,11 +3,12 @@ using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class GridLengthTests
+ public class GridLengthTests : ScopedTestBase
{
[Fact]
public void Parse_Should_Parse_Auto()
diff --git a/tests/Avalonia.Controls.UnitTests/HeaderedItemsControlTests .cs b/tests/Avalonia.Controls.UnitTests/HeaderedItemsControlTests .cs
index 78012a4d25..9b7ad06b28 100644
--- a/tests/Avalonia.Controls.UnitTests/HeaderedItemsControlTests .cs
+++ b/tests/Avalonia.Controls.UnitTests/HeaderedItemsControlTests .cs
@@ -2,11 +2,12 @@ using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.LogicalTree;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class HeaderedItemsControlTests
+ public class HeaderedItemsControlTests : ScopedTestBase
{
[Fact]
public void Control_Header_Should_Be_Logical_Child_Before_ApplyTemplate()
diff --git a/tests/Avalonia.Controls.UnitTests/HotKeyedControlsTests.cs b/tests/Avalonia.Controls.UnitTests/HotKeyedControlsTests.cs
index c15fc7b916..9494fd0aab 100644
--- a/tests/Avalonia.Controls.UnitTests/HotKeyedControlsTests.cs
+++ b/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)
{
diff --git a/tests/Avalonia.Controls.UnitTests/ImageTests.cs b/tests/Avalonia.Controls.UnitTests/ImageTests.cs
index 47158f4811..5e6f82ac3c 100644
--- a/tests/Avalonia.Controls.UnitTests/ImageTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ImageTests.cs
@@ -1,11 +1,12 @@
using Moq;
using Avalonia.Media;
using Avalonia.Media.Imaging;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ImageTests
+ public class ImageTests : ScopedTestBase
{
[Fact]
public void Measure_Should_Return_Correct_Size_For_No_Stretch()
diff --git a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
index 3983ac503d..423c141d07 100644
--- a/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
@@ -24,7 +24,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ItemsControlTests
+ public class ItemsControlTests : ScopedTestBase
{
[Fact]
public void Setting_ItemsSource_Should_Populate_Items()
diff --git a/tests/Avalonia.Controls.UnitTests/ItemsSourceViewTests.cs b/tests/Avalonia.Controls.UnitTests/ItemsSourceViewTests.cs
index faa143bb8e..ab5f4c5e16 100644
--- a/tests/Avalonia.Controls.UnitTests/ItemsSourceViewTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ItemsSourceViewTests.cs
@@ -5,11 +5,12 @@ using System.Collections.Specialized;
using System.Text;
using Avalonia.Collections;
using Avalonia.Diagnostics;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ItemsSourceViewTests
+ public class ItemsSourceViewTests : ScopedTestBase
{
[Fact]
public void Only_Subscribes_To_Source_CollectionChanged_When_CollectionChanged_Subscribed()
diff --git a/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs b/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs
index c8a5af05a4..2fcc15f434 100644
--- a/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/LayoutTransformControlTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class LayoutTransformControlTests
+ public class LayoutTransformControlTests : ScopedTestBase
{
[Fact]
public void Measure_On_Scale_x2_Is_Correct()
diff --git a/tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs b/tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs
index 107ce4d33f..8dc9a0c412 100644
--- a/tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs
+++ b/tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs
@@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ListBoxTests_Multiple
+ public class ListBoxTests_Multiple : ScopedTestBase
{
private MouseTestHelper _helper = new MouseTestHelper();
diff --git a/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs b/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs
index e7acceb2c4..4e7b06e6e0 100644
--- a/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs
+++ b/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs
@@ -16,7 +16,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ListBoxTests_Single
+ public class ListBoxTests_Single : ScopedTestBase
{
MouseTestHelper _mouse = new MouseTestHelper();
diff --git a/tests/Avalonia.Controls.UnitTests/LoadedTests.cs b/tests/Avalonia.Controls.UnitTests/LoadedTests.cs
index 288b48c0ab..8153a49a09 100644
--- a/tests/Avalonia.Controls.UnitTests/LoadedTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/LoadedTests.cs
@@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests;
-public class LoadedTests
+public class LoadedTests : ScopedTestBase
{
[Fact]
public void Window_Loads_And_Unloads()
diff --git a/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs b/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
index 39728ed865..25b0780f8b 100644
--- a/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
@@ -18,7 +18,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class MaskedTextBoxTests
+ public class MaskedTextBoxTests : ScopedTestBase
{
[Fact]
public void Opening_Context_Menu_Does_not_Lose_Selection()
diff --git a/tests/Avalonia.Controls.UnitTests/MenuItemTests.cs b/tests/Avalonia.Controls.UnitTests/MenuItemTests.cs
index 64c675fa18..e7979cedcf 100644
--- a/tests/Avalonia.Controls.UnitTests/MenuItemTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/MenuItemTests.cs
@@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class MenuItemTests
+ public class MenuItemTests : ScopedTestBase
{
private Mock popupImpl;
diff --git a/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs b/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs
index 0ff1f40121..7a2d0bda73 100644
--- a/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs
@@ -4,7 +4,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Mixins
{
- public class PressedMixinTests
+ public class PressedMixinTests : ScopedTestBase
{
private MouseTestHelper _mouse = new MouseTestHelper();
diff --git a/tests/Avalonia.Controls.UnitTests/Mixins/SelectableMixinTests.cs b/tests/Avalonia.Controls.UnitTests/Mixins/SelectableMixinTests.cs
index c0610146b7..10509d4c89 100644
--- a/tests/Avalonia.Controls.UnitTests/Mixins/SelectableMixinTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Mixins/SelectableMixinTests.cs
@@ -1,10 +1,11 @@
using Avalonia.Controls.Mixins;
using Avalonia.Controls.Primitives;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests.Mixins
{
- public class SelectableMixinTests
+ public class SelectableMixinTests : ScopedTestBase
{
[Fact]
public void Selected_Class_Should_Not_Initially_Be_Added()
diff --git a/tests/Avalonia.Controls.UnitTests/NameScopeTests.cs b/tests/Avalonia.Controls.UnitTests/NameScopeTests.cs
index 888b3b3d24..e613b2499d 100644
--- a/tests/Avalonia.Controls.UnitTests/NameScopeTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/NameScopeTests.cs
@@ -1,9 +1,10 @@
using System;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class NameScopeTests
+ public class NameScopeTests : ScopedTestBase
{
[Fact]
public void Register_Registers_Element()
diff --git a/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs b/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs
index 10139be0d4..03213cd0d1 100644
--- a/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs
@@ -11,7 +11,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class NumericUpDownTests
+ public class NumericUpDownTests : ScopedTestBase
{
private static TestServices Services => TestServices.StyledWindow;
diff --git a/tests/Avalonia.Controls.UnitTests/PanelTests.cs b/tests/Avalonia.Controls.UnitTests/PanelTests.cs
index 313473a76a..b2680c02d7 100644
--- a/tests/Avalonia.Controls.UnitTests/PanelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/PanelTests.cs
@@ -10,7 +10,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class PanelTests
+ public class PanelTests : ScopedTestBase
{
[Fact]
public void Adding_Control_To_Panel_Should_Set_Child_Controls_Parent()
diff --git a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
index 3259ec1a4c..1e59a2ea9a 100644
--- a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
@@ -4,13 +4,14 @@ using Avalonia.Controls.Primitives;
using Avalonia.Input;
using Avalonia.Input.GestureRecognizers;
using Avalonia.Interactivity;
+using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Moq;
using Xunit;
namespace Avalonia.Controls.UnitTests.Platform
{
- public class DefaultMenuInteractionHandlerTests
+ public class DefaultMenuInteractionHandlerTests : ScopedTestBase
{
static PointerPressedEventArgs CreatePressed(object source) => new PointerPressedEventArgs(source,
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),
default, MouseButton.Left);
- public class TopLevel
+ public class TopLevel : ScopedTestBase
{
[Fact]
public void Up_Opens_MenuItem_With_SubMenu()
@@ -227,7 +228,7 @@ namespace Avalonia.Controls.UnitTests.Platform
}
}
- public class NonTopLevel
+ public class NonTopLevel : ScopedTestBase
{
[Fact]
public void Up_Selects_Previous_MenuItem()
@@ -546,7 +547,7 @@ namespace Avalonia.Controls.UnitTests.Platform
}
}
- public class ContextMenu
+ public class ContextMenu : ScopedTestBase
{
[Fact]
public void Down_Selects_Selects_First_MenuItem_When_No_Selection()
diff --git a/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs
index e9aae23214..c389106de5 100644
--- a/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs
@@ -102,10 +102,11 @@ public class ScreensTests : ScopedTestBase
}
[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);
+ Dispatcher.UIThread.VerifyAccess();
var hasChangedTimes = 0;
var screens = new TestScreens();
screens.Changed = () =>
@@ -114,7 +115,7 @@ public class ScreensTests : ScopedTestBase
hasChangedTimes += 1;
};
- await Task.Run(() => screens.PushNewScreens([1, 2]));
+ ThreadRunHelper.RunOnDedicatedThread(() => screens.PushNewScreens([1, 2])).GetAwaiter().GetResult();
Dispatcher.UIThread.RunJobs();
Assert.Equal(1, hasChangedTimes);
diff --git a/tests/Avalonia.Controls.UnitTests/Platform/StorageProviderHelperTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/StorageProviderHelperTests.cs
index 301301f61d..bae8497bf1 100644
--- a/tests/Avalonia.Controls.UnitTests/Platform/StorageProviderHelperTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Platform/StorageProviderHelperTests.cs
@@ -2,11 +2,12 @@ using System;
using System.Linq;
using System.Text;
using Avalonia.Platform.Storage.FileIO;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests.Platform;
-public class StorageProviderHelperTests
+public class StorageProviderHelperTests : ScopedTestBase
{
[Fact]
public void Can_Encode_And_Decode_Bookmark()
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_InTemplate.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_InTemplate.cs
index 34a2776bcd..740d32e647 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_InTemplate.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_InTemplate.cs
@@ -16,7 +16,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
///
/// Tests for ContentControls that are hosted in a control template.
///
- public class ContentPresenterTests_InTemplate
+ public class ContentPresenterTests_InTemplate : ScopedTestBase
{
[Fact]
public void Should_Register_With_Host_When_TemplatedParent_Set()
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Layout.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Layout.cs
index e82050528f..f3165b30e0 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Layout.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Layout.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters
{
- public class ContentPresenterTests_Layout
+ public class ContentPresenterTests_Layout : ScopedTestBase
{
[Theory]
[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);
}
- public class UseLayoutRounding
+ public class UseLayoutRounding : ScopedTestBase
{
[Fact]
public void Measure_Rounds_Padding()
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Standalone.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Standalone.cs
index c31b85ddf7..53887a90cd 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Standalone.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Standalone.cs
@@ -18,7 +18,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
///
/// Tests for ContentControls that aren't hosted in a control template.
///
- public class ContentPresenterTests_Standalone
+ public class ContentPresenterTests_Standalone : ScopedTestBase
{
[Fact]
public void Should_Set_Childs_Parent_To_Itself_Standalone()
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Unrooted.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Unrooted.cs
index f94c782b00..dcdd75fbb0 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Unrooted.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ContentPresenterTests_Unrooted.cs
@@ -9,7 +9,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
///
/// Tests for ContentControls that are not attached to a logical tree.
///
- public class ContentPresenterTests_Unrooted
+ public class ContentPresenterTests_Unrooted : ScopedTestBase
{
[Fact]
public void Setting_Content_To_Control_Should_Not_Set_Child_Unless_UpdateChild_Called()
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs
index 24aff3b566..47692d4c29 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs
@@ -13,7 +13,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters
{
- public class ItemsPresenterTests
+ public class ItemsPresenterTests : ScopedTestBase
{
[Fact]
public void Should_Register_With_Host_When_TemplatedParent_Set()
@@ -37,7 +37,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
Assert.Equal(target.Panel, child);
}
- public class NonVirtualizingPanel
+ public class NonVirtualizingPanel : ScopedTestBase
{
[Fact]
public void Creates_Containers_For_Initial_Items()
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs
index eb2129ae77..09ce6d5d27 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs
@@ -9,7 +9,7 @@ using Xunit.Sdk;
namespace Avalonia.Controls.UnitTests.Presenters
{
- public class ScrollContentPresenterTests
+ public class ScrollContentPresenterTests : NameScopeTests
{
[Theory]
[InlineData(HorizontalAlignment.Stretch, VerticalAlignment.Stretch, 10, 10, 80, 80)]
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests_ILogicalScrollable.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests_ILogicalScrollable.cs
index 8d7e634de9..7b66266523 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests_ILogicalScrollable.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ScrollContentPresenterTests_ILogicalScrollable.cs
@@ -3,11 +3,12 @@ using System.Reactive.Linq;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Input;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ScrollContentPresenterTests_ILogicalScrollable
+ public class ScrollContentPresenterTests_ILogicalScrollable : ScopedTestBase
{
[Fact]
public void Measure_Should_Pass_Unchanged_Bounds_To_ILogicalScrollable()
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/TextPresenter_Tests.cs b/tests/Avalonia.Controls.UnitTests/Presenters/TextPresenter_Tests.cs
index 69d30883c6..2d085fc25b 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/TextPresenter_Tests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/TextPresenter_Tests.cs
@@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters
{
- public class TextPresenter_Tests
+ public class TextPresenter_Tests : ScopedTestBase
{
[Fact]
public void TextPresenter_Can_Contain_Null_With_Password_Char_Set()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/PopupRootTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/PopupRootTests.cs
index 38bbc875c5..92c60c5010 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/PopupRootTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/PopupRootTests.cs
@@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class PopupRootTests
+ public class PopupRootTests : ScopedTestBase
{
[Fact]
public void PopupRoot_IsAttachedToLogicalTree_Is_True()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs
index 86eb5f83a4..139c4656a1 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs
@@ -23,7 +23,7 @@ using Avalonia.Media;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class PopupTests
+ public class PopupTests : ScopedTestBase
{
protected bool UsePopupHost;
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/RangeBaseTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/RangeBaseTests.cs
index e5d39212f7..38e5392c79 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/RangeBaseTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/RangeBaseTests.cs
@@ -12,7 +12,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class RangeBaseTests
+ public class RangeBaseTests : ScopedTestBase
{
[Fact]
public void Maximum_Should_Be_Coerced_To_Minimum()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs
index 49fda57092..8ec007c203 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs
@@ -4,11 +4,12 @@ using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.Input;
using Avalonia.Media;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class ScrollBarTests
+ public class ScrollBarTests : ScopedTestBase
{
[Fact]
public void Setting_Value_Should_Update_Track_Value()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs
index 13c6ee50a5..d5dce89cdf 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs
@@ -1844,27 +1844,29 @@ namespace Avalonia.Controls.UnitTests.Primitives
}
[Fact(Timeout = 2000)]
- public async Task MoveSelection_Wrap_Does_Not_Hang_With_No_Focusable_Controls()
- {
- // Issue #3094.
- var target = new TestSelector
+ 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.
+ // https://github.com/xunit/xunit/issues/2222
+ ThreadRunHelper.RunOnDedicatedThread(() =>
{
- Template = Template(),
- Items =
+ using var _ = UnitTestApplication.Start();
+ // Issue #3094.
+ var target = new TestSelector
{
- new ListBoxItem { Focusable = false },
- new ListBoxItem { Focusable = false },
- },
- SelectedIndex = 0,
- };
-
- target.Measure(new Size(100, 100));
- target.Arrange(new Rect(0, 0, 100, 100));
+ Template = Template(),
+ Items =
+ {
+ new ListBoxItem { Focusable = false },
+ new ListBoxItem { Focusable = false },
+ },
+ SelectedIndex = 0,
+ };
- // Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below.
- // https://github.com/xunit/xunit/issues/2222
- await Task.Run(() => target.MoveSelection(NavigationDirection.Next, true));
- }
+ target.Measure(new Size(100, 100));
+ target.Arrange(new Rect(0, 0, 100, 100));
+
+ target.MoveSelection(NavigationDirection.Next, true);
+ });
[Fact]
public void MoveSelection_Skips_Non_Focusable_Controls_When_Moving_To_Last_Item()
@@ -1907,50 +1909,54 @@ namespace Avalonia.Controls.UnitTests.Primitives
}
[Fact(Timeout = 2000)]
- public async 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));
-
+ public Task MoveSelection_Does_Not_Hang_When_All_Items_Are_Non_Focusable_And_We_Move_To_First_Item() =>
// Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below.
// 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)]
- public async Task MoveSelection_Does_Not_Hang_When_All_Items_Are_Non_Focusable_And_We_Move_To_Last_Item()
- {
- var target = new TestSelector
+ 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.
+ // https://github.com/xunit/xunit/issues/2222
+ => ThreadRunHelper.RunOnDedicatedThread(() =>
{
- Template = Template(),
- Items =
+ var target = new TestSelector
{
- new ListBoxItem { Focusable = false },
- new ListBoxItem { Focusable = false },
- }
- };
-
- target.Measure(new Size(100, 100));
- target.Arrange(new Rect(0, 0, 100, 100));
+ Template = Template(),
+ Items =
+ {
+ new ListBoxItem { Focusable = false },
+ new ListBoxItem { Focusable = false },
+ }
+ };
- // Timeout in xUnit doesn't work with synchronous methods so we need to apply hack below.
- // https://github.com/xunit/xunit/issues/2222
- await Task.Run(() => target.MoveSelection(NavigationDirection.Last, true));
+ target.Measure(new Size(100, 100));
+ target.Arrange(new Rect(0, 0, 100, 100));
+
+ target.MoveSelection(NavigationDirection.Last, true);
- Assert.Equal(-1, target.SelectedIndex);
- }
+ Assert.Equal(-1, target.SelectedIndex);
+ });
[Fact]
public void MoveSelection_Does_Select_Disabled_Controls()
@@ -2247,9 +2253,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Setting_IsTextSearchEnabled_Enables_Or_Disables_Text_Search()
{
- var pti = Mock.Of(x => x.CurrentThreadIsLoopThread == true);
-
- using (UnitTestApplication.Start(TestServices.StyledWindow.With(dispatcherImpl: pti)))
+ using (UnitTestApplication.Start(TestServices.StyledWindow.With()))
{
var items = new[]
{
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_AutoSelect.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_AutoSelect.cs
index 3ef93c7cda..dea04867c6 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_AutoSelect.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_AutoSelect.cs
@@ -9,7 +9,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class SelectingItemsControlTests_AutoSelect
+ public class SelectingItemsControlTests_AutoSelect : ScopedTestBase
{
[Fact]
public void First_Item_Should_Be_Selected()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs
index 368da442ef..5e8c9daeb2 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs
@@ -22,7 +22,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class SelectingItemsControlTests_Multiple
+ public class SelectingItemsControlTests_Multiple : ScopedTestBase
{
[Fact]
public void Setting_SelectedIndex_Should_Add_To_SelectedItems()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_SelectedValue.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_SelectedValue.cs
index a779e8d074..9625a31b9d 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_SelectedValue.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_SelectedValue.cs
@@ -13,7 +13,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class SelectingItemsControlTests_SelectedValue
+ public class SelectingItemsControlTests_SelectedValue : ScopedTestBase
{
[Fact]
public void Setting_SelectedItem_Sets_SelectedValue()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/TabStripTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/TabStripTests.cs
index d50f6e1d0d..b7a3d2d60a 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/TabStripTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/TabStripTests.cs
@@ -5,11 +5,12 @@ using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.LogicalTree;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class TabStripTests
+ public class TabStripTests : ScopedTestBase
{
[Fact]
public void First_Tab_Should_Be_Selected_By_Default()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs
index cb90e1217f..0d76484a34 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs
@@ -14,7 +14,7 @@ using Avalonia.Media;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class TemplatedControlTests
+ public class TemplatedControlTests : ScopedTestBase
{
[Fact]
public void Template_Doesnt_Get_Executed_On_Set()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs
index dbb3e0691d..9fc14f0b34 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs
@@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.Primitives.UnitTests
{
- public class ToggleButtonTests
+ public class ToggleButtonTests : ScopedTestBase
{
private const string uncheckedClass = ":unchecked";
private const string checkedClass = ":checked";
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/TrackTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/TrackTests.cs
index f4001a8ca1..5441e522a5 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/TrackTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/TrackTests.cs
@@ -1,11 +1,12 @@
using Avalonia.Controls.Primitives;
using Avalonia.Layout;
using Avalonia.LogicalTree;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class TrackTests
+ public class TrackTests : ScopedTestBase
{
[Fact]
public void Measure_Should_Return_Thumb_DesiredWidth_In_Vertical_Orientation()
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/UniformGridTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/UniformGridTests.cs
index d5cc450587..8f5d008ad3 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/UniformGridTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/UniformGridTests.cs
@@ -1,9 +1,10 @@
using Avalonia.Controls.Primitives;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests.Primitives
{
- public class UniformGridTests
+ public class UniformGridTests : ScopedTestBase
{
[Fact]
public void Grid_Columns_Equals_Rows_For_Auto_Columns_And_Rows()
diff --git a/tests/Avalonia.Controls.UnitTests/RadioButtonTests.cs b/tests/Avalonia.Controls.UnitTests/RadioButtonTests.cs
index d5e6f4885e..9d6447d7e0 100644
--- a/tests/Avalonia.Controls.UnitTests/RadioButtonTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/RadioButtonTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class RadioButtonTests
+ public class RadioButtonTests : ScopedTestBase
{
[Theory]
[InlineData(false)]
diff --git a/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs b/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs
index b3a75dafa7..26d7744566 100644
--- a/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/RelativePanelTests.cs
@@ -4,7 +4,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class RelativePanelTests
+ public class RelativePanelTests : ScopedTestBase
{
[Fact]
public void Lays_Out_1_Child_Next_the_other()
diff --git a/tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs b/tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs
index 224b89bf85..468b278c91 100644
--- a/tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs
@@ -4,11 +4,12 @@ using System.Collections.Generic;
using System.Collections.Specialized;
using Avalonia.Collections;
using Avalonia.Controls.Selection;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests.Selection
{
- public class InternalSelectionModelTests
+ public class InternalSelectionModelTests : ScopedTestBase
{
[Fact]
public void Selecting_Item_Adds_To_WritableSelectedItems()
diff --git a/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Multiple.cs b/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Multiple.cs
index dbbff91fcc..bad0f4ce32 100644
--- a/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Multiple.cs
+++ b/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Multiple.cs
@@ -3,15 +3,16 @@ using System.Collections.Generic;
using System.Collections.Specialized;
using Avalonia.Collections;
using Avalonia.Controls.Selection;
+using Avalonia.UnitTests;
using Xunit;
#nullable enable
namespace Avalonia.Controls.UnitTests.Selection
{
- public class SelectionModelTests_Multiple
+ public class SelectionModelTests_Multiple : ScopedTestBase
{
- public class No_Source
+ public class No_Source : ScopedTestBase
{
[Fact]
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]
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]
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]
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]
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]
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]
public void SelectRange_Selects_Items()
@@ -517,7 +518,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class Deselect
+ public class Deselect : ScopedTestBase
{
[Fact]
public void Deselect_Clears_Selected_Item()
@@ -558,7 +559,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class DeselectRange
+ public class DeselectRange : ScopedTestBase
{
[Fact]
public void DeselectRange_Clears_Identical_Range()
@@ -630,7 +631,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class Clear
+ public class Clear : ScopedTestBase
{
[Fact]
public void Clear_Raises_SelectionChanged()
@@ -656,7 +657,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class AnchorIndex
+ public class AnchorIndex : ScopedTestBase
{
[Fact]
public void Setting_SelectedIndex_Sets_AnchorIndex()
@@ -768,7 +769,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class SingleSelect
+ public class SingleSelect : ScopedTestBase
{
[Fact]
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]
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]
public void Correctly_Batches_Selects()
@@ -1584,7 +1585,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class LostSelection
+ public class LostSelection : ScopedTestBase
{
[Fact]
public void LostSelection_Called_On_Clear()
@@ -1644,7 +1645,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class SourceReset
+ public class SourceReset : ScopedTestBase
{
[Fact]
public void Can_Restore_Selection_In_SourceReset_Event()
diff --git a/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs b/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs
index f4dbdf5418..5eac2fc359 100644
--- a/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs
+++ b/tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs
@@ -5,6 +5,7 @@ using System.Linq;
using Avalonia.Collections;
using Avalonia.Controls.Selection;
using Avalonia.Controls.Utils;
+using Avalonia.UnitTests;
using Xunit;
using CollectionChangedEventManager = Avalonia.Controls.Utils.CollectionChangedEventManager;
@@ -14,7 +15,7 @@ namespace Avalonia.Controls.UnitTests.Selection
{
public class SelectionModelTests_Single
{
- public class Source
+ public class Source : ScopedTestBase
{
[Fact]
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]
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]
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]
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]
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]
public void Select_Sets_SelectedIndex()
@@ -664,7 +665,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class SelectRange
+ public class SelectRange : ScopedTestBase
{
[Fact]
public void SelectRange_Throws()
@@ -675,7 +676,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class Deselect
+ public class Deselect : ScopedTestBase
{
[Fact]
public void Deselect_Clears_Current_Selection()
@@ -721,7 +722,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class DeselectRange
+ public class DeselectRange : ScopedTestBase
{
[Fact]
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]
public void Clear_Raises_SelectionChanged()
@@ -792,7 +793,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class AnchorIndex
+ public class AnchorIndex : ScopedTestBase
{
[Fact]
public void Setting_SelectedIndex_Sets_AnchorIndex()
@@ -898,7 +899,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class SingleSelect
+ public class SingleSelect : ScopedTestBase
{
[Fact]
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]
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]
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]
public void LostSelection_Called_On_Clear()
@@ -1421,7 +1422,7 @@ namespace Avalonia.Controls.UnitTests.Selection
}
}
- public class UntypedInterface
+ public class UntypedInterface : ScopedTestBase
{
[Fact]
public void Raises_Untyped_SelectionChanged_Event()
diff --git a/tests/Avalonia.Controls.UnitTests/Shapes/EllipseTests.cs b/tests/Avalonia.Controls.UnitTests/Shapes/EllipseTests.cs
index 626945894f..9bae5e923d 100644
--- a/tests/Avalonia.Controls.UnitTests/Shapes/EllipseTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Shapes/EllipseTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes
{
- public class EllipseTests
+ public class EllipseTests : ScopedTestBase
{
[Fact]
public void Measure_Does_Not_Set_RenderedGeometry_Rect()
diff --git a/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs b/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs
index 8b8656a76b..9e83f469b6 100644
--- a/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Shapes/PathTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes
{
- public class PathTests
+ public class PathTests : ScopedTestBase
{
[Fact]
public void Path_With_Null_Data_Does_Not_Throw_On_Measure()
diff --git a/tests/Avalonia.Controls.UnitTests/Shapes/PolygonTests.cs b/tests/Avalonia.Controls.UnitTests/Shapes/PolygonTests.cs
index 1584e836e8..1775a01cd3 100644
--- a/tests/Avalonia.Controls.UnitTests/Shapes/PolygonTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Shapes/PolygonTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes;
-public class PolygonTests
+public class PolygonTests : ScopedTestBase
{
[Fact]
public void Polygon_Will_Update_Geometry_On_Shapes_Collection_Content_Change()
diff --git a/tests/Avalonia.Controls.UnitTests/Shapes/PolylineTests.cs b/tests/Avalonia.Controls.UnitTests/Shapes/PolylineTests.cs
index a68dc9d4b4..971cd81f4a 100644
--- a/tests/Avalonia.Controls.UnitTests/Shapes/PolylineTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Shapes/PolylineTests.cs
@@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes;
-public class PolylineTests
+public class PolylineTests : ScopedTestBase
{
[Fact]
public void Polyline_Will_Update_Geometry_On_Shapes_Collection_Content_Change()
diff --git a/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs b/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs
index 65be7fadaf..554acb7df0 100644
--- a/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs
@@ -6,7 +6,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Shapes
{
- public class RectangleTests
+ public class RectangleTests : ScopedTestBase
{
[Fact]
public void Measure_Does_Not_Set_RenderedGeometry_Rect()
diff --git a/tests/Avalonia.Controls.UnitTests/SliderTests.cs b/tests/Avalonia.Controls.UnitTests/SliderTests.cs
index 1c3c052144..f6ebeea7f4 100644
--- a/tests/Avalonia.Controls.UnitTests/SliderTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/SliderTests.cs
@@ -2,11 +2,12 @@
using System.Collections.Generic;
using System.Text;
using Avalonia.Layout;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class SliderTests
+ public class SliderTests : ScopedTestBase
{
[Fact]
public void Default_Orientation_Should_Be_Horizontal()
diff --git a/tests/Avalonia.Controls.UnitTests/SplitViewTests.cs b/tests/Avalonia.Controls.UnitTests/SplitViewTests.cs
index 47383fa9ad..26d572d416 100644
--- a/tests/Avalonia.Controls.UnitTests/SplitViewTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/SplitViewTests.cs
@@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class SplitViewTests
+ public class SplitViewTests : ScopedTestBase
{
[Fact]
public void SplitView_PaneOpening_Should_Fire_Before_PaneOpened()
diff --git a/tests/Avalonia.Controls.UnitTests/StackPanelTests.cs b/tests/Avalonia.Controls.UnitTests/StackPanelTests.cs
index 101bf044e8..28ad64bac0 100644
--- a/tests/Avalonia.Controls.UnitTests/StackPanelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/StackPanelTests.cs
@@ -1,10 +1,11 @@
using System.Linq;
using Avalonia.Layout;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class StackPanelTests
+ public class StackPanelTests : ScopedTestBase
{
[Fact]
public void Lays_Out_Children_Vertically()
diff --git a/tests/Avalonia.Controls.UnitTests/TabControlTests.cs b/tests/Avalonia.Controls.UnitTests/TabControlTests.cs
index 37b15a2b4f..f600d3aaba 100644
--- a/tests/Avalonia.Controls.UnitTests/TabControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/TabControlTests.cs
@@ -21,7 +21,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class TabControlTests
+ public class TabControlTests : ScopedTestBase
{
static TabControlTests()
{
diff --git a/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs b/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs
index 33593a0631..d540ae9444 100644
--- a/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs
@@ -1,10 +1,11 @@
using System.Linq;
using Avalonia.Controls.UnitTests;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.Templates.UnitTests
{
- public class TemplateExtensionsTests
+ public class TemplateExtensionsTests : ScopedTestBase
{
///
/// Control templates can themselves contain templated controls. Make sure that
diff --git a/tests/Avalonia.Controls.UnitTests/TextBlockTests.cs b/tests/Avalonia.Controls.UnitTests/TextBlockTests.cs
index a98b20f66d..fd854ed2b3 100644
--- a/tests/Avalonia.Controls.UnitTests/TextBlockTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/TextBlockTests.cs
@@ -10,7 +10,7 @@ using static System.Net.Mime.MediaTypeNames;
namespace Avalonia.Controls.UnitTests
{
- public class TextBlockTests
+ public class TextBlockTests : ScopedTestBase
{
[Fact]
public void DefaultBindingMode_Should_Be_OneWay()
diff --git a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs b/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
index 6c1fe6648d..0173f36581 100644
--- a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
@@ -22,7 +22,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class TextBoxTests
+ public class TextBoxTests : ScopedTestBase
{
[Fact]
public void Opening_Context_Menu_Does_not_Lose_Selection()
diff --git a/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs b/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs
index 0eaa3092e9..431426efa8 100644
--- a/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs
+++ b/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs
@@ -18,7 +18,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class TextBoxTests_DataValidation
+ public class TextBoxTests_DataValidation : ScopedTestBase
{
[Fact]
public void Setter_Exceptions_Should_Set_Error_Pseudoclass()
diff --git a/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs b/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs
index 00e5c4d385..3a7c07bb8d 100644
--- a/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/TimePickerTests.cs
@@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class TimePickerTests
+ public class TimePickerTests : ScopedTestBase
{
[Fact]
public void SelectedTimeChanged_Should_Fire_When_SelectedTime_Set()
diff --git a/tests/Avalonia.Controls.UnitTests/ToolTipTests.cs b/tests/Avalonia.Controls.UnitTests/ToolTipTests.cs
index 12ecbb0c68..7729d33d47 100644
--- a/tests/Avalonia.Controls.UnitTests/ToolTipTests.cs
+++ b/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);
diff --git a/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs b/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs
index 8da5265ecc..458f068ae7 100644
--- a/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs
@@ -17,7 +17,7 @@ using static Avalonia.Controls.UnitTests.MaskedTextBoxTests;
namespace Avalonia.Controls.UnitTests
{
- public class TopLevelTests
+ public class TopLevelTests : ScopedTestBase
{
[Fact]
public void IsAttachedToLogicalTree_Is_True()
diff --git a/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs b/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs
index f92fc96c2b..62430deb09 100644
--- a/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs
@@ -16,7 +16,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class TransitioningContentControlTests
+ public class TransitioningContentControlTests : ScopedTestBase
{
[Fact]
public void Transition_Should_Not_Be_Run_When_First_Shown()
diff --git a/tests/Avalonia.Controls.UnitTests/UserControlTests.cs b/tests/Avalonia.Controls.UnitTests/UserControlTests.cs
index 9cc6c0156b..bc4426cbb4 100644
--- a/tests/Avalonia.Controls.UnitTests/UserControlTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/UserControlTests.cs
@@ -8,7 +8,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class UserControlTests
+ public class UserControlTests : ScopedTestBase
{
[Fact]
public void Should_Be_Styled_As_UserControl()
diff --git a/tests/Avalonia.Controls.UnitTests/Utils/AncestorFinderTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/AncestorFinderTests.cs
index de4c572a73..0687c36886 100644
--- a/tests/Avalonia.Controls.UnitTests/Utils/AncestorFinderTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Utils/AncestorFinderTests.cs
@@ -4,12 +4,13 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Avalonia.Controls.Utils;
+using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
namespace Avalonia.Controls.UnitTests.Utils
{
- public class AncestorFinderTests
+ public class AncestorFinderTests : ScopedTestBase
{
[Fact]
public void SanityCheck()
diff --git a/tests/Avalonia.Controls.UnitTests/Utils/CollectionChangedEventManagerTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/CollectionChangedEventManagerTests.cs
index 8bbb5e456f..004e6b0f73 100644
--- a/tests/Avalonia.Controls.UnitTests/Utils/CollectionChangedEventManagerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Utils/CollectionChangedEventManagerTests.cs
@@ -4,12 +4,13 @@ using System.Collections.Specialized;
using System.Text;
using Avalonia.Collections;
using Avalonia.Controls.Utils;
+using Avalonia.UnitTests;
using Xunit;
using CollectionChangedEventManager = Avalonia.Controls.Utils.CollectionChangedEventManager;
namespace Avalonia.Controls.UnitTests.Utils
{
- public class CollectionChangedEventManagerTests
+ public class CollectionChangedEventManagerTests : ScopedTestBase
{
[Fact]
public void AddListener_Listens_To_Events()
diff --git a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs
index 6d47f2504b..e9891ca2fd 100644
--- a/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Utils/HotKeyManagerTests.cs
@@ -10,7 +10,7 @@ using Factory = System.Func, Avalonia.Controls.Window
namespace Avalonia.Controls.UnitTests.Utils
{
- public class HotKeyManagerTests
+ public class HotKeyManagerTests : ScopedTestBase
{
[Fact]
public void HotKeyManager_Should_Register_And_Unregister_Key_Binding()
diff --git a/tests/Avalonia.Controls.UnitTests/Utils/SafeEnumerableHashSetTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/SafeEnumerableHashSetTests.cs
index 022ed52685..cf09a1c5d7 100644
--- a/tests/Avalonia.Controls.UnitTests/Utils/SafeEnumerableHashSetTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Utils/SafeEnumerableHashSetTests.cs
@@ -1,10 +1,11 @@
using System.Collections.Generic;
+using Avalonia.UnitTests;
using Avalonia.Utilities;
using Xunit;
namespace Avalonia.Controls.UnitTests.Utils
{
- public class SafeEnumerableHashSetTests
+ public class SafeEnumerableHashSetTests : ScopedTestBase
{
[Fact]
public void Set_Is_Not_Copied_Outside_Enumeration()
diff --git a/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs b/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs
index 02ae8b47bc..cc798afb19 100644
--- a/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/ViewboxTests.cs
@@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class ViewboxTests
+ public class ViewboxTests : ScopedTestBase
{
[Fact]
public void Viewbox_Stretch_Uniform_Child()
diff --git a/tests/Avalonia.Controls.UnitTests/VirtualizingCarouselPanelTests.cs b/tests/Avalonia.Controls.UnitTests/VirtualizingCarouselPanelTests.cs
index b636c69488..4c0ec8436a 100644
--- a/tests/Avalonia.Controls.UnitTests/VirtualizingCarouselPanelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/VirtualizingCarouselPanelTests.cs
@@ -10,6 +10,7 @@ using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.Layout;
+using Avalonia.Threading;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Moq;
@@ -19,7 +20,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class VirtualizingCarouselPanelTests
+ public class VirtualizingCarouselPanelTests : ScopedTestBase
{
[Fact]
public void Initial_Item_Is_Displayed()
@@ -134,7 +135,7 @@ namespace Avalonia.Controls.UnitTests
});
}
- public class Transitions
+ public class Transitions : ScopedTestBase
{
[Fact]
public void Initial_Item_Does_Not_Start_Transition()
@@ -175,49 +176,59 @@ namespace Avalonia.Controls.UnitTests
public void Changing_SelectedIndex_transitions_forward_cycle()
{
using var app = Start();
- var items = new Control[] { new Button(), new Canvas(), new Label() };
- var transition = new Mock();
- var (target, carousel) = CreateTarget(items, transition.Object);
- var cycleindexes = new[] { 1, 2, 0};
-
- for (int cycleIndex = 0; cycleIndex < cycleindexes.Length; cycleIndex++)
+ Dispatcher.UIThread.Invoke(() => // This sets up a proper sync context
{
- carousel.SelectedIndex = cycleindexes[cycleIndex];
- Layout(target);
-
- var index = cycleIndex;
- transition.Verify(x => x.Start(
- index > 0 ? items[cycleindexes[index - 1]] : items[0],
- items[cycleindexes[index]],
- true,
- It.IsAny()),
- Times.Once);
- }
+ var items = new Control[] { new Button(), new Canvas(), new Label() };
+ var transition = new Mock();
+ 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];
+ Layout(target);
+
+ 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()),
+ Times.Once);
+ }
+ });
}
[Fact]
public void Changing_SelectedIndex_transitions_backward_cycle()
{
using var app = Start();
- var items = new Control[] { new Button(), new Canvas(), new Label() };
- var transition = new Mock();
- var (target, carousel) = CreateTarget(items, transition.Object);
+ Dispatcher.UIThread.Invoke(() => // This sets up a proper sync context
+ {
+ var items = new Control[] { new Button(), new Canvas(), new Label() };
+ var transition = new Mock();
+ 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++)
- {
- carousel.SelectedIndex = cycleindexes[cycleIndex];
- Layout(target);
-
- var index = cycleIndex;
- transition.Verify(x => x.Start(
- index > 0 ? items[cycleindexes[index - 1]] : items[0],
- items[cycleindexes[index]],
- false,
- It.IsAny()),
- Times.Once);
- }
+ for (int cycleIndex = 0; cycleIndex < cycleindexes.Length; cycleIndex++)
+ {
+ carousel.SelectedIndex = cycleindexes[cycleIndex];
+ Layout(target);
+
+ Dispatcher.UIThread.RunJobs();
+
+ var index = cycleIndex;
+ transition.Verify(x => x.Start(
+ index > 0 ? items[cycleindexes[index - 1]] : items[0],
+ items[cycleindexes[index]],
+ false,
+ It.IsAny()),
+ Times.Once);
+ }
+ });
}
[Fact]
diff --git a/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs b/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs
index a4c12744ab..c8ab19d9f6 100644
--- a/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/WindowBaseTests.cs
@@ -17,7 +17,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class WindowBaseTests
+ public class WindowBaseTests : ScopedTestBase
{
[Fact]
public void Activate_Should_Call_Impl_Activate()
diff --git a/tests/Avalonia.Controls.UnitTests/WindowTests.cs b/tests/Avalonia.Controls.UnitTests/WindowTests.cs
index 747608983b..a7f2692a57 100644
--- a/tests/Avalonia.Controls.UnitTests/WindowTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/WindowTests.cs
@@ -12,7 +12,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class WindowTests
+ public class WindowTests : ScopedTestBase
{
[Fact]
public void Setting_Title_Should_Set_Impl_Title()
@@ -672,7 +672,7 @@ namespace Avalonia.Controls.UnitTests
}
}
- public class SizingTests
+ public class SizingTests : ScopedTestBase
{
[Fact]
public void Child_Should_Be_Measured_With_Width_And_Height_If_SizeToContent_Is_Manual()
diff --git a/tests/Avalonia.Controls.UnitTests/WrapPanelTests.cs b/tests/Avalonia.Controls.UnitTests/WrapPanelTests.cs
index fa48e68953..530d7a4956 100644
--- a/tests/Avalonia.Controls.UnitTests/WrapPanelTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/WrapPanelTests.cs
@@ -1,10 +1,11 @@
using System;
using Avalonia.Layout;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Controls.UnitTests
{
- public class WrapPanelTests
+ public class WrapPanelTests : ScopedTestBase
{
[Fact]
public void Lays_Out_Horizontally_On_Separate_Lines()
diff --git a/tests/Avalonia.LeakTests/AvaloniaObjectTests.cs b/tests/Avalonia.LeakTests/AvaloniaObjectTests.cs
index 5c012ac725..da33bc6c79 100644
--- a/tests/Avalonia.LeakTests/AvaloniaObjectTests.cs
+++ b/tests/Avalonia.LeakTests/AvaloniaObjectTests.cs
@@ -11,6 +11,7 @@ using Avalonia.Data.Core;
using Avalonia.Markup.Xaml.MarkupExtensions;
using Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings;
using Avalonia.Threading;
+using Avalonia.UnitTests;
using JetBrains.dotMemoryUnit;
using Xunit;
using Xunit.Abstractions;
@@ -18,7 +19,7 @@ using Xunit.Abstractions;
namespace Avalonia.LeakTests
{
[DotMemoryUnit(FailIfRunWithoutSupport = false)]
- public class AvaloniaObjectTests
+ public class AvaloniaObjectTests : ScopedTestBase
{
public AvaloniaObjectTests(ITestOutputHelper atr)
{
@@ -159,7 +160,7 @@ namespace Avalonia.LeakTests
}
var weakTarget = SetupBinding();
-
+
CollectGarbage();
Assert.False(weakTarget.IsAlive);
}
diff --git a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
index 7ff3642b9a..832e258788 100644
--- a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
+++ b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
@@ -16,8 +16,7 @@
-
-
+
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs
index 6b9b209208..0c91e0a6bc 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs
@@ -7,12 +7,13 @@ using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Threading;
+using Avalonia.UnitTests;
using Moq;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests
+ public class BindingTests : ScopedTestBase
{
[Fact]
public void OneWay_Binding_Should_Be_Set_Up()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Converters.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Converters.cs
index cd1c45b513..9a001b9ad9 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Converters.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Converters.cs
@@ -4,12 +4,13 @@ using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Data.Core;
+using Avalonia.UnitTests;
using Moq;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_Converters
+ public class BindingTests_Converters : ScopedTestBase
{
[Fact]
public void Converter_Should_Be_Used()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs
index 35e9370c4c..cd2db21082 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs
@@ -13,7 +13,7 @@ namespace Avalonia.Markup.UnitTests.Data
{
public class BindingTests_DataValidation
{
- public abstract class TestBase
+ public abstract class TestBase : ScopedTestBase
where T : AvaloniaProperty
{
[Fact]
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Delay.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Delay.cs
index 9ebf38a2cd..ec9149a86e 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Delay.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Delay.cs
@@ -10,7 +10,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data;
-public class BindingTests_Delay : IDisposable
+public class BindingTests_Delay : ScopedTestBase, IDisposable
{
private const int DelayMilliseconds = 10;
private const string InitialFooValue = "foo";
@@ -39,6 +39,7 @@ public class BindingTests_Delay : IDisposable
public void Dispose()
{
_app.Dispose();
+ base.Dispose();
}
[Fact]
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_ElementName.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_ElementName.cs
index 69dfc6c062..2091c9977a 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_ElementName.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_ElementName.cs
@@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_ElementName
+ public class BindingTests_ElementName : ScopedTestBase
{
[Fact]
public void Should_Bind_To_Element_Path()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Logging.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Logging.cs
index a7a1e5a9e0..ba5ff6c488 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Logging.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Logging.cs
@@ -20,9 +20,9 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_Logging
+ public class BindingTests_Logging : ScopedTestBase
{
- public class DataContext
+ public class DataContext : ScopedTestBase
{
[Fact]
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]
public void Should_Log_Null_Source()
@@ -96,7 +96,7 @@ namespace Avalonia.Markup.UnitTests.Data
}
}
- public class LogicalAncestor
+ public class LogicalAncestor : ScopedTestBase
{
[Fact]
public void Should_Log_Ancestor_Not_Found()
@@ -124,7 +124,7 @@ namespace Avalonia.Markup.UnitTests.Data
}
}
- public class VisualAncestor
+ public class VisualAncestor : ScopedTestBase
{
[Fact]
public void Should_Log_Ancestor_Not_Found()
@@ -187,7 +187,7 @@ namespace Avalonia.Markup.UnitTests.Data
}
}
- public class NamedElement
+ public class NamedElement : ScopedTestBase
{
[Fact]
public void Should_Log_NameScope_Not_Found()
@@ -233,7 +233,7 @@ namespace Avalonia.Markup.UnitTests.Data
}
}
- public class Converter
+ public class Converter : ScopedTestBase
{
[Fact]
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]
[InlineData(true)]
@@ -324,7 +324,7 @@ namespace Avalonia.Markup.UnitTests.Data
}
}
- public class NonControlDataContext
+ public class NonControlDataContext : ScopedTestBase
{
[Fact]
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]
public void Should_Log_For_Invalid_DataContext_Type()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Method.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Method.cs
index 4b2c2494af..1b757f3fbc 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Method.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Method.cs
@@ -2,11 +2,12 @@
using Avalonia.Data;
using Avalonia.Input;
using Avalonia.Interactivity;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_Method
+ public class BindingTests_Method : ScopedTestBase
{
[Fact]
public void Binding_To_Private_Methods_Shouldnt_Work()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_RelativeSource.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_RelativeSource.cs
index 4cbe80c580..e30920a91a 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_RelativeSource.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_RelativeSource.cs
@@ -10,7 +10,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_RelativeSource
+ public class BindingTests_RelativeSource : ScopedTestBase
{
[Fact]
public void Should_Bind_To_First_Ancestor()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Self.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Self.cs
index 7cc8fc26cf..cd1e0cd0a2 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Self.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Self.cs
@@ -7,10 +7,11 @@ using Xunit;
using System.Reactive.Disposables;
using Avalonia.Markup.Data;
using Avalonia.Controls.Primitives;
+using Avalonia.UnitTests;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_Self
+ public class BindingTests_Self : ScopedTestBase
{
[Fact]
public void Binding_To_Property_On_Self_Should_Work()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Source.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Source.cs
index e78fedc439..fc82253342 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Source.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_Source.cs
@@ -5,10 +5,11 @@ using Avalonia.Markup.Data;
using Xunit;
using System.ComponentModel;
using System.Runtime.CompilerServices;
+using Avalonia.UnitTests;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_Source
+ public class BindingTests_Source : ScopedTestBase
{
[Fact]
public void Source_Should_Be_Used()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_TemplatedParent.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_TemplatedParent.cs
index f04b95aaff..c927e2a3b0 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_TemplatedParent.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_TemplatedParent.cs
@@ -4,12 +4,13 @@ using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates;
using Avalonia.Data;
+using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class BindingTests_TemplatedParent
+ public class BindingTests_TemplatedParent : ScopedTestBase
{
[Fact]
public void OneWay_Binding_Should_Be_Set_Up()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests.cs b/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests.cs
index 45c7c8daa7..0be9b1649a 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests.cs
@@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class MultiBindingTests
+ public class MultiBindingTests : ScopedTestBase
{
[Fact]
public void OneWay_Binding_Should_Be_Set_Up()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests_Converters.cs b/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests_Converters.cs
index ac1dad194d..5527ee8d4e 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests_Converters.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests_Converters.cs
@@ -6,11 +6,12 @@ using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Layout;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class MultiBindingTests_Converters
+ public class MultiBindingTests_Converters : ScopedTestBase
{
[Fact]
public void StringFormat_Should_Be_Applied()
diff --git a/tests/Avalonia.Markup.UnitTests/Data/TemplateBindingTests.cs b/tests/Avalonia.Markup.UnitTests/Data/TemplateBindingTests.cs
index 32a9fce7d9..685ff2cdc0 100644
--- a/tests/Avalonia.Markup.UnitTests/Data/TemplateBindingTests.cs
+++ b/tests/Avalonia.Markup.UnitTests/Data/TemplateBindingTests.cs
@@ -14,7 +14,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Data
{
- public class TemplateBindingTests
+ public class TemplateBindingTests : ScopedTestBase
{
[Fact]
public void OneWay_Binding_Should_Be_Set_Up()
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/BindingExpressionGrammarTests.cs b/tests/Avalonia.Markup.UnitTests/Parsers/BindingExpressionGrammarTests.cs
index 7ecfd4e894..3dcb7b1bfe 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/BindingExpressionGrammarTests.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/BindingExpressionGrammarTests.cs
@@ -1,11 +1,12 @@
using System.Collections.Generic;
using Avalonia.Markup.Parsers;
+using Avalonia.UnitTests;
using Avalonia.Utilities;
using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public partial class BindingExpressionGrammarTests
+ public partial class BindingExpressionGrammarTests : ScopedTestBase
{
[Fact]
public void Should_Parse_Single_Property()
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeFactoryTests.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeFactoryTests.cs
index c43334e661..21884f7ddc 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeFactoryTests.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeFactoryTests.cs
@@ -4,12 +4,13 @@ using System.Linq;
using Avalonia.Data.Core.ExpressionNodes;
using Avalonia.Data.Core.ExpressionNodes.Reflection;
using Avalonia.Markup.Parsers;
+using Avalonia.UnitTests;
using Avalonia.Utilities;
using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class ExpressionNodeFactoryTests
+ public class ExpressionNodeFactoryTests : ScopedTestBase
{
[Fact]
public void Should_Build_Single_Property()
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs
index cc2dc35f0b..9af7997c32 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AttachedProperty.cs
@@ -8,10 +8,11 @@ using Xunit;
using Avalonia.Markup.Parsers;
using Avalonia.Utilities;
using Avalonia.Data.Core.ExpressionNodes;
+using Avalonia.UnitTests;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class ExpressionObserverBuilderTests_AttachedProperty
+ public class ExpressionObserverBuilderTests_AttachedProperty : ScopedTestBase
{
private readonly Func _typeResolver;
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AvaloniaProperty.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AvaloniaProperty.cs
index ff81ed1fe8..0578689dbc 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AvaloniaProperty.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_AvaloniaProperty.cs
@@ -8,10 +8,11 @@ using Xunit;
using Avalonia.Markup.Parsers;
using Avalonia.Utilities;
using Avalonia.Data.Core.ExpressionNodes;
+using Avalonia.UnitTests;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class ExpressionObserverBuilderTests_AvaloniaProperty
+ public class ExpressionObserverBuilderTests_AvaloniaProperty : ScopedTestBase
{
public ExpressionObserverBuilderTests_AvaloniaProperty()
{
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Indexer.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Indexer.cs
index 16c4834095..2469fdaa15 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Indexer.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Indexer.cs
@@ -16,7 +16,7 @@ using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class ExpressionObserverBuilderTests_Indexer
+ public class ExpressionObserverBuilderTests_Indexer : ScopedTestBase
{
[Fact]
public async Task Should_Get_Array_Value()
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Method.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Method.cs
index b727f0bbf5..30e0314844 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Method.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Method.cs
@@ -9,11 +9,12 @@ using System.Linq;
using System.Reactive.Linq;
using System.Text;
using System.Threading.Tasks;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class ExpressionObserverBuilderTests_Method
+ public class ExpressionObserverBuilderTests_Method : ScopedTestBase
{
private class TestObject
{
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Negation.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Negation.cs
index ad0f53feb4..5a516e3da0 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Negation.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Negation.cs
@@ -8,12 +8,13 @@ using Avalonia.Data;
using Avalonia.Data.Core;
using Avalonia.Data.Core.ExpressionNodes;
using Avalonia.Markup.Parsers;
+using Avalonia.UnitTests;
using Avalonia.Utilities;
using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class ExpressionObserverBuilderTests_Negation
+ public class ExpressionObserverBuilderTests_Negation : ScopedTestBase
{
[Fact]
public async Task Should_Negate_0()
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Property.cs b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Property.cs
index 7914b03859..97b9671f1d 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Property.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/ExpressionObserverBuilderTests_Property.cs
@@ -6,12 +6,13 @@ using Avalonia.Data;
using Avalonia.Data.Core;
using Avalonia.Data.Core.ExpressionNodes;
using Avalonia.Markup.Parsers;
+using Avalonia.UnitTests;
using Avalonia.Utilities;
using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class ExpressionObserverBuilderTests_Property
+ public class ExpressionObserverBuilderTests_Property : ScopedTestBase
{
[Fact]
public async Task Should_Return_BindingNotification_Error_For_Broken_Chain()
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/SelectorGrammarTests.cs b/tests/Avalonia.Markup.UnitTests/Parsers/SelectorGrammarTests.cs
index b41f37eb3d..b3d5064b48 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/SelectorGrammarTests.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/SelectorGrammarTests.cs
@@ -1,11 +1,12 @@
using System.Linq;
using Avalonia.Data.Core;
using Avalonia.Markup.Parsers;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class SelectorGrammarTests
+ public class SelectorGrammarTests : ScopedTestBase
{
[Fact]
public void OfType()
diff --git a/tests/Avalonia.Markup.UnitTests/Parsers/SelectorParserTests.cs b/tests/Avalonia.Markup.UnitTests/Parsers/SelectorParserTests.cs
index 338bdb3ae1..b30c953d62 100644
--- a/tests/Avalonia.Markup.UnitTests/Parsers/SelectorParserTests.cs
+++ b/tests/Avalonia.Markup.UnitTests/Parsers/SelectorParserTests.cs
@@ -1,11 +1,12 @@
using System;
using Avalonia.Controls;
using Avalonia.Markup.Parsers;
+using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Parsers
{
- public class SelectorParserTests
+ public class SelectorParserTests : ScopedTestBase
{
static SelectorParserTests()
{
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
index bd63ddd496..50e30546c7 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
@@ -35,6 +35,7 @@
PlatformFactAttribute.cs
+
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs
index 069c3a3426..a263f6126a 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs
@@ -31,7 +31,7 @@ using Xunit;
namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
{
- public class CompiledBindingExtensionTests
+ public class CompiledBindingExtensionTests : XamlTestBase
{
static CompiledBindingExtensionTests()
{
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Parsers/PropertyParserTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Parsers/PropertyParserTests.cs
index 2209ff4c83..bf2dfe755e 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Parsers/PropertyParserTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Parsers/PropertyParserTests.cs
@@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Markup.Xaml.UnitTests.Parsers
{
- public class PropertyParserTests
+ public class PropertyParserTests : XamlTestBase
{
[Fact]
public void Parses_Name()
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Templates/DataTemplateTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Templates/DataTemplateTests.cs
index e79ac058fe..b034c6135c 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Templates/DataTemplateTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Templates/DataTemplateTests.cs
@@ -3,7 +3,7 @@ using Xunit;
namespace Avalonia.Markup.Xaml.UnitTests.Templates
{
- public class DataTemplateTests
+ public class DataTemplateTests : XamlTestBase
{
[Fact]
public void DataTemplate_Should_Match_Data_Of_Type()
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/GenericTemplateTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/GenericTemplateTests.cs
index 9fee5285aa..8fc76bc024 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/GenericTemplateTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/GenericTemplateTests.cs
@@ -26,7 +26,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
public SampleTemplatedObjectTemplate Template { get; set; }
}
- public class GenericTemplateTests
+ public class GenericTemplateTests : XamlTestBase
{
[Fact]
public void DataTemplate_Can_Be_Empty()
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ItemsPanelTemplateTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ItemsPanelTemplateTests.cs
index d3e29b302a..e0b9846c83 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ItemsPanelTemplateTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ItemsPanelTemplateTests.cs
@@ -7,7 +7,7 @@ using Xunit;
namespace Avalonia.Markup.Xaml.UnitTests.Xaml;
-public class ItemsPanelTemplateTests
+public class ItemsPanelTemplateTests : XamlTestBase
{
[Fact]
public void ItemsPanelTemplate_In_Style_Allows_TemplateBinding()
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/MergeResourceIncludeTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/MergeResourceIncludeTests.cs
index d6f554cdfe..608e10f739 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/MergeResourceIncludeTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/MergeResourceIncludeTests.cs
@@ -11,7 +11,7 @@ using Xunit;
namespace Avalonia.Markup.Xaml.UnitTests.Xaml;
-public class MergeResourceIncludeTests
+public class MergeResourceIncludeTests : XamlTestBase
{
static MergeResourceIncludeTests()
{
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleIncludeTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleIncludeTests.cs
index 9d7d575803..d099d6f3aa 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleIncludeTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleIncludeTests.cs
@@ -15,7 +15,7 @@ using Xunit;
namespace Avalonia.Markup.Xaml.UnitTests.Xaml;
-public class StyleIncludeTests
+public class StyleIncludeTests : XamlTestBase
{
static StyleIncludeTests()
{
diff --git a/tests/Avalonia.UnitTests/ThreadRunHelper.cs b/tests/Avalonia.UnitTests/ThreadRunHelper.cs
new file mode 100644
index 0000000000..d1391581c9
--- /dev/null
+++ b/tests/Avalonia.UnitTests/ThreadRunHelper.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Avalonia.UnitTests;
+
+public class ThreadRunHelper
+{
+ public static Task RunOnDedicatedThread(Func cb)
+ {
+ // Task.Run(...).GetAwaiter().GetResult() can be inlined, so we have this cursed thing instead
+ var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
+ new Thread(() =>
+ {
+ try
+ {
+ tcs.SetResult(cb());
+ }
+ catch (Exception e)
+ {
+ tcs.SetException(e);
+ }
+ }).Start();
+ return tcs.Task;
+ }
+
+ public static Task RunOnDedicatedThread(Action cb) => RunOnDedicatedThread