Index: Source/core/css/CSSCalculationValueTest.cpp |
diff --git a/Source/core/css/CSSCalculationValueTest.cpp b/Source/core/css/CSSCalculationValueTest.cpp |
index bfd0be481e6d653fa92181abb1f847e37164f811..c2f80b1a3ee987e8b356d83dda8bb6ac1823c71f 100644 |
--- a/Source/core/css/CSSCalculationValueTest.cpp |
+++ b/Source/core/css/CSSCalculationValueTest.cpp |
@@ -41,6 +41,15 @@ using namespace WebCore; |
namespace { |
+void testExpression(PassRefPtr<CSSCalcExpressionNode> expression, const RenderStyle* style) |
+{ |
+ EXPECT_TRUE( |
+ expression->equals( |
+ *CSSCalcValue::createExpressionNode( |
+ expression->toCalcValue(style, style, style->effectiveZoom()).get(), |
+ style).get())); |
+} |
+ |
TEST(CSSCalculationValue, CreateExpressionNodeFromLength) |
{ |
RefPtr<RenderStyle> style = RenderStyle::create(); |
@@ -97,4 +106,42 @@ TEST(CSSCalculationValue, CreateExpressionNodeFromLength) |
EXPECT_TRUE(actual->equals(*expected.get())); |
} |
+TEST(CSSCalculationValue, CreateExpressionNodeFromLengthFromExpressionNode) |
+{ |
+ RefPtr<CSSCalcExpressionNode> expression; |
+ RefPtr<RenderStyle> style = RenderStyle::createDefaultStyle(); |
+ style->setEffectiveZoom(5); |
+ |
+ testExpression( |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_PX), true), |
+ style.get()); |
+ |
+ testExpression( |
+ CSSCalcValue::createExpressionNode( |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_PX), true), |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(20, CSSPrimitiveValue::CSS_PX), true), |
+ CalcAdd), |
+ style.get()); |
+ |
+ testExpression( |
+ CSSCalcValue::createExpressionNode( |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(30, CSSPrimitiveValue::CSS_PX), true), |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(40, CSSPrimitiveValue::CSS_NUMBER), true), |
+ CalcMultiply), |
+ style.get()); |
+ |
+ testExpression( |
+ CSSCalcValue::createExpressionNode( |
+ CSSCalcValue::createExpressionNode( |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(50, CSSPrimitiveValue::CSS_PX), true), |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(0.25, CSSPrimitiveValue::CSS_NUMBER), false), |
+ CalcMultiply), |
+ CSSCalcValue::createExpressionNode( |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(60, CSSPrimitiveValue::CSS_PX), true), |
+ CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(0.75, CSSPrimitiveValue::CSS_NUMBER), false), |
+ CalcMultiply), |
+ CalcAdd), |
+ style.get()); |
+} |
+ |
} |