diff options
Diffstat (limited to 'tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht')
-rw-r--r-- | tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht new file mode 100644 index 00000000000..e64082cbe50 --- /dev/null +++ b/tests/wpt/css-tests/css-values-3_dev/xhtml1/calc-unit-analysis.xht @@ -0,0 +1,91 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head> + <title>CSS Variables Allowed Syntax</title> + <link href="http://dbaron.org/" rel="author" title="L. David Baron" /> + <link href="http://mozilla.com/" rel="author" title="Mozilla Corporation" /> + <link href="http://www.w3.org/TR/css3-values/#lengths" rel="help" /> + <link href="http://www.w3.org/TR/css3-values/#calc-type-checking" rel="help" /> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +<style id="style"></style> +<script id="metadata_cache">/* +{ + "unitless_zero_in_calc_is_a_numeric_type_not_length": { "assert": "invalid calc expression: unitless zero in calc() is a numeric type, not length" }, + "0px_in_calc": { "assert": "invalid calc expression: 0px in calc()" }, + "addition_of_length_and_number": { "assert": "invalid calc expression: addition of length and number" }, + "addition_of_number_and_length": { "assert": "invalid calc expression: addition of number and length" }, + "subtraction_of_length_and_number": { "assert": "invalid calc expression: subtraction of length and number" }, + "subtraction_of_number_and_length": { "assert": "invalid calc expression: subtraction of number and length" }, + "multiplication_of_length_and_number": { "assert": "invalid calc expression: multiplication of length and number" }, + "multiplication_of_number_and_length": { "assert": "invalid calc expression: multiplication of number and length" }, + "multiplication_of_length_and_length": { "assert": "invalid calc expression: multiplication of length and length" } +} +*/</script> +</head> +<body onload="run()"> +<div id="log"></div> +<div id="test"></div> +<script> + +function run() { + var test_elt = document.getElementById("test"); + var test_cs = window.getComputedStyle(test_elt, ""); + + function description_to_name(description) { + return description.replace(/\W+/g, "_").replace(/^_/, "").replace(/_$/, ""); + } + + function assert_invalid_value(property, value, description) { + test(function() { + test_elt.style.setProperty(property, "inherit"); + test_elt.style.setProperty(property, value); + assert_equals(test_elt.style.getPropertyValue(property), + "inherit"); + test_elt.style.setProperty(property, value); + test_elt.style.removeProperty(property); + }, + description_to_name(description), + { assert: "invalid calc expression: " + description }); + } + + function assert_valid_value(property, value, computes_to, description) { + test(function() { + test_elt.style.setProperty(property, "inherit"); + test_elt.style.setProperty(property, value); + assert_not_equals(test_elt.style.getPropertyValue(property), + "inherit"); + assert_equals(test_cs.getPropertyValue(property), + computes_to); + test_elt.style.removeProperty(property); + }, + description_to_name(description), + { assert: "valid calc expression: " + description }); + } + + assert_invalid_value("margin-left", "calc(0)", + "unitless zero in calc() is a numeric type, not length"); + assert_valid_value("margin-left", "calc(0px)", "0px", + "0px in calc()"); + assert_invalid_value("margin-left", "calc(1px + 2)", + "addition of length and number"); + assert_invalid_value("margin-left", "calc(2 + 1px)", + "addition of number and length"); + assert_invalid_value("margin-left", "calc(1px - 2)", + "subtraction of length and number"); + assert_invalid_value("margin-left", "calc(2 - 1px)", + "subtraction of number and length"); + assert_valid_value("margin-left", "calc(2px * 2)", "4px", + "multiplication of length and number"); + assert_valid_value("margin-left", "calc(2 * 2px)", "4px", + "multiplication of number and length"); + assert_invalid_value("margin-left", "calc(2px * 1px)", + "multiplication of length and length"); + +} + +run(); + +</script> + + +</body></html>
\ No newline at end of file |