Browse Source

add failing test for #1930 PathMarkupParser does not end figure when trailing spaces (newlines) are present

Andrey Kunchev 7 years ago
parent
commit
cabdb077a1
1 changed files with 23 additions and 2 deletions
  1. 23 2
      tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs

+ 23 - 2
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
             }
         }
     }
-}
+}