tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_tree.xhtml (4450B)


      1 <?xml version="1.0"?>
      2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
      3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
      4                 type="text/css"?>
      5 <?xml-stylesheet href="../treeview.css"
      6                 type="text/css"?>
      7 
      8 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      9        title="Accessible XUL tree states tests">
     10 
     11  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
     12 
     13  <script type="application/javascript"
     14          src="../treeview.js" />
     15 
     16  <script type="application/javascript"
     17          src="../common.js" />
     18  <script type="application/javascript"
     19          src="../role.js" />
     20  <script type="application/javascript"
     21          src="../states.js" />
     22  <script type="application/javascript"
     23          src="../events.js" />
     24 
     25  <script type="application/javascript">
     26  <![CDATA[
     27    ////////////////////////////////////////////////////////////////////////////
     28    // Test
     29 
     30    /**
     31     * Event queue invoker object to test accessible states for XUL tree
     32     * accessible.
     33     */
     34    function statesChecker(aTreeID, aView)
     35    {
     36      this.DOMNode = getNode(aTreeID);
     37 
     38      this.invoke = function statesChecker_invoke()
     39      {
     40        this.DOMNode.view = aView;
     41      }
     42 
     43      this.check = function statesChecker_check()
     44      {
     45        var tree = getAccessible(this.DOMNode);
     46 
     47        // tree states
     48        testStates(tree, STATE_READONLY);
     49 
     50        if (this.DOMNode.getAttribute("seltype") != "single")
     51          testStates(tree, STATE_MULTISELECTABLE);
     52        else
     53          testStates(tree, 0, 0, STATE_MULTISELECTABLE);
     54 
     55        // tree item states
     56        var expandedItem = tree.getChildAt(2);
     57        testStates(expandedItem,
     58                   STATE_SELECTABLE | STATE_FOCUSABLE | STATE_EXPANDED);
     59 
     60        var collapsedItem = tree.getChildAt(5);
     61        testStates(collapsedItem,
     62                   STATE_SELECTABLE | STATE_FOCUSABLE | STATE_COLLAPSED);
     63 
     64        // cells states if any
     65        var cells = collapsedItem.children;
     66        if (cells && cells.length) {
     67          for (var idx = 0; idx < cells.length; idx++) {
     68            var cell = cells.queryElementAt(idx, nsIAccessible);
     69            testStates(cell, STATE_SELECTABLE);
     70          }
     71 
     72          var checkboxCell = cells.queryElementAt(3, nsIAccessible);
     73          testStates(checkboxCell, STATE_CHECKABLE | STATE_CHECKED);
     74        }
     75      }
     76 
     77      this.getID = function statesChecker_getID()
     78      {
     79        return "tree processor for " + prettyName(aTreeID);
     80      }
     81    }
     82 
     83    gA11yEventDumpToConsole = true; // debug stuff
     84 
     85    var gQueue = null;
     86 
     87    function doTest()
     88    {
     89      gQueue = new eventQueue(EVENT_REORDER);
     90      gQueue.push(new statesChecker("tree", new nsTreeTreeView()));
     91      gQueue.push(new statesChecker("treesingle", new nsTreeTreeView()));
     92      gQueue.push(new statesChecker("tabletree", new nsTreeTreeView()));
     93 
     94      gQueue.invoke(); // Will call SimpleTest.finish();
     95    }
     96 
     97    SimpleTest.waitForExplicitFinish();
     98    addA11yLoadEvent(doTest);
     99  ]]>
    100  </script>
    101 
    102  <hbox flex="1" style="overflow: auto;">
    103    <body xmlns="http://www.w3.org/1999/xhtml">
    104      <a target="_blank"
    105         href="https://bugzilla.mozilla.org/show_bug.cgi?id=503727"
    106         title="Reorganize implementation of XUL tree accessibility">
    107        Mozilla Bug 503727
    108      </a><br/>
    109      <p id="display"></p>
    110      <div id="content" style="display: none">
    111      </div>
    112      <pre id="test">
    113      </pre>
    114    </body>
    115 
    116    <vbox flex="1">
    117      <tree id="tree" flex="1">
    118        <treecols>
    119          <treecol id="col" flex="1" primary="true" label="column"/>
    120        </treecols>
    121        <treechildren/>
    122      </tree>
    123 
    124      <tree id="treesingle" flex="1" seltype="single">
    125        <treecols>
    126          <treecol id="col_single" flex="1" primary="true" label="column"/>
    127        </treecols>
    128        <treechildren/>
    129      </tree>
    130 
    131      <tree id="tabletree" flex="1" editable="true">
    132        <treecols>
    133          <treecol id="tabletree_col1" cycler="true" label="cycler"/>
    134          <treecol id="tabletree_col2" flex="1" primary="true" label="column1"/>
    135          <treecol id="tabletree_col3" flex="1" label="column2"/>
    136          <treecol id="tabletree_col4" flex="1" label="checker"
    137                   type="checkbox" editable="true"/>
    138        </treecols>
    139        <treechildren/>
    140      </tree>
    141 
    142      <vbox id="debug"/>
    143    </vbox>
    144  </hbox>
    145 
    146 </window>