| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- using Avalonia.Direct2D1.Media;
- using Avalonia.Media;
- using Avalonia.UnitTests;
- using Xunit;
- namespace Avalonia.Direct2D1.UnitTests.Media
- {
- public class FontManagerImplTests
- {
- private static string s_fontUri = "resm:Avalonia.Direct2D1.UnitTests.Assets?assembly=Avalonia.Direct2D1.UnitTests#Noto Mono";
- [Fact]
- public void Should_Create_Typeface_From_Fallback()
- {
- using (AvaloniaLocator.EnterScope())
- {
- Direct2D1Platform.Initialize();
- var fontManager = new FontManagerImpl();
- var glyphTypeface = (GlyphTypefaceImpl)fontManager.CreateGlyphTypeface(
- new Typeface(new FontFamily("A, B, Arial")));
- var font = glyphTypeface.DWFont;
- Assert.Equal("Arial", font.FontFamily.FamilyNames.GetString(0));
- Assert.Equal(SharpDX.DirectWrite.FontWeight.Normal, font.Weight);
- Assert.Equal(SharpDX.DirectWrite.FontStyle.Normal, font.Style);
- }
- }
- [Fact]
- public void Should_Create_Typeface_From_Fallback_Bold()
- {
- using (AvaloniaLocator.EnterScope())
- {
- Direct2D1Platform.Initialize();
- var fontManager = new FontManagerImpl();
- var glyphTypeface = (GlyphTypefaceImpl)fontManager.CreateGlyphTypeface(
- new Typeface(new FontFamily("A, B, Arial"), FontWeight.Bold));
- var font = glyphTypeface.DWFont;
- Assert.Equal("Arial", font.FontFamily.FamilyNames.GetString(0));
- Assert.Equal(SharpDX.DirectWrite.FontWeight.Bold, font.Weight);
- Assert.Equal(SharpDX.DirectWrite.FontStyle.Normal, font.Style);
- }
- }
- [Fact]
- public void Should_Create_Typeface_For_Unknown_Font()
- {
- using (AvaloniaLocator.EnterScope())
- {
- Direct2D1Platform.Initialize();
- var fontManager = new FontManagerImpl();
- var glyphTypeface = (GlyphTypefaceImpl)fontManager.CreateGlyphTypeface(
- new Typeface(new FontFamily("Unknown")));
- var font = glyphTypeface.DWFont;
- var defaultName = fontManager.GetDefaultFontFamilyName();
- Assert.Equal(defaultName, font.FontFamily.FamilyNames.GetString(0));
- Assert.Equal(SharpDX.DirectWrite.FontWeight.Normal, font.Weight);
- Assert.Equal(SharpDX.DirectWrite.FontStyle.Normal, font.Style);
- }
- }
- [Fact]
- public void Should_Load_Typeface_From_Resource()
- {
- using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
- {
- Direct2D1Platform.Initialize();
- var fontManager = new FontManagerImpl();
- var glyphTypeface = (GlyphTypefaceImpl)fontManager.CreateGlyphTypeface(
- new Typeface(s_fontUri));
- var font = glyphTypeface.DWFont;
- Assert.Equal("Noto Mono", font.FontFamily.FamilyNames.GetString(0));
- }
- }
- [Fact]
- public void Should_Load_Nearest_Matching_Font()
- {
- using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
- {
- Direct2D1Platform.Initialize();
- var fontManager = new FontManagerImpl();
- var glyphTypeface = (GlyphTypefaceImpl)fontManager.CreateGlyphTypeface(
- new Typeface(s_fontUri, FontWeight.Black, FontStyle.Italic));
- var font = glyphTypeface.DWFont;
- Assert.Equal("Noto Mono", font.FontFamily.FamilyNames.GetString(0));
- }
- }
- }
- }
|