Index: third_party/WebKit/LayoutTests/typedcssom/calcLength.html |
diff --git a/third_party/WebKit/LayoutTests/typedcssom/calcLength.html b/third_party/WebKit/LayoutTests/typedcssom/calcLength.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e8ee3f480bc757ca76b2bcfe9d454249a3abd690 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/typedcssom/calcLength.html |
@@ -0,0 +1,76 @@ |
+<!DOCTYPE html> |
+<script src='../resources/testharness.js'></script> |
+<script src='../resources/testharnessreport.js'></script> |
+ |
+<script> |
+test(function() { |
+ assert_throws(null, function() { new CalcLength(); }); |
+ assert_throws(null, function() { new CalcLength({}); }); |
+ assert_throws(null, function() { new CalcLength({foo: 1}); }); |
+}, 'Test that passing invalid arguments to CalcLength throws an exception.'); |
+ |
+test(function() { |
+ var calcLength1 = new CalcLength({px: 1, percent: 2.2}); |
+ var calcLength2 = new CalcLength({px: 3, percent: 4.3}); |
+ |
+ var result = calcLength1.add(calcLength2); |
+ |
+ assert_not_equals(calcLength1, result); |
+ assert_not_equals(calcLength2, result); |
+ assert_true(result instanceof CalcLength); |
+ assert_equals(result.px, 4); |
+ assert_equals(result.percent, 6.5); |
+}, 'Test that adding two CalcLengths produces a new CalcLength with the correct value.'); |
+ |
+test(function() { |
+ var calcLength1 = new CalcLength({px: 1, percent: 2.2}); |
+ var calcLength2 = new CalcLength({px: 3, percent: 4.3}); |
+ |
+ var result = calcLength1.subtract(calcLength2); |
+ |
+ assert_not_equals(calcLength1, result); |
+ assert_not_equals(calcLength2, result); |
+ assert_true(result instanceof CalcLength); |
+ assert_equals(result.px, -2); |
+ assert_approx_equals(result.percent, -2.1, 0.000001); |
+}, 'Test that subtracting two CalcLengths produces a new CalcLength with the correct values.'); |
+ |
+test(function() { |
+ var calcLength = new CalcLength({px: 1, percent: 5.2}); |
+ var result = calcLength.multiply(3); |
+ |
+ assert_not_equals(calcLength, result); |
+ assert_equals(result.px, 3); |
+ assert_approx_equals(result.percent, 15.6, 0.000001); |
+}, 'Test that multiplying a CalcLength produces a new CalcLength with the correct values.'); |
+ |
+test(function() { |
+ var calcLength = new CalcLength({px: 3, percent: 15.6}); |
+ var result = calcLength.divide(3); |
+ |
+ assert_not_equals(calcLength, result); |
+ assert_equals(result.px, 1); |
+ assert_equals(result.percent, 5.2); |
+}, 'Test that dividing a CalcLength produces a new CalcLength with the correct values.'); |
+ |
+test(function() { |
+ var values = [ |
+ {input: new CalcLength({px: 1}), cssString: 'calc(1px)'}, |
+ {input: new CalcLength({px: -1}), cssString: 'calc(-1px)'}, |
+ {input: new CalcLength({px: 1, percent: 15.6}), cssString: 'calc(1px + 15.6%)'}, |
+ {input: new CalcLength({px: 1, percent: -15.6}), cssString: 'calc(1px - 15.6%)'}, |
+ {input: new CalcLength({px: -1, percent: -15.6}), cssString: 'calc(-1px - 15.6%)'}, |
+ {input: new CalcLength({px: -1, percent: -15.6, vw: 5}), cssString: 'calc((-1px - 15.6%) + 5vw)'}, |
+ {input: new CalcLength({px: -1, percent: -15.6, vw: -5}), cssString: 'calc((-1px - 15.6%) - 5vw)'}, |
+ ]; |
+ |
+ for (var i = 0; i < values.length; ++i) { |
+ assert_equals(values[i].input.cssString, values[i].cssString); |
+ } |
+ |
+}, 'Test that the CSS string method for a CalcLength produces the correct result'); |
+ |
+</script> |
+ |
+<body> |
+</body> |