File tree Expand file tree Collapse file tree 3 files changed +38
-4
lines changed
AngleSharp.Css.Tests/Values Expand file tree Collapse file tree 3 files changed +38
-4
lines changed Original file line number Diff line number Diff line change @@ -37,15 +37,15 @@ public void CalcAdditionWithBrackets()
37
37
{
38
38
var source = new StringSource ( @"calc(5 + (3 + 7))" ) ;
39
39
var calc = CalcParser . ParseCalc ( source ) ;
40
- Assert . AreEqual ( "calc(5 + 3 + 7)" , calc . CssText ) ;
40
+ Assert . AreEqual ( "calc(5 + ( 3 + 7) )" , calc . CssText ) ;
41
41
}
42
42
43
43
[ Test ]
44
44
public void CalcAdditionWithCalcBracket ( )
45
45
{
46
46
var source = new StringSource ( @"calc(5 + calc(3 + 7))" ) ;
47
47
var calc = CalcParser . ParseCalc ( source ) ;
48
- Assert . AreEqual ( "calc(5 + 3 + 7)" , calc . CssText ) ;
48
+ Assert . AreEqual ( "calc(5 + ( 3 + 7) )" , calc . CssText ) ;
49
49
}
50
50
51
51
[ Test ]
Original file line number Diff line number Diff line change @@ -124,11 +124,13 @@ private static ICssValue ParseBracketExpression(this StringSource source)
124
124
if ( source . Current == Symbols . RoundBracketOpen )
125
125
{
126
126
source . SkipCurrentAndSpaces ( ) ;
127
- return source . ParseExpression ( ) ;
127
+ var content = source . ParseExpression ( ) ;
128
+ return new CssCalcBracketExpression ( content ) ;
128
129
}
129
130
else if ( source . IsFunction ( FunctionNames . Calc ) )
130
131
{
131
- return source . ParseExpression ( ) ;
132
+ var content = source . ParseExpression ( ) ;
133
+ return new CssCalcBracketExpression ( content ) ;
132
134
}
133
135
134
136
return source . ParseAtomicExpression ( ) ;
Original file line number Diff line number Diff line change
1
+ namespace AngleSharp . Css . Values
2
+ {
3
+ using AngleSharp . Css . Dom ;
4
+ using System ;
5
+
6
+ /// <summary>
7
+ /// Represents a calc bracket expression, i.e., (2+3).
8
+ /// </summary>
9
+ sealed class CssCalcBracketExpression : ICssCompositeValue
10
+ {
11
+ private readonly ICssValue _content ;
12
+
13
+ /// <summary>
14
+ /// Creates a new calc bracket expression.
15
+ /// </summary>
16
+ /// <param name="content">The enclosed content.</param>
17
+ public CssCalcBracketExpression ( ICssValue content )
18
+ {
19
+ _content = content ;
20
+ }
21
+
22
+ /// <summary>
23
+ /// Gets the bracket's content.
24
+ /// </summary>
25
+ public ICssValue Value => _content ;
26
+
27
+ /// <summary>
28
+ /// Gets the CSS text representation.
29
+ /// </summary>
30
+ public String CssText => String . Concat ( "(" , _content . CssText , ")" ) ;
31
+ }
32
+ }
You can’t perform that action at this time.
0 commit comments