A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

33 lines
1.4 KiB

using System.Collections.Generic;
using Avalonia.Media;
using Avalonia.Media.TextFormatting;
using Avalonia.Utilities;
using Xunit;
namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public class FormattedTextSourceTests
{
[Fact]
public void GetTextRun_WithTwoTextStyleOverrides_ShouldGenerateCorrectFirstRun()
{
//Prepare a sample text: The two "He" at the beginning of each line should be displayed with other TextRunProperties
string text = "Hello World\r\nHello";
Typeface typeface = new Typeface();
GenericTextRunProperties defaultTextRunProperties = new GenericTextRunProperties(typeface);
IReadOnlyList<ValueSpan<TextRunProperties>> textStyleOverrides = new List<ValueSpan<TextRunProperties>>()
{
new ValueSpan<TextRunProperties>(0, 2, new GenericTextRunProperties(typeface, backgroundBrush: Brushes.Aqua)),
new ValueSpan<TextRunProperties>(13, 2, new GenericTextRunProperties(typeface, backgroundBrush: Brushes.Aqua)),
};
var textSource = new FormattedTextSource(text, defaultTextRunProperties, textStyleOverrides);
var textRun = textSource.GetTextRun(0);
Assert.NotNull(textRun);
Assert.Equal(2, textRun.Length);
Assert.Equal("He", textRun.Text.ToString());
}
}
}