Browse Source

Normalize family names to upper case

pull/10620/head
Benedikt Stebner 3 years ago
parent
commit
7b8f7dbfce
  1. 2
      src/Avalonia.Base/Media/FontManager.cs
  2. 31
      tests/Avalonia.Skia.UnitTests/Media/FontManagerTests.cs

2
src/Avalonia.Base/Media/FontManager.cs

@ -141,7 +141,7 @@ namespace Avalonia.Media
}
}
return SystemFonts.TryGetGlyphTypeface(DefaultFontFamilyName.ToUpperInvariant(), typeface.Style, typeface.Weight, typeface.Stretch, out glyphTypeface);
return TryGetGlyphTypeface(new Typeface(DefaultFontFamilyName, typeface.Style, typeface.Weight, typeface.Stretch), out glyphTypeface);
}
/// <summary>

31
tests/Avalonia.Skia.UnitTests/Media/FontManagerImplTests.cs → tests/Avalonia.Skia.UnitTests/Media/FontManagerTests.cs

@ -1,5 +1,4 @@
using System;
using System.Linq;
using Avalonia.Media;
using Avalonia.UnitTests;
using SkiaSharp;
@ -7,7 +6,7 @@ using Xunit;
namespace Avalonia.Skia.UnitTests.Media
{
public class FontManagerImplTests
public class FontManagerTests
{
private static string s_fontUri = "resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Noto Mono";
@ -87,5 +86,33 @@ namespace Avalonia.Skia.UnitTests.Media
Assert.False(result);
}
}
[Fact]
public void Should_Load_Embedded_Font_With_Wrong_CharacterCasing()
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface.With(fontManagerImpl: new FontManagerImpl())))
{
var result = FontManager.Current.TryGetGlyphTypeface(new Typeface("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#noto mOnO"), out var glyphTypeface);
Assert.True(result);
Assert.Equal("Noto Mono", glyphTypeface.FamilyName);
}
}
[Fact]
public void Should_Load_Embedded_DefaultFontFamily()
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface.With(fontManagerImpl: new FontManagerImpl())))
{
AvaloniaLocator.CurrentMutable.BindToSelf(new FontManagerOptions { DefaultFamilyName = s_fontUri });
var result = FontManager.Current.TryGetGlyphTypeface(new Typeface(FontFamily.DefaultFontFamilyName), out var glyphTypeface);
Assert.True(result);
Assert.Equal("Noto Mono", glyphTypeface.FamilyName);
}
}
}
}
Loading…
Cancel
Save