| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 80 |
| 81 bool lengthArraysEqual(CSSLengthArray& a, CSSLengthArray& b) | 81 bool lengthArraysEqual(CSSLengthArray& a, CSSLengthArray& b) |
| 82 { | 82 { |
| 83 for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; ++i) { | 83 for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; ++i) { |
| 84 if (a.at(i) != b.at(i)) | 84 if (a.at(i) != b.at(i)) |
| 85 return false; | 85 return false; |
| 86 } | 86 } |
| 87 return true; | 87 return true; |
| 88 } | 88 } |
| 89 | 89 |
| 90 TEST(CSSCalculationValue, AccumulatePixelsAndPercent) | |
| 91 { | |
| 92 RefPtr<RenderStyle> style = RenderStyle::createDefaultStyle(); | |
| 93 style->setEffectiveZoom(5); | |
| 94 CSSToLengthConversionData conversionData(style.get(), style.get(), 0); | |
| 95 | |
| 96 testAccumulatePixelsAndPercent(conversionData, | |
| 97 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(10, CSSPrim
itiveValue::CSS_PX), true), | |
| 98 50, 0); | |
| 99 | |
| 100 testAccumulatePixelsAndPercent(conversionData, | |
| 101 CSSCalcValue::createExpressionNode( | |
| 102 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(10, CSS
PrimitiveValue::CSS_PX), true), | |
| 103 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(20, CSS
PrimitiveValue::CSS_PX), true), | |
| 104 CalcAdd), | |
| 105 150, 0); | |
| 106 | |
| 107 testAccumulatePixelsAndPercent(conversionData, | |
| 108 CSSCalcValue::createExpressionNode( | |
| 109 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(1, CSSP
rimitiveValue::CSS_IN), true), | |
| 110 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(2, CSSP
rimitiveValue::CSS_NUMBER), true), | |
| 111 CalcMultiply), | |
| 112 960, 0); | |
| 113 | |
| 114 testAccumulatePixelsAndPercent(conversionData, | |
| 115 CSSCalcValue::createExpressionNode( | |
| 116 CSSCalcValue::createExpressionNode( | |
| 117 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(50,
CSSPrimitiveValue::CSS_PX), true), | |
| 118 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(0.2
5, CSSPrimitiveValue::CSS_NUMBER), false), | |
| 119 CalcMultiply), | |
| 120 CSSCalcValue::createExpressionNode( | |
| 121 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(20,
CSSPrimitiveValue::CSS_PX), true), | |
| 122 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(40,
CSSPrimitiveValue::CSS_PERCENTAGE), false), | |
| 123 CalcSubtract), | |
| 124 CalcSubtract), | |
| 125 -37.5, 40); | |
| 126 } | |
| 127 | |
| 128 TEST(CSSCalculationValue, RefCount) | 90 TEST(CSSCalculationValue, RefCount) |
| 129 { | 91 { |
| 130 RefPtr<CalculationValue> calc = CalculationValue::create(PixelsAndPercent(1,
2), ValueRangeAll); | 92 RefPtr<CalculationValue> calc = CalculationValue::create(PixelsAndPercent(1,
2), ValueRangeAll); |
| 131 Length lengthA(calc); | 93 Length lengthA(calc); |
| 132 EXPECT_EQ(calc->refCount(), 2); | 94 EXPECT_EQ(calc->refCount(), 2); |
| 133 | 95 |
| 134 Length lengthB; | 96 Length lengthB; |
| 135 lengthB = lengthA; | 97 lengthB = lengthA; |
| 136 EXPECT_EQ(calc->refCount(), 3); | 98 EXPECT_EQ(calc->refCount(), 3); |
| 137 | 99 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 expectation.at(CSSPrimitiveValue::UnitTypePercentage) = 10; | 151 expectation.at(CSSPrimitiveValue::UnitTypePercentage) = 10; |
| 190 EXPECT_TRUE(lengthArraysEqual(expectation, setLengthArray(actual, "calc(1in
+ 10%% - 6px)"))); | 152 EXPECT_TRUE(lengthArraysEqual(expectation, setLengthArray(actual, "calc(1in
+ 10%% - 6px)"))); |
| 191 | 153 |
| 192 expectation.at(CSSPrimitiveValue::UnitTypePixels) = 15; | 154 expectation.at(CSSPrimitiveValue::UnitTypePixels) = 15; |
| 193 expectation.at(CSSPrimitiveValue::UnitTypeFontSize) = 20; | 155 expectation.at(CSSPrimitiveValue::UnitTypeFontSize) = 20; |
| 194 expectation.at(CSSPrimitiveValue::UnitTypePercentage) = -40; | 156 expectation.at(CSSPrimitiveValue::UnitTypePercentage) = -40; |
| 195 EXPECT_TRUE(lengthArraysEqual(expectation, setLengthArray(actual, "calc((1 *
2) * (5px + 20em / 2) - 80%% / (3 - 1) + 5px)"))); | 157 EXPECT_TRUE(lengthArraysEqual(expectation, setLengthArray(actual, "calc((1 *
2) * (5px + 20em / 2) - 80%% / (3 - 1) + 5px)"))); |
| 196 } | 158 } |
| 197 | 159 |
| 198 } | 160 } |
| OLD | NEW |