Skip to content

Commit 09500e0

Browse files
committed
Escape property name
1 parent bbfba7d commit 09500e0

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/AngleSharp.Css.Tests/Library/StringRepresentation.cs

+22
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,27 @@ public void ConicGradientNotParsedCorrectly_Issue101()
8383
var css = styleSheet.ToCss();
8484
Assert.AreEqual("div { background: conic-gradient(rgba(255, 0, 0, 1), rgba(255, 255, 0, 1), rgba(0, 128, 0, 1)) }", css);
8585
}
86+
87+
[Test]
88+
public void EscapePropertyNames_CustomProperty_Issue120()
89+
{
90+
var css = @".class { --\/\%\$\!: value }";
91+
var styleSheet = ParseStyleSheet(css);
92+
93+
var generatedCss = styleSheet.ToCss();
94+
95+
Assert.AreEqual(css, generatedCss);
96+
}
97+
98+
[Test]
99+
public void EscapePropertyNames_UnknownDeclaration_Issue120()
100+
{
101+
var css = @".class { \/\%\$\!: value }";
102+
var styleSheet = ParseStyleSheet(css, new CssParserOptions{ IsIncludingUnknownDeclarations = true });
103+
104+
var generatedCss = styleSheet.ToCss();
105+
106+
Assert.AreEqual(css, generatedCss);
107+
}
86108
}
87109
}

src/AngleSharp.Css/Dom/Internal/CssProperty.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public Boolean IsImportant
8686

8787
#region String Representation
8888

89-
public void ToCss(TextWriter writer, IStyleFormatter formatter) => writer.Write(formatter.Declaration(Name, Value, IsImportant));
89+
public void ToCss(TextWriter writer, IStyleFormatter formatter) => writer.Write(formatter.Declaration(CssUtilities.Escape(Name), Value, IsImportant));
9090

9191
#endregion
9292
}

0 commit comments

Comments
 (0)