blob: 4581f1a4ff2a2edbd9110b8d0568c5e03cd95554 [file] [edit]
<!DOCTYPE html>
<meta charset="utf-8">
<title>getComputedStyle() returns resolved calculated values</title>
<link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!-- regression test for https://github.com/jsdom/jsdom/issues/4193 -->
<div style="width: 200px">
<div id="target"></div>
</div>
<script>
"use strict";
const values = new Map([
[
"calc(100% - 40px)", {
computed: "160px",
specified: "calc(100% - 40px)"
}
],
[
"calc(var(--gap) - 4px)", {
computed: "16px",
specified: "calc(var(--gap) - 4px)"
}
],
[
"calc(608px - env(safe-area-inset-top))", {
computed: "608px",
specified: "calc(608px - env(safe-area-inset-top))"
}
],
[
"calc(-1 * 8px)", {
computed: "-8px",
specified: "calc(-8px)"
}
],
[
"calc(8px * 2)", {
computed: "16px",
specified: "calc(16px)"
}
]
]);
for (const [key, value] of values) {
test(() => {
const div = document.getElementById("target");
div.style = `--gap: 20px; margin-left: ${key}`;
const res = window.getComputedStyle(div).marginLeft;
assert_not_equals(res, value.specified, "Does not match specified value");
assert_equals(res, value.computed, "Matches computed value");
}, `getComputedStyle() returns computed value for ${key}`);
}
</script>