|
|
|
@ -8,7 +8,6 @@ using Avalonia.Controls.Primitives; |
|
|
|
using Avalonia.Controls.Templates; |
|
|
|
using Avalonia.Data; |
|
|
|
using Avalonia.Input; |
|
|
|
using Avalonia.Markup.Data; |
|
|
|
using Avalonia.Media; |
|
|
|
using Avalonia.Platform; |
|
|
|
using Avalonia.UnitTests; |
|
|
|
@ -322,6 +321,71 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void SelectionEnd_Dont_Cause_Exception() |
|
|
|
{ |
|
|
|
using (UnitTestApplication.Start(Services)) |
|
|
|
{ |
|
|
|
var target = new TextBox |
|
|
|
{ |
|
|
|
Template = CreateTemplate(), |
|
|
|
Text = "0123456789" |
|
|
|
}; |
|
|
|
|
|
|
|
target.SelectionStart = 0; |
|
|
|
target.SelectionEnd = 9; |
|
|
|
|
|
|
|
target.Text = "123"; |
|
|
|
|
|
|
|
RaiseTextEvent(target, "456"); |
|
|
|
|
|
|
|
Assert.True(true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void SelectionStart_Dont_Cause_Exception() |
|
|
|
{ |
|
|
|
using (UnitTestApplication.Start(Services)) |
|
|
|
{ |
|
|
|
var target = new TextBox |
|
|
|
{ |
|
|
|
Template = CreateTemplate(), |
|
|
|
Text = "0123456789" |
|
|
|
}; |
|
|
|
|
|
|
|
target.SelectionStart = 8; |
|
|
|
target.SelectionEnd = 9; |
|
|
|
|
|
|
|
target.Text = "123"; |
|
|
|
|
|
|
|
RaiseTextEvent(target, "456"); |
|
|
|
|
|
|
|
Assert.True(true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void SelectionStartEnd_Are_Valid_AterTextChange() |
|
|
|
{ |
|
|
|
using (UnitTestApplication.Start(Services)) |
|
|
|
{ |
|
|
|
var target = new TextBox |
|
|
|
{ |
|
|
|
Template = CreateTemplate(), |
|
|
|
Text = "0123456789" |
|
|
|
}; |
|
|
|
|
|
|
|
target.SelectionStart = 8; |
|
|
|
target.SelectionEnd = 9; |
|
|
|
|
|
|
|
target.Text = "123"; |
|
|
|
|
|
|
|
Assert.True(target.SelectionStart <= "123".Length); |
|
|
|
Assert.True(target.SelectionEnd <= "123".Length); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private static TestServices Services => TestServices.MockThreadingInterface.With( |
|
|
|
standardCursorFactory: Mock.Of<IStandardCursorFactory>()); |
|
|
|
|
|
|
|
@ -351,6 +415,15 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void RaiseTextEvent(TextBox textBox, string text) |
|
|
|
{ |
|
|
|
textBox.RaiseEvent(new TextInputEventArgs |
|
|
|
{ |
|
|
|
RoutedEvent = InputElement.TextInputEvent, |
|
|
|
Text = text |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private class Class1 : NotifyingBase |
|
|
|
{ |
|
|
|
private int _foo; |
|
|
|
|