<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
                 type="text/css"?>
<?xml-stylesheet href="../nsIAccessible_name.css"
                 type="text/css"?>


<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        title="nsIAccessible actions testing">

  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />

  <script type="application/javascript"
          src="../common.js" />
  <script type="application/javascript"
          src="../events.js" />
  <script type="application/javascript"
          src="../actions.js" />

  <script type="application/javascript">
  <![CDATA[
    //gA11yEventDumpToConsole = true;
    //enableLogging("tree,verbose"); // debug

    if (navigator.platform.startsWith("Mac")) {
      SimpleTest.expectAssertions(0, 1);
    } else {
      SimpleTest.expectAssertions(0, 1);
    }

    function doTest()
    {
      var actionsArray = [
        {
          ID: "menu",
          actionName: "click",
          events: CLICK_EVENTS,
          // Wait for focus event, it guarantees us the submenu tree is created,
          // that's necessary for next test.
          eventSeq: [
            new invokerChecker(EVENT_FOCUS, getNode("menu"))
          ]
        },
        {
          ID: "submenu",
          actionName: "click",
          events: CLICK_EVENTS
        },
        {
          ID: "menuitem",
          actionName: "click",
          events: XUL_EVENTS
        },
        {
          ID: "button",
          actionName: "press",
          events: XUL_EVENTS
        },
        {
          ID: "buttonmenu",
          actionName: "press",
          events: CLICK_EVENTS
        },
        {
          ID: "name_entry_label",
          actionName: "click",
          events: CLICK_EVENTS
        },
        {
          ID: "labelWithPopup",
          actionName: "click",
          events: CLICK_EVENTS
        }/*, // XXX: bug 490288
        {
          ID: "buttonmenu_item",
          actionName: "click",
          events: CLICK_EVENTS
        }*/
      ];

      is(getAccessible("name_entry_label").firstChild.actionCount, 1, "label text should have 1 action");

      testActions(actionsArray);
    }

    SimpleTest.waitForExplicitFinish();
    addA11yLoadEvent(doTest);
  ]]>
  </script>

  <hbox flex="1" style="overflow: auto;">
    <body xmlns="http://www.w3.org/1999/xhtml">
      <a target="_blank"
         href="https://bugzilla.mozilla.org/show_bug.cgi?id=410765"
         title="nsIAccessible actions testing">
        Mozilla Bug 410765
      </a>
      <a target="_blank"
         href="https://bugzilla.mozilla.org/show_bug.cgi?id=504252"
         title="Expose STATE_HASPOPUP on XUL elements that have an @popup attribute">
        Mozilla Bug 504252
      </a><br/>
      <p id="display"></p>
      <div id="content" style="display: none">
      </div>
      <pre id="test">
      </pre>
    </body>

    <vbox flex="1">
      <menubar>
        <menu label="menu" id="menu">
          <menupopup>
            <menuitem label="menu item" id="menuitem"/>
            <menu label="submenu" id="submenu">
              <menupopup>
                <menuitem label="menu item"/>
              </menupopup>
            </menu>
          </menupopup>
        </menu>
      </menubar>

      <button label="button" id="button"/>

      <button type="menu" id="buttonmenu" label="button">
        <menupopup>
          <menuitem label="item1" id="buttonmenu_item"/>
          <menuitem label="item1"/>
        </menupopup>
      </button>

      <label id="labelWithPopup" value="file name"
             popup="fileContext"
             tabindex="0"/>
      <hbox>
        <label id="name_entry_label" value="Name" control="name_entry"/>
        <textbox id="name_entry"/>
      </hbox>
    </vbox>
  </hbox>
</window>