| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <script src='../resources/testharness.js'></script> | |
| 3 <script src='../resources/testharnessreport.js'></script> | |
| 4 | |
| 5 <script> | |
| 6 test(function() { | |
| 7 assert_throws(null, function() { new CSSCalcLength(); }); | |
| 8 assert_throws(null, function() { new CSSCalcLength({}); }); | |
| 9 assert_throws(null, function() { new CSSCalcLength({foo: 1}); }); | |
| 10 }, 'Passing invalid arguments to CSSCalcLength throws an exception.'); | |
| 11 | |
| 12 test(function() { | |
| 13 var calcLength1 = new CSSCalcLength({px: 1, percent: 2.2}); | |
| 14 var calcLength2 = new CSSCalcLength({px: 3, percent: 4.3}); | |
| 15 | |
| 16 var result = calcLength1.add(calcLength2); | |
| 17 | |
| 18 assert_not_equals(calcLength1, result); | |
| 19 assert_not_equals(calcLength2, result); | |
| 20 assert_equals(result.constructor.name, CSSCalcLength.name); | |
| 21 assert_equals(result.px, 4); | |
| 22 assert_equals(result.percent, 6.5); | |
| 23 }, 'Adding two CSSCalcLengths produces a new CSSCalcLength with the correct valu
e.'); | |
| 24 | |
| 25 test(function() { | |
| 26 var calcLength1 = new CSSCalcLength({px: 1, percent: 2.2}); | |
| 27 var calcLength2 = new CSSCalcLength({px: 3, percent: 4.3}); | |
| 28 | |
| 29 var result = calcLength1.subtract(calcLength2); | |
| 30 | |
| 31 assert_not_equals(calcLength1, result); | |
| 32 assert_not_equals(calcLength2, result); | |
| 33 assert_equals(result.constructor.name, CSSCalcLength.name); | |
| 34 assert_equals(result.px, -2); | |
| 35 assert_approx_equals(result.percent, -2.1, 0.000001); | |
| 36 }, 'Subtracting two CSSCalcLengths produces a new CSSCalcLength with the correct
values.'); | |
| 37 | |
| 38 test(function() { | |
| 39 var calcLength = new CSSCalcLength({px: 1, percent: 5.2}); | |
| 40 var result = calcLength.multiply(3); | |
| 41 | |
| 42 assert_not_equals(calcLength, result); | |
| 43 assert_equals(result.px, 3); | |
| 44 assert_approx_equals(result.percent, 15.6, 0.000001); | |
| 45 }, 'Multiplying a CSSCalcLength produces a new CSSCalcLength with the correct va
lues.'); | |
| 46 | |
| 47 test(function() { | |
| 48 var calcLength = new CSSCalcLength({px: 3, percent: 15.6}); | |
| 49 var result = calcLength.divide(3); | |
| 50 | |
| 51 assert_not_equals(calcLength, result); | |
| 52 assert_equals(result.px, 1); | |
| 53 assert_equals(result.percent, 5.2); | |
| 54 }, 'Dividing a CSSCalcLength produces a new CSSCalcLength with the correct value
s.'); | |
| 55 | |
| 56 test(function() { | |
| 57 var calcLength = new CSSCalcLength({px: 4, percent: 1}); | |
| 58 assert_throws(new RangeError(), function() { calcLength.divide(0); }); | |
| 59 }, 'Dividing by zero throws a RangeError'); | |
| 60 | |
| 61 test(function() { | |
| 62 var values = [ | |
| 63 {input: new CSSCalcLength({px: 1}), cssText: 'calc(1px)'}, | |
| 64 {input: new CSSCalcLength({px: -1}), cssText: 'calc(-1px)'}, | |
| 65 {input: new CSSCalcLength({px: 1, percent: 15.6}), cssText: 'calc(15.6% + 1p
x)'}, | |
| 66 {input: new CSSCalcLength({px: 1, percent: -15.6}), cssText: 'calc(-15.6% +
1px)'}, | |
| 67 {input: new CSSCalcLength({px: -1, percent: -15.6}), cssText: 'calc(-15.6% -
1px)'}, | |
| 68 {input: new CSSCalcLength({px: -1, percent: -15.6, vw: 5}), cssText: 'calc((
-15.6% - 1px) + 5vw)'}, | |
| 69 {input: new CSSCalcLength({px: -1, percent: -15.6, vw: -5}), cssText: 'calc(
(-15.6% - 1px) - 5vw)'}, | |
| 70 ]; | |
| 71 | |
| 72 for (var i = 0; i < values.length; ++i) { | |
| 73 assert_equals(values[i].input.cssText, values[i].cssText); | |
| 74 } | |
| 75 | |
| 76 }, 'cssText produces the correct string'); | |
| 77 | |
| 78 </script> | |
| 79 | |
| 80 <body> | |
| 81 </body> | |
| OLD | NEW |