gecko/toolkit/content/tests/widgets/test_textbox_emptytext.xul

60 lines
2.0 KiB
XML

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?>
<!--
XUL Widget Test for textbox with emptyText
-->
<window title="Textbox with emptyText test" width="500" height="600"
onfocus="if (!gDone) { gDone = true; doTests(); }"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript" src="/MochiKit/packed.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<hbox>
<textbox id="t1"/>
</hbox>
<!-- test resuls are displayed in the html:body -->
<body xmlns="http://www.w3.org/1999/xhtml" style="height: 300px; overflow: auto;"/>
<!-- test code goes here -->
<script type="application/javascript"><![CDATA[
var gDone = false;
SimpleTest.waitForExplicitFinish();
function doTests() {
var t1 = $("t1");
t1.emptyText = 1;
ok(t1.hasAttribute("empty"), "emptyText but no value => 'empty' attribute is present");
ok("1" === t1.label, "emptyText exposed as label");
ok("" === t1.value, "emptyText not exposed as value");
t1.label = 2;
ok("2" === t1.label, "label can be set explicitly");
ok("1" === t1.emptyText, "emptyText persists after setting label");
t1.value = 3;
ok(!t1.hasAttribute("empty"), "value present => 'empty' attribute not present");
ok("3" === t1.value, "value setter/getter works while emptyText is present");
ok("1" === t1.emptyText, "emptyText persists after setting value");
t1.value = "";
// More tests after a timeout, because the emptyText is displayed asynchronously.
setTimeout(function () {
is(t1.inputField.value, 1, "emptyText is displayed");
is(t1.textLength, 0, "textLength while emptyText is displayed");
t1.focus();
is(t1.inputField.value, "", "emptyText is not displayed as the textbox has focus");
SimpleTest.finish();
}, 100);
}
]]></script>
</window>