Skip to content

Commit 3a64567

Browse files
committed
Fixed casing issue #109
1 parent fb96413 commit 3a64567

File tree

6 files changed

+33
-8
lines changed

6 files changed

+33
-8
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Released on Tuesday, May 31 2022.
44

55
- Dropped .NET Framework 4.6
66
- Updated to use AngleSharp 0.17
7+
- Fixed casing issue with color, timing, and gradient functions (#109)
78

89
# 0.16.4
910

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
namespace AngleSharp.Css.Tests.Functions
2+
{
3+
using AngleSharp.Css.Dom;
4+
using AngleSharp.Dom;
5+
using NUnit.Framework;
6+
using System.Linq;
7+
using static CssConstructionFunctions;
8+
9+
[TestFixture]
10+
public class CssColorFunctionTests
11+
{
12+
[Test]
13+
public void ColorNotParsedCorrectly_Issue109()
14+
{
15+
var html = @"<p style='color: RGB(0,17,0)'>Text</p>";
16+
var dom = ParseDocument(html);
17+
var p = dom.QuerySelector("p");
18+
var s = p.GetStyle();
19+
var color = s.GetColor();
20+
Assert.AreEqual("rgba(0, 17, 0, 1)", color);
21+
}
22+
}
23+
}
24+

src/AngleSharp.Css/Parser/Micro/ColorParser.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace AngleSharp.Css.Parser
88

99
static class ColorParser
1010
{
11-
private static readonly Dictionary<String, Func<StringSource, Color?>> ColorFunctions = new Dictionary<String, Func<StringSource, Color?>>
11+
private static readonly Dictionary<String, Func<StringSource, Color?>> ColorFunctions = new Dictionary<String, Func<StringSource, Color?>>(StringComparer.OrdinalIgnoreCase)
1212
{
1313
{ FunctionNames.Rgb, ParseRgba },
1414
{ FunctionNames.Rgba, ParseRgba },

src/AngleSharp.Css/Parser/Micro/GradientParser.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace AngleSharp.Css.Parser
88

99
static class GradientParser
1010
{
11-
private static readonly Dictionary<String, Func<StringSource, ICssGradientFunctionValue>> GradientFunctions = new Dictionary<string, Func<StringSource, ICssGradientFunctionValue>>
11+
private static readonly Dictionary<String, Func<StringSource, ICssGradientFunctionValue>> GradientFunctions = new Dictionary<string, Func<StringSource, ICssGradientFunctionValue>>(StringComparer.OrdinalIgnoreCase)
1212
{
1313
{ FunctionNames.LinearGradient, ParseLinearGradient },
1414
{ FunctionNames.RepeatingLinearGradient, ParseRepeatingLinearGradient },
@@ -168,7 +168,7 @@ private static CssGradientStopValue ParseGradientStop(StringSource source)
168168

169169
return null;
170170
}
171-
171+
172172
private static ICssValue ParseLinearAngle(StringSource source)
173173
{
174174
if (source.IsIdentifier(CssKeywords.To))
@@ -222,7 +222,7 @@ private static ICssValue ParseLinearAngleKeywords(StringSource source)
222222

223223
return null;
224224
}
225-
225+
226226
private static RadialOptions? ParseRadialOptions(StringSource source)
227227
{
228228
var circle = false;

src/AngleSharp.Css/Parser/Micro/TimingFunctionParser.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace AngleSharp.Css.Parser
77

88
static class TimingFunctionParser
99
{
10-
private static readonly Dictionary<String, Func<StringSource, ICssTimingFunctionValue>> TimingFunctions = new Dictionary<String, Func<StringSource, ICssTimingFunctionValue>>
10+
private static readonly Dictionary<String, Func<StringSource, ICssTimingFunctionValue>> TimingFunctions = new Dictionary<String, Func<StringSource, ICssTimingFunctionValue>>(StringComparer.OrdinalIgnoreCase)
1111
{
1212
{ FunctionNames.Steps, ParseSteps },
1313
{ FunctionNames.CubicBezier, ParseCubicBezier },
@@ -67,7 +67,7 @@ private static ICssTimingFunctionValue ParseSteps(StringSource source)
6767
return new CssStepsValue(intervals.Value, start);
6868
}
6969
}
70-
70+
7171
return null;
7272
}
7373

@@ -86,7 +86,7 @@ private static ICssTimingFunctionValue ParseCubicBezier(StringSource source)
8686
{
8787
return new CssCubicBezierValue(p1.Value, p2.Value, p3.Value, p4.Value);
8888
}
89-
89+
9090
return null;
9191
}
9292
}

src/AngleSharp.Css/Parser/Micro/TransformParser.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace AngleSharp.Css.Parser
88

99
static class TransformParser
1010
{
11-
private static readonly Dictionary<String, Func<StringSource, ICssTransformFunctionValue>> TransformFunctions = new Dictionary<String, Func<StringSource, ICssTransformFunctionValue>>
11+
private static readonly Dictionary<String, Func<StringSource, ICssTransformFunctionValue>> TransformFunctions = new Dictionary<String, Func<StringSource, ICssTransformFunctionValue>>(StringComparer.OrdinalIgnoreCase)
1212
{
1313
{ FunctionNames.Skew, ParseSkew2d },
1414
{ FunctionNames.SkewX, ParseSkewX },

0 commit comments

Comments
 (0)