fune/layout/forms/test/test_unstyled_control_height.html
Emilio Cobos Álvarez c9a0f65ceb Bug 1802957 - Remove non-standard and unused system font values. r=jfkthame
And hide internal but used values. System fonts are not exposed in the
computed style so this should be fine.

If we need the old values for some obscure reason, it's trivial to alias
them to e.g., menu or so.

Differential Revision: https://phabricator.services.mozilla.com/D163269
2022-12-01 09:23:19 +00:00

72 lines
2 KiB
HTML

<!doctype html>
<meta charset="utf-8">
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<style>
#container *, #container2 * {
white-space: nowrap;
appearance: none;
}
input {
/* Reduce the width so that container can fit all its children in 600px viewport width. */
width: 100px;
}
/* date by default uses a monospace font, which might have different metrics */
input, button, select {
font: Menu;
}
.small-font * {
font-size: 8px !important; /* important to override rule above */
}
.no-padding * {
padding: 0;
}
</style>
<!-- Each container should fit all its children in the same line to verify every
child has the same |top|. -->
<div id="container">
<input>
<!-- Putting the <input> containing Burmese characters here is just to verify
our current behavior. They are slightly clipped. So if we fix it by
making the <input> taller, it's OK to remove it from this test. -->
<input value="漢字 jpg မြန်မာစာ">
<input type=date>
<button>Foo</button>
<select><option>Foo</option></select>
</div>
<br>
<div id="container2">
<button>漢字 Foo မြန်မာစာ</button>
<select><option>漢字 Foo မြန်မာစာ</option></select>
</div>
<script>
function testHeightMatches(id, desc) {
let commonHeight = null;
let commonTop = null;
for (let element of document.querySelectorAll(`#${id} > *`)) {
let rect = element.getBoundingClientRect();
if (commonHeight === null) {
commonHeight = rect.height;
commonTop = rect.top;
}
is(rect.height, commonHeight, `Height of the controls should match for ${element.outerHTML}${desc}`);
is(rect.top, commonTop, `Top of the controls should match for ${element.outerHTML}${desc}`);
}
}
for (id of ["container", "container2"]) {
const container = document.getElementById(id);
testHeightMatches(id, "");
container.className = "no-padding";
testHeightMatches(id, " without padding");
container.className = "small-font";
testHeightMatches(id, " with an small font");
}
</script>