summaryrefslogtreecommitdiffstats
path: root/accessible/tests/mochitest/states/test_expandable.xhtml
blob: 0d969bef5b1eb245b731b3c749314fd801bc98f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?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"?>

<!-- Firefox searchbar -->
<?xml-stylesheet href="chrome://browser/content/browser.css"
                 type="text/css"?>
<!-- SeaMonkey searchbar -->
<?xml-stylesheet href="chrome://navigator/content/navigator.css"
                 type="text/css"?>

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        xmlns:html="http://www.w3.org/1999/xhtml"
        title="Expanded state change events tests for comboboxes and autocompletes.">

  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
  <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js" />

  <script type="application/javascript"
          src="../autocomplete.js" />

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

  <script type="application/javascript">
  <![CDATA[
    //gA11yEventDumpToConsole = true; // debuggin

    var gQueue = null;
    function doTest()
    {
      gQueue = new eventQueue();

      gQueue.push(new openCombobox("menulist"));
      gQueue.push(new closeCombobox("menulist"));

      todo(false, "Autocompletes don't fire expanded state change events when popup open. See bug 688480!");
      //gQueue.push(new openCombobox("autocomplete"));
      //gQueue.push(new closeCombobox("autocomplete"));

      // XXX: searchbar doesn't fire state change events because accessible
      // parent of combobox_list accessible is pushbutton accessible.
      //var searchbar = document.getElementById("searchbar");
      //gQueue.push(new openHideCombobox(searchbar, true));
      //gQueue.push(new openHideCombobox(searchbar, false));
      todo(false, "Enable states test for XUL searchbar widget!");

      gQueue.onFinish = function()
      {
        // unregister 'test-a11y-search' autocomplete search
        shutdownAutoComplete();
      }

      gQueue.invoke(); // Will call SimpleTest.finish();
    }

    // This is the hacks needed to use a searchbar without browser.js.
    var BrowserSearch = {
      updateOpenSearchBadge() {}
    };

    SimpleTest.waitForExplicitFinish();

    // Register 'test-a11y-search' autocomplete search.
    // XPFE AutoComplete needs to register early.
    initAutoComplete([ "hello", "hi" ],
                     [ "Beep beep'm beep beep yeah", "Baby you can drive my car" ]);

    addA11yLoadEvent(doTest);
  ]]>
  </script>

  <hbox style="overflow: auto;" flex="1">
    <body xmlns="http://www.w3.org/1999/xhtml">
      <a target="_blank"
         href="https://bugzilla.mozilla.org/show_bug.cgi?id=467057"
         title="xul menulist doesn't fire expand/collapse state change events">
        Mozilla Bug 467057
      </a>
      <p id="display"></p>
      <div id="content" style="display: none">
      </div>
      <pre id="test">
      </pre>
    </body>

    <vbox flex="1">
      <menulist id="menulist">
        <menupopup>
          <menuitem label="item1"/>
          <menuitem label="item2"/>
          <menuitem label="item3"/>
        </menupopup>
      </menulist>

      <html:input is="autocomplete-input"
                  id="autocomplete"
                  autocompletesearch="test-a11y-search"/>

      <searchbar id="searchbar"/>
    </vbox>
  </hbox>

</window>