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()
3737 {
3838 var source = new StringSource ( @"calc(5 + (3 + 7))" ) ;
3939 var calc = CalcParser . ParseCalc ( source ) ;
40- Assert . AreEqual ( "calc(5 + 3 + 7)" , calc . CssText ) ;
40+ Assert . AreEqual ( "calc(5 + ( 3 + 7) )" , calc . CssText ) ;
4141 }
4242
4343 [ Test ]
4444 public void CalcAdditionWithCalcBracket ( )
4545 {
4646 var source = new StringSource ( @"calc(5 + calc(3 + 7))" ) ;
4747 var calc = CalcParser . ParseCalc ( source ) ;
48- Assert . AreEqual ( "calc(5 + 3 + 7)" , calc . CssText ) ;
48+ Assert . AreEqual ( "calc(5 + ( 3 + 7) )" , calc . CssText ) ;
4949 }
5050
5151 [ Test ]
Original file line number Diff line number Diff line change @@ -124,11 +124,13 @@ private static ICssValue ParseBracketExpression(this StringSource source)
124124 if ( source . Current == Symbols . RoundBracketOpen )
125125 {
126126 source . SkipCurrentAndSpaces ( ) ;
127- return source . ParseExpression ( ) ;
127+ var content = source . ParseExpression ( ) ;
128+ return new CssCalcBracketExpression ( content ) ;
128129 }
129130 else if ( source . IsFunction ( FunctionNames . Calc ) )
130131 {
131- return source . ParseExpression ( ) ;
132+ var content = source . ParseExpression ( ) ;
133+ return new CssCalcBracketExpression ( content ) ;
132134 }
133135
134136 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