tor-browser

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

test_tree.xhtml (5007B)


      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 
      6 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      7        title="Accessible XUL tree hierarchy tests">
      8 
      9  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
     10 
     11  <script type="application/javascript"
     12          src="../treeview.js" />
     13 
     14  <script type="application/javascript"
     15          src="../common.js" />
     16  <script type="application/javascript"
     17          src="../role.js" />
     18  <script type="application/javascript"
     19          src="../events.js" />
     20 
     21  <script type="application/javascript">
     22  <![CDATA[
     23    ////////////////////////////////////////////////////////////////////////////
     24    // Accessible tree testers
     25 
     26    function getTreeItemAccTree(aTableRole, acolumnCount)
     27    {
     28      var treeItemRole;
     29      switch (aTableRole) {
     30        case ROLE_LIST:
     31          treeItemRole = ROLE_LISTITEM;
     32          break;
     33        case ROLE_OUTLINE:
     34          treeItemRole = ROLE_OUTLINEITEM;
     35          break;
     36        case ROLE_TABLE: case ROLE_TREE_TABLE:
     37          treeItemRole = ROLE_ROW;
     38          break;
     39      }
     40 
     41      var accTree = {
     42        role: treeItemRole,
     43        children: []
     44      };
     45 
     46      if (aTableRole == ROLE_TABLE || aTableRole == ROLE_TREE_TABLE) {
     47        for (var idx = 0; idx < acolumnCount; idx++) {
     48          var cellAccTree = {
     49            role: ROLE_GRID_CELL,
     50            children: []
     51          };
     52          accTree.children.push(cellAccTree);
     53        }
     54      }
     55 
     56      return accTree;
     57    }
     58 
     59    function testAccessibleTreeFor(aTree, aRole)
     60    {
     61      var accTreeForColumns = {
     62        role: ROLE_LIST,
     63        children: []
     64      };
     65 
     66      var accTreeForTree = {
     67        role: aRole,
     68        children: [
     69          accTreeForColumns
     70        ]
     71      };
     72 
     73      var view = aTree.view;
     74      var columnCount = aTree.columns.count;
     75 
     76      for (let idx = 0; idx < columnCount; idx++)
     77        accTreeForColumns.children.push({ COLUMNHEADER: [ ] });
     78      if (!aTree.hasAttribute("hidecolumnpicker")) {
     79        accTreeForColumns.children.push({ PUSHBUTTON: [ ] });
     80        accTreeForColumns.children.push({ MENUPOPUP: [ ] });
     81      }
     82 
     83      for (let idx = 0; idx < view.rowCount; idx++)
     84        accTreeForTree.children.push(getTreeItemAccTree(aRole, columnCount));
     85 
     86      testAccessibleTree(aTree, accTreeForTree);
     87    }
     88 
     89    /**
     90     * Event queue invoker object to test accessible tree for XUL tree element.
     91     */
     92    function treeChecker(aID, aView, aRole)
     93    {
     94      this.DOMNode = getNode(aID);
     95 
     96      this.invoke = function invoke()
     97      {
     98        this.DOMNode.view = aView;
     99      }
    100      this.check = function check()
    101      {
    102        testAccessibleTreeFor(this.DOMNode, aRole);
    103      }
    104      this.getID = function getID()
    105      {
    106        return "Tree testing of " + aID;
    107      }
    108    }
    109 
    110    ////////////////////////////////////////////////////////////////////////////
    111    // Test
    112 
    113    // gA11yEventDumpID = "debug";
    114    var gQueue = null;
    115 
    116    function doTest()
    117    {
    118      gQueue = new eventQueue(EVENT_REORDER);
    119 
    120      gQueue.push(new treeChecker("list", new nsTableTreeView(3), ROLE_LIST));
    121      gQueue.push(new treeChecker("tree", new nsTreeTreeView(), ROLE_OUTLINE));
    122      gQueue.push(new treeChecker("table", new nsTableTreeView(3), ROLE_TABLE));
    123      gQueue.push(new treeChecker("treetable", new nsTreeTreeView(), ROLE_TREE_TABLE));
    124 
    125      gQueue.invoke(); // Will call SimpleTest.finish()
    126    }
    127 
    128    SimpleTest.waitForExplicitFinish();
    129    addA11yLoadEvent(doTest);
    130  ]]>
    131  </script>
    132 
    133  <hbox flex="1" style="overflow: auto;">
    134    <body xmlns="http://www.w3.org/1999/xhtml">
    135      <a target="_blank"
    136         href="https://bugzilla.mozilla.org/show_bug.cgi?id=503727"
    137         title="Reorganize implementation of XUL tree accessibility">
    138        Mozilla Bug 503727
    139      </a><br/>
    140      <p id="display"></p>
    141      <div id="content" style="display: none">
    142      </div>
    143      <pre id="test">
    144      </pre>
    145    </body>
    146 
    147    <vbox flex="1">
    148      <tree id="list" flex="1" hidecolumnpicker="true">
    149        <treecols>
    150          <treecol id="col" flex="1" hideheader="true"/>
    151        </treecols>
    152        <treechildren/>
    153      </tree>
    154 
    155      <tree id="tree" flex="1">
    156        <treecols>
    157          <treecol id="col" flex="1" primary="true" label="column"/>
    158        </treecols>
    159        <treechildren/>
    160      </tree>
    161 
    162      <tree id="table" flex="1">
    163        <treecols>
    164          <treecol id="col1" flex="1" label="column"/>
    165          <treecol id="col2" flex="1" label="column 2"/>
    166        </treecols>
    167        <treechildren/>
    168      </tree>
    169 
    170      <tree id="treetable" flex="1">
    171        <treecols>
    172          <treecol id="col1" flex="1" primary="true" label="column"/>
    173          <treecol id="col2" flex="1" label="column 2"/>
    174        </treecols>
    175        <treechildren/>
    176      </tree>
    177 
    178      <vbox id="debug"/>
    179    </vbox>
    180  </hbox>
    181 
    182 </window>