diff --git a/Source/Text/SvgTextBase.cs b/Source/Text/SvgTextBase.cs index dc7d69ec569e7fa3764d31fe4cc82674ec936f62..aed565ee3b503076ee3aaeed4301b67e471aedff 100644 --- a/Source/Text/SvgTextBase.cs +++ b/Source/Text/SvgTextBase.cs @@ -26,7 +26,16 @@ namespace Svg public virtual string Text { get { return base.Content; } - set { base.Content = value; this.IsPathDirty = true; this.Content = value; } + set { + Nodes.Clear(); + Children.Clear(); + if(value != null) + { + Nodes.Add(new SvgContentNode { Content = value }); + } + this.IsPathDirty = true; + Content = value; + } } /// diff --git a/Tests/Svg.UnitTests/Svg.UnitTests.csproj b/Tests/Svg.UnitTests/Svg.UnitTests.csproj index 3fd972f4d395f6036218eba7b2c7adad4f6743c2..92f8e3349783b4efda069063dae53d3c7e24cd48 100644 --- a/Tests/Svg.UnitTests/Svg.UnitTests.csproj +++ b/Tests/Svg.UnitTests/Svg.UnitTests.csproj @@ -64,6 +64,7 @@ + diff --git a/Tests/Svg.UnitTests/SvgTextTests.cs b/Tests/Svg.UnitTests/SvgTextTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..4336e51ca8d3be92dfb5e20768563df975c7dc93 --- /dev/null +++ b/Tests/Svg.UnitTests/SvgTextTests.cs @@ -0,0 +1,31 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Xml; + +namespace Svg.UnitTests +{ + [TestClass] + public class SvgTextTests + { + + [TestMethod] + public void TextPropertyAffectsSvgOutput() + { + var document = new SvgDocument(); + document.Children.Add(new SvgText { Text = "test1" }); + using(var stream = new MemoryStream()) + { + document.Write(stream); + stream.Position = 0; + + var xmlDoc = new XmlDocument(); + xmlDoc.Load(stream); + Assert.AreEqual("test1", xmlDoc.DocumentElement.FirstChild.InnerText); + } + } + } +}