Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<title>CSS Values and Units Test: if() media() condition invalidation</title>
<meta name="assert" content="Test if() media() condition invalidation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
iframe {
width: 50px;
height: 50px;
}
</style>
<iframe id="iframe" srcdoc="
<div id=target></div>
<style>
#target {
--actual: if(media((height < 100px) or ((height >= 200px) and (height < 300px))): true_value; else: false_value;);
}
</style>
"></iframe>
<script>
function waitForLoad(w) {
return new Promise(resolve => w.addEventListener('load', resolve));
}
promise_test(async () => {
await waitForLoad(window);
const target = iframe.contentDocument.querySelector('#target');
let actualValue = () => getComputedStyle(target).getPropertyValue('--actual');
assert_equals(actualValue(), 'true_value', '--actual before resize');
// [<height of frame>, <expected function result>]
let data = [
['100px', 'false_value'],
['200px', 'true_value'],
['300px', 'false_value']
];
for (let d of data) {
iframe.style.height = d[0];
let expected = d[1];
assert_equals(actualValue(), expected, `--actual after resize to ${d[0]}`);
}
});
</script>