InlineTests.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using Avalonia.Media;
  2. using Avalonia.UnitTests;
  3. using Avalonia.Media.TextFormatting;
  4. using Avalonia.Controls.Documents;
  5. using Xunit;
  6. using System.Collections.Generic;
  7. namespace Avalonia.Controls.UnitTests
  8. {
  9. public class InlineTests : ScopedTestBase
  10. {
  11. [Fact]
  12. public void Should_Inherit_FontWeight_In_Nested_Inlines()
  13. {
  14. var bold = new Bold();
  15. var span = new Span();
  16. var run = new Run("Test");
  17. span.Inlines.Add(run);
  18. bold.Inlines.Add(span);
  19. var textRuns = new List<TextRun>();
  20. bold.BuildTextRun(textRuns, default);
  21. var runProperties = textRuns[0].Properties;
  22. Assert.Equal(FontWeight.Bold, runProperties.Typeface.Weight);
  23. }
  24. [Fact]
  25. public void Should_Inherit_FontStyle_In_Nested_Inlines()
  26. {
  27. var italic = new Italic();
  28. var span = new Span();
  29. var run = new Run("Test");
  30. span.Inlines.Add(run);
  31. italic.Inlines.Add(span);
  32. var textRuns = new List<TextRun>();
  33. italic.BuildTextRun(textRuns, default);
  34. var runProperties = textRuns[0].Properties;
  35. Assert.Equal(FontStyle.Italic, runProperties.Typeface.Style);
  36. }
  37. [Fact]
  38. public void Should_Inherit_FontStretch_In_Nested_Inlines()
  39. {
  40. var span = new Span();
  41. var innerSpan = new Span();
  42. var run = new Run("Test");
  43. span.FontStretch = FontStretch.Condensed;
  44. innerSpan.Inlines.Add(run);
  45. span.Inlines.Add(innerSpan);
  46. var textRuns = new List<TextRun>();
  47. span.BuildTextRun(textRuns, default);
  48. var runProperties = textRuns[0].Properties;
  49. Assert.Equal(FontStretch.Condensed, runProperties.Typeface.Stretch);
  50. }
  51. [Fact]
  52. public void Should_Inherit_Background_In_Nested_Inlines()
  53. {
  54. var backgroundBrush = Brushes.Red;
  55. var span = new Span();
  56. var innerSpan = new Span();
  57. var run = new Run("Test");
  58. span.Background = backgroundBrush;
  59. innerSpan.Inlines.Add(run);
  60. span.Inlines.Add(innerSpan);
  61. var textRuns = new List<TextRun>();
  62. span.BuildTextRun(textRuns, default);
  63. var runProperties = textRuns[0].Properties;
  64. Assert.Equal(backgroundBrush, runProperties.BackgroundBrush);
  65. }
  66. }
  67. }