|
|
|
@ -6,18 +6,24 @@ namespace Avalonia.Skia.UnitTests.Media |
|
|
|
{ |
|
|
|
public class SKTypefaceCollectionCacheTests |
|
|
|
{ |
|
|
|
[Fact] |
|
|
|
public void Should_Get_Near_Matching_Typeface() |
|
|
|
private const string s_notoMono = |
|
|
|
"resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Noto Mono"; |
|
|
|
|
|
|
|
[InlineData(s_notoMono, FontWeight.SemiLight, FontStyle.Normal)] |
|
|
|
[InlineData(s_notoMono, FontWeight.Bold, FontStyle.Italic)] |
|
|
|
[InlineData(s_notoMono, FontWeight.Heavy, FontStyle.Oblique)] |
|
|
|
[Theory] |
|
|
|
public void Should_Get_Near_Matching_Typeface(string familyName, FontWeight fontWeight, FontStyle fontStyle) |
|
|
|
{ |
|
|
|
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface)) |
|
|
|
{ |
|
|
|
var notoMono = |
|
|
|
new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Noto Mono"); |
|
|
|
|
|
|
|
var notoMonoCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(notoMono); |
|
|
|
var fontFamily = new FontFamily(familyName); |
|
|
|
|
|
|
|
var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(fontFamily); |
|
|
|
|
|
|
|
Assert.Equal("Noto Mono", |
|
|
|
notoMonoCollection.Get(new Typeface(notoMono, weight: FontWeight.Bold)).FamilyName); |
|
|
|
var actual = typefaceCollection.Get(new Typeface(fontFamily, fontStyle, fontWeight))?.FamilyName; |
|
|
|
|
|
|
|
Assert.Equal("Noto Mono", actual); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|