<!DOCTYPE html>
<script>
if (window.testRunner)
testRunner.dumpAsText();
</script>
<style>
#test, button {
font: 10px Ahem;
}
button, span, input { -webkit-appearance: none; }
#b1 { margin-bottom: 0; border-bottom: 0; padding-bottom: 0; }
/* Give b3 a border-bottom that's the same as the descent of Ahem,
* therefore, the bottom of b3 should be the same as the bottom of the span.
*/
#b3 { margin-bottom: 0; border-bottom: 2px outset; padding-bottom: 0; }
</style>
<p>Tests correct button behavior with respect to collapsing and baseline: Empty
buttons have a baseline at the bottom of the content box; buttons with text are
aligned so that the text lines up. Also, empty buttons should collapse.</p>
<p>To understand this test, note that with the Ahem font, the bottom of the "X"
is 2px below the baseline (at a 10px font-size).</p>
<div id="test">
<p><button id="b1"></button> <button id="b2"><span id="s2">X</span></button>
<button id="b3"></button>
<span id="s-ref">X</span></p>
</div>
<p id="out"></p>
<script>
function output(msg) {
var out = document.getElementById("out");
out.innerHTML += msg;
}
function bottom(node) {
// bottom of the border-box
return node.offsetTop + node.offsetHeight;
}
function check_equal(i1, i2, msg) {
if (i1 == i2) output("PASS<br>");
else output("FAIL: " + i1 + " != " + i2 + ": " + msg + "<br>");
}
var b1 = document.getElementById("b1");
var s2 = document.getElementById("s2");
var sref = document.getElementById("s-ref");
check_equal(bottom(b1), bottom(sref) - 2, "b1 bottom == span baseline");
check_equal(bottom(s2), bottom(sref), "s2 bottom == span bottom");
check_equal(bottom(b3), bottom(sref), "b3 bottom == span bottom");
// Now check for collapsing
var b1 = document.getElementById("b1");
var s2 = document.getElementById("s2");
if (b1.offsetHeight < s2.offsetHeight) output("PASS<br>");
else output("FAIL: empty buttons should collapse (offsetHeight should be smaller than the text)<br>")
</script>