Browse Source

Make sure that tests inherit from ScropedTestBase (#18690)

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

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

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

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

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

5
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()

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

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

4
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()

2
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)
{

3
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)
{

2
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()

2
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()

3
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()

2
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();

2
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()

2
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<IPopupImpl> popupImpl;
private MouseTestHelper _mouse = new MouseTestHelper();

2
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()

4
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()

2
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()
{

3
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()

2
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; }

3
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()

3
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()

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

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

3
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()

2
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()

3
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()

2
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()

2
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();

2
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();

2
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()

2
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()

2
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<IPopupImpl> popupImpl;

2
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();

3
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()

3
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()

2
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;

2
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()

9
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()

5
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);

3
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()

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

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

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

@ -5,7 +5,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters
{
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()

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

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

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

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

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

@ -13,7 +13,7 @@ using Xunit;
namespace Avalonia.Controls.UnitTests.Presenters
{
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()

2
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)]

3
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()

2
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()

2
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()

2
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;

2
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()

3
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()

116
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<IDispatcherImpl>(x => x.CurrentThreadIsLoopThread == true);
using (UnitTestApplication.Start(TestServices.StyledWindow.With(dispatcherImpl: pti)))
using (UnitTestApplication.Start(TestServices.StyledWindow.With()))
{
var items = new[]
{

2
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()

2
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()

2
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()

3
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()

2
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()

2
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";

3
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()

3
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()

2
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)]

2
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()

3
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()

35
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()

33
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()

2
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()

2
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()

2
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()

2
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()

2
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()

3
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()

2
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()

3
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()

2
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()
{

3
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
{
/// <summary>
/// Control templates can themselves contain templated controls. Make sure that

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

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

2
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()

2
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()

2
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()

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

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

2
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()

2
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()

2
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()

3
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()

3
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()

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

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

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

@ -1,10 +1,11 @@
using System.Collections.Generic;
using 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()

2
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()

83
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<IPageTransition>();
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<CancellationToken>()),
Times.Once);
}
var items = new Control[] { new Button(), new Canvas(), new Label() };
var transition = new Mock<IPageTransition>();
var (target, carousel) = CreateTarget(items, transition.Object);
var cycleindexes = new[] { 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<CancellationToken>()),
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<IPageTransition>();
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<IPageTransition>();
var (target, carousel) = CreateTarget(items, transition.Object);
var cycleindexes = new[] { 2, 1, 0};
var cycleindexes = new[] { 2, 1, 0 };
for (int cycleIndex = 0; cycleIndex < cycleindexes.Length; cycleIndex++)
{
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<CancellationToken>()),
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<CancellationToken>()),
Times.Once);
}
});
}
[Fact]

2
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()

4
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()

3
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()

5
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);
}

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

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

3
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()

3
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()

2
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<T>
public abstract class TestBase<T> : ScopedTestBase
where T : AvaloniaProperty<int>
{
[Fact]

3
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]

2
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()

20
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()

3
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()

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

Loading…
Cancel
Save