diff --git a/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs index 59085a21ce..20d121756e 100644 --- a/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs @@ -3,7 +3,9 @@ using Avalonia.Controls; using Avalonia.Input; using Avalonia.Input.GestureRecognizers; using Avalonia.Media; +using Avalonia.Platform; using Avalonia.UnitTests; +using Moq; using Xunit; namespace Avalonia.Base.UnitTests.Input @@ -15,6 +17,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void Tapped_Should_Follow_Pointer_Pressed_Released() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -32,6 +35,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void Tapped_Should_Be_Raised_Even_When_Pressed_Released_Handled() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -49,6 +53,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void Tapped_Should_Not_Be_Raised_For_Middle_Button() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -66,6 +71,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void Tapped_Should_Not_Be_Raised_For_Right_Button() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -83,6 +89,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void RightTapped_Should_Be_Raised_For_Right_Button() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -100,6 +107,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void DoubleTapped_Should_Follow_Pointer_Pressed_Released_Pressed() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -118,6 +126,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void DoubleTapped_Should_Be_Raised_Even_When_Pressed_Released_Handled() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -136,6 +145,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void DoubleTapped_Should_Not_Be_Raised_For_Middle_Button() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { @@ -154,6 +164,7 @@ namespace Avalonia.Base.UnitTests.Input [Fact] public void DoubleTapped_Should_Not_Be_Raised_For_Right_Button() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); Border border = new Border(); var decorator = new Decorator { diff --git a/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs index c0c0182622..36587ea222 100644 --- a/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs @@ -207,7 +207,7 @@ namespace Avalonia.Input.UnitTests private IDisposable UnitTestApp(TimeSpan doubleClickTime = new TimeSpan()) { var unitTestApp = UnitTestApplication.Start( - new TestServices(inputManager: new InputManager())); + new TestServices(inputManager: new InputManager(), threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); var iSettingsMock = new Mock(); iSettingsMock.Setup(x => x.GetDoubleTapTime(It.IsAny())).Returns(doubleClickTime); iSettingsMock.Setup(x => x.GetDoubleTapSize(It.IsAny())).Returns(new Size(16, 16)); diff --git a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs index 8bd51ec500..9cb83d3009 100644 --- a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs @@ -134,6 +134,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Button_Raises_Click() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); var renderer = Mock.Of(); var pt = new Point(50, 50); Mock.Get(renderer).Setup(r => r.HitTest(It.IsAny(), It.IsAny(), It.IsAny>())) @@ -166,6 +167,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Button_Does_Not_Raise_Click_When_PointerReleased_Outside() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); var renderer = Mock.Of(); Mock.Get(renderer).Setup(r => r.HitTest(It.IsAny(), It.IsAny(), It.IsAny>())) @@ -199,6 +201,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Button_With_RenderTransform_Raises_Click() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); var renderer = Mock.Of(); var pt = new Point(150, 50); Mock.Get(renderer).Setup(r => r.HitTest(It.IsAny(), It.IsAny(), It.IsAny>())) diff --git a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs index 1a8061bfd9..0afcd9ed49 100644 --- a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs @@ -11,6 +11,8 @@ using Avalonia.Media; using Avalonia.VisualTree; using Avalonia.UnitTests; using Xunit; +using Moq; +using Avalonia.Platform; namespace Avalonia.Controls.UnitTests { @@ -21,6 +23,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_On_Control_Toggles_IsDropDownOpen() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); var target = new ComboBox { Items = new[] { "Foo", "Bar" }, @@ -41,6 +44,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_On_Control_PseudoClass() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); var target = new ComboBox { Items = new[] { "Foo", "Bar" }, diff --git a/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs b/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs index 03aac5e2f4..7f9b38018b 100644 --- a/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs +++ b/tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs @@ -8,6 +8,7 @@ using Avalonia.Data; using Avalonia.Input; using Avalonia.Input.Platform; using Avalonia.LogicalTree; +using Avalonia.Platform; using Avalonia.Styling; using Avalonia.UnitTests; using Avalonia.VisualTree; @@ -115,7 +116,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_Item_Should_Select_It() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -133,7 +134,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_Selected_Item_Should_Not_Deselect_It() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -153,7 +154,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_Item_Should_Select_It_When_SelectionMode_Toggle() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -173,7 +174,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_Selected_Item_Should_Deselect_It_When_SelectionMode_Toggle() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -195,7 +196,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_Selected_Item_Should_Not_Deselect_It_When_SelectionMode_ToggleAlwaysSelected() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -216,7 +217,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Clicking_Another_Item_Should_Select_It_When_SelectionMode_Toggle() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { diff --git a/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs b/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs index 0ff1f40121..74d46b18de 100644 --- a/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Mixins/PressedMixinTests.cs @@ -1,5 +1,7 @@ using Avalonia.Controls.Mixins; +using Avalonia.Platform; using Avalonia.UnitTests; +using Moq; using Xunit; namespace Avalonia.Controls.UnitTests.Mixins @@ -19,6 +21,7 @@ namespace Avalonia.Controls.UnitTests.Mixins [Fact] public void Setting_IsSelected_Should_Add_Selected_Class() { + using var app = UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true))); var target = new TestControl(); _mouse.Down(target); diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs index e20c03f67f..c416a5de47 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs @@ -1118,7 +1118,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Setting_SelectedItem_With_Pointer_Should_Set_TabOnceActiveElement() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -1140,7 +1140,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Removing_SelectedItem_Should_Clear_TabOnceActiveElement() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var items = new ObservableCollection(new[] { "Foo", "Bar", "Baz " }); @@ -1239,7 +1239,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Should_Select_Correct_Item_When_Duplicate_Items_Are_Present() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -1257,7 +1257,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Should_Apply_Selected_Pseudoclass_To_Correct_Item_When_Duplicate_Items_Are_Present() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs index bc6147d64c..7fa3839ed5 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs @@ -12,6 +12,7 @@ using Avalonia.Data; using Avalonia.Input; using Avalonia.Input.Platform; using Avalonia.Interactivity; +using Avalonia.Platform; using Avalonia.UnitTests; using Moq; using Xunit; @@ -703,7 +704,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Shift_Selecting_From_No_Selection_Selects_From_Start() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -726,7 +727,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Ctrl_Selecting_Raises_SelectionChanged_Events() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -780,7 +781,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Ctrl_Selecting_SelectedItem_With_Multiple_Selection_Active_Sets_SelectedItem_To_Next_Selection() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -810,7 +811,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Ctrl_Selecting_Non_SelectedItem_With_Multiple_Selection_Active_Leaves_SelectedItem_The_Same() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -838,7 +839,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Should_Ctrl_Select_Correct_Item_When_Duplicate_Items_Are_Present() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -862,7 +863,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Should_Shift_Select_Correct_Item_When_Duplicates_Are_Present() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -886,7 +887,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Can_Shift_Select_All_Items_When_Duplicates_Are_Present() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -910,7 +911,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Shift_Selecting_Raises_SelectionChanged_Events() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -959,7 +960,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Duplicate_Items_Are_Added_To_SelectedItems_In_Order() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -1189,7 +1190,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Left_Click_On_SelectedItem_Should_Clear_Existing_Selection() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -1216,7 +1217,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Right_Click_On_SelectedItem_Should_Not_Clear_Existing_Selection() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -1241,7 +1242,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Right_Click_On_UnselectedItem_Should_Clear_Existing_Selection() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -1293,7 +1294,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Shift_Right_Click_Should_Not_Select_Multiple() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { @@ -1316,7 +1317,7 @@ namespace Avalonia.Controls.UnitTests.Primitives [Fact] public void Ctrl_Right_Click_Should_Not_Select_Multiple() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var target = new ListBox { diff --git a/tests/Avalonia.Controls.UnitTests/TreeViewTests.cs b/tests/Avalonia.Controls.UnitTests/TreeViewTests.cs index 81936711ef..3e1e25faf5 100644 --- a/tests/Avalonia.Controls.UnitTests/TreeViewTests.cs +++ b/tests/Avalonia.Controls.UnitTests/TreeViewTests.cs @@ -15,6 +15,7 @@ using Avalonia.Input; using Avalonia.Input.Platform; using Avalonia.Interactivity; using Avalonia.LogicalTree; +using Avalonia.Platform; using Avalonia.Styling; using Avalonia.UnitTests; using Moq; @@ -1466,7 +1467,7 @@ namespace Avalonia.Controls.UnitTests [Fact] public void Right_Click_On_SelectedItem_Should_Not_Clear_Existing_Selection() { - using (UnitTestApplication.Start()) + using (UnitTestApplication.Start(new TestServices(threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true)))) { var tree = CreateTestTreeData(); var target = new TreeView diff --git a/tests/Avalonia.UnitTests/TestServices.cs b/tests/Avalonia.UnitTests/TestServices.cs index 8f132433ec..a2096997c0 100644 --- a/tests/Avalonia.UnitTests/TestServices.cs +++ b/tests/Avalonia.UnitTests/TestServices.cs @@ -51,7 +51,8 @@ namespace Avalonia.UnitTests inputManager: new InputManager(), assetLoader: new AssetLoader(), renderInterface: new MockPlatformRenderInterface(), - fontManagerImpl: new MockFontManagerImpl(), + fontManagerImpl: new MockFontManagerImpl(), + threadingInterface: Mock.Of(x => x.CurrentThreadIsLoopThread == true), textShaperImpl: new MockTextShaperImpl()); public static readonly TestServices TextServices = new TestServices(