Browse Source

Fix mock font manager and add typeface collection tests

pull/5370/head
Benedikt Schroeder 5 years ago
parent
commit
4bebe777d9
  1. 4
      tests/Avalonia.Skia.UnitTests/Media/CustomFontManagerImpl.cs
  2. 28
      tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs

4
tests/Avalonia.Skia.UnitTests/Media/CustomFontManagerImpl.cs

@ -48,7 +48,7 @@ namespace Avalonia.Skia.UnitTests.Media
continue;
}
typeface = new Typeface(customTypeface.FontFamily.Name, fontStyle, fontWeight);
typeface = new Typeface(customTypeface.FontFamily, fontStyle, fontWeight);
return true;
}
@ -83,7 +83,7 @@ namespace Avalonia.Skia.UnitTests.Media
case "Noto Mono":
{
var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(_defaultTypeface.FontFamily);
skTypeface = typefaceCollection.Get(typeface);
skTypeface = typefaceCollection.Get(_defaultTypeface);
break;
}
default:

28
tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs

@ -7,25 +7,33 @@ namespace Avalonia.Skia.UnitTests.Media
public class SKTypefaceCollectionCacheTests
{
[Fact]
public void Should_Load_Typefaces_From_Invalid_Name()
public void Should_Get_Near_Matching_Typeface()
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var notoMono =
new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Noto Mono");
var colorEmoji =
new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Twitter Color Emoji");
var notoMonoCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(notoMono);
var typeface = new Typeface("ABC", FontStyle.Italic, FontWeight.Bold);
Assert.Equal("Noto Mono", notoMonoCollection.Get(typeface).FamilyName);
var notoColorEmojiCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(colorEmoji);
Assert.Equal("Noto Mono",
notoMonoCollection.Get(new Typeface(notoMono, weight: FontWeight.Bold)).FamilyName);
}
}
[Fact]
public void Should_Get_Null_For_Invalid_FamilyName()
{
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);
Assert.Equal("Twitter Color Emoji", notoColorEmojiCollection.Get(typeface).FamilyName);
var typeface = notoMonoCollection.Get(new Typeface("ABC"));
Assert.Null(typeface);
}
}
}

Loading…
Cancel
Save