| <!doctype html> |
| <meta charset="utf-8"> |
| <title>CSS Tests: calc() and division for integers</title> |
| <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> |
| <link rel="author" title="Mozilla" href="https://mozilla.org"> |
| <link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-range"> |
| <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2337"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="test"></div> |
| <script> |
| const TESTS = [ |
| { |
| specified: "calc(2)", |
| computed: "2", |
| description: "Sanity", |
| }, |
| { |
| specified: "calc(4 / 2)", |
| computed: "2", |
| description: "Basic division works", |
| }, |
| { |
| specified: "calc(1 / 2)", |
| computed: "1", |
| description: "Rounds up if fractional part is >= 0.5", |
| }, |
| { |
| specified: "calc(0.5)", |
| computed: "1", |
| description: "Accepts numbers, and rounds", |
| }, |
| { |
| specified: "calc(6 / 2.0)", |
| computed: "3", |
| description: "Operation between <integer> and <number> works", |
| }, |
| { |
| specified: "calc(1 / 3)", |
| computed: "0", |
| description: "Rounds down if fractional part is < 0.5", |
| }, |
| { |
| specified: "calc(calc(1 / 3) * 3)", |
| computed: "1", |
| description: "Only rounds at the end of the conversion", |
| } |
| ]; |
| |
| const testElement = document.getElementById("test"); |
| for (const { specified, computed, description } of TESTS) { |
| test(function() { |
| testElement.style.zIndex = "42"; // Just something that we know it's valid and makes tests not rely on order. |
| testElement.style.zIndex = specified; |
| assert_equals(getComputedStyle(testElement).zIndex, computed); |
| }, description); |
| } |
| </script> |