Browse Source

Merge pull request #1931 from donandren/issues/1930

fixes pathparser when there are trailing spaces
codefreeze-0.7
Steven Kirk 7 years ago
committed by GitHub
parent
commit
1007b545cd
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Avalonia.Visuals/Media/PathMarkupParser.cs
  2. 25
      tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs

4
src/Avalonia.Visuals/Media/PathMarkupParser.cs

@ -107,7 +107,7 @@ namespace Avalonia.Media
{
if(!ReadCommand(ref span, out var command, out var relative))
{
return;
break;
}
bool initialCommand = true;
@ -565,4 +565,4 @@ namespace Avalonia.Media
return true;
}
}
}
}

25
tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs

@ -9,6 +9,8 @@ namespace Avalonia.Visuals.UnitTests.Media
{
using System.Globalization;
using System.IO;
using Avalonia.Platform;
using Moq;
public class PathMarkupParserTests
{
@ -18,7 +20,7 @@ namespace Avalonia.Visuals.UnitTests.Media
var pathGeometry = new PathGeometry();
using (var context = new PathGeometryContext(pathGeometry))
using (var parser = new PathMarkupParser(context))
{
{
parser.Parse("M10 10");
var figure = pathGeometry.Figures[0];
@ -202,6 +204,25 @@ namespace Avalonia.Visuals.UnitTests.Media
}
}
[Theory]
[InlineData("M0 0L10 10")]
[InlineData("M0 0L10 10z")]
[InlineData("M0 0L10 10 \n ")]
[InlineData("M0 0L10 10z \n ")]
[InlineData("M0 0L10 10 ")]
[InlineData("M0 0L10 10z ")]
public void Should_AlwaysEndFigure(string pathData)
{
var context = new Mock<IGeometryContext>();
using (var parser = new PathMarkupParser(context.Object))
{
parser.Parse(pathData);
}
context.Verify(v => v.EndFigure(It.IsAny<bool>()), Times.AtLeastOnce());
}
[Theory]
[InlineData("0 0")]
[InlineData("j")]
@ -215,4 +236,4 @@ namespace Avalonia.Visuals.UnitTests.Media
}
}
}
}
}

Loading…
Cancel
Save