feat: rename AnchorId to Id and add TopOffset property. Add headless tests.
This commit is contained in:
82
tests/HeadlessTest.Ursa/Controls/AnchorTests/Tests.cs
Normal file
82
tests/HeadlessTest.Ursa/Controls/AnchorTests/Tests.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Headless;
|
||||
using Avalonia.Headless.XUnit;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Threading;
|
||||
using Ursa.Controls;
|
||||
|
||||
namespace HeadlessTest.Ursa.Controls.AnchorTests;
|
||||
|
||||
public class Tests
|
||||
{
|
||||
[AvaloniaFact]
|
||||
public async void Click_Anchor_With_Mouse_Should_Update_Scroll_Offset()
|
||||
{
|
||||
var window = new Window()
|
||||
{
|
||||
Width = 500,
|
||||
Height = 500,
|
||||
};
|
||||
var view = new TestView();
|
||||
window.Content = view;
|
||||
window.Show();
|
||||
|
||||
var anchor = view.FindControl<Anchor>("Anchor");
|
||||
var scrollViewer = view.FindControl<ScrollViewer>("ScrollViewer");
|
||||
var item4 = view.FindControl<AnchorItem>("Item4");
|
||||
|
||||
Assert.NotNull(anchor);
|
||||
Assert.NotNull(scrollViewer);
|
||||
Assert.NotNull(item4);
|
||||
|
||||
var transltion = item4.TranslatePoint(new Point(0, 0), window);
|
||||
|
||||
Assert.Equal(0, scrollViewer.Offset.Y);
|
||||
|
||||
// Simulate a click on the anchor
|
||||
window.MouseDown(new Point(10, transltion.Value.Y+10), MouseButton.Left);
|
||||
Dispatcher.UIThread.RunJobs();
|
||||
await Task.Delay(800);
|
||||
Assert.True(item4.IsSelected);
|
||||
Assert.Equal(300.0 * 3, scrollViewer.Offset.Y, 1.0);
|
||||
}
|
||||
|
||||
[AvaloniaFact]
|
||||
public async void Change_Scroll_Offset_Should_Update_Selected_Item()
|
||||
{
|
||||
var window = new Window()
|
||||
{
|
||||
Width = 500,
|
||||
Height = 500,
|
||||
};
|
||||
var view = new TestView();
|
||||
window.Content = view;
|
||||
window.Show();
|
||||
|
||||
var anchor = view.FindControl<Anchor>("Anchor");
|
||||
var scrollViewer = view.FindControl<ScrollViewer>("ScrollViewer");
|
||||
var item1 = view.FindControl<AnchorItem>("Item1");
|
||||
var item2 = view.FindControl<AnchorItem>("Item2");
|
||||
var item4 = view.FindControl<AnchorItem>("Item4");
|
||||
|
||||
Assert.NotNull(anchor);
|
||||
Assert.NotNull(scrollViewer);
|
||||
Assert.NotNull(item1);
|
||||
Assert.NotNull(item2);
|
||||
Assert.NotNull(item4);
|
||||
|
||||
Dispatcher.UIThread.RunJobs();
|
||||
|
||||
Assert.True(item1.IsSelected);
|
||||
Assert.False(item2.IsSelected);
|
||||
|
||||
// Change the scroll offset
|
||||
scrollViewer.Offset = new Vector(0, 310.0);
|
||||
Dispatcher.UIThread.RunJobs();
|
||||
|
||||
// Check if the second item is selected
|
||||
Assert.True(item2.IsSelected);
|
||||
Assert.False(item4.IsSelected);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user