<?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"
        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 results 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[

SimpleTest.waitForExplicitFinish();

function doTests() {
  var t1 = $("t1");

  t1.emptyText = 1;
  ok(t1.hasAttribute("isempty"), "emptyText but no value => 'isempty' 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("isempty"), "value present => 'isempty' 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 = "";
  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();
}

SimpleTest.waitForFocus(doTests);

  ]]></script>

</window>
