<!DOCTYPE html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script src="resources/common.js"></script>
</head>
<body>
<p>Check if the position of a validation message for a checkbox is good.</p>

<form action="validation-message-on-checkbox.html">
<input type=checkbox id=host required>
<input type=submit id=submit>
</form>

<div id="console"></div>
<script>
function check() {
    hostRect = getAbsoluteRect(host);
    bubbleRect = getAbsoluteRect(getValidationMessageBubbleNode(host));
    debug('The top of the bubble should be on the bottom of the host node:');
    shouldBe('bubbleRect.top', 'hostRect.bottom');
    debug('');
    debug('The left position of the bubble should be 0 because of no enough space:');
    shouldBeTrue('hostRect.left + hostRect.width / 2 < 32');
    shouldBe('bubbleRect.left', '0');
    debug('');

    finishJSTest();
}

var host = $('host');
var hostRect;
var bubbleRect;
$('submit').click();
if (window.testRunner) {
    setTimeout(check, 0);
} else {
    debug('The test requires testRunner.');
}

var jsTestIsAsync = true;
</script>
<script src="../../resources/js-test-post.js"></script>
</body>

