accessible/tests/mochitest/tree/test_tree.xul

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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"?>
     6 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
     7         title="Accessible XUL tree hierarchy tests">
     9   <script type="application/javascript"
    10           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
    12   <script type="application/javascript"
    13           src="../treeview.js" />
    15   <script type="application/javascript"
    16           src="../common.js" />
    17   <script type="application/javascript"
    18           src="../role.js" />
    19   <script type="application/javascript"
    20           src="../events.js" />
    22   <script type="application/javascript">
    23   <![CDATA[
    24     ////////////////////////////////////////////////////////////////////////////
    25     // Accessible tree testers
    27     function getTreeItemAccTree(aTableRole, acolumnCount)
    28     {
    29       var treeItemRole;
    30       switch (aTableRole) {
    31         case ROLE_LIST:
    32           treeItemRole = ROLE_LISTITEM;
    33           break;
    34         case ROLE_OUTLINE:
    35           treeItemRole = ROLE_OUTLINEITEM;
    36           break;
    37         case ROLE_TABLE: case ROLE_TREE_TABLE:
    38           treeItemRole = ROLE_ROW;
    39           break;
    40       }
    42       var accTree = {
    43         role: treeItemRole,
    44         children: []
    45       };
    47       if (aTableRole == ROLE_TABLE || aTableRole == ROLE_TREE_TABLE) {
    48         for (var idx = 0; idx < acolumnCount; idx++) {
    49           var cellAccTree = {
    50             role: ROLE_GRID_CELL,
    51             children: []
    52           };
    53           accTree.children.push(cellAccTree);
    54         }
    55       }
    57       return accTree;
    58     }
    60     function testAccessibleTreeFor(aTree, aRole)
    61     {
    62       var accTreeForColumns = {
    63         role: ROLE_LIST,
    64         children: []
    65       };
    67       var accTreeForTree = {
    68         role: aRole,
    69         children: [
    70           accTreeForColumns
    71         ]
    72       };
    74       var treeBoxObject = aTree.treeBoxObject;
    75       var view = treeBoxObject.view;
    76       var columnCount = treeBoxObject.columns.count;
    78       for (var idx = 0; idx < columnCount; idx++)
    79         accTreeForColumns.children.push({ COLUMNHEADER: [ ] });
    80       if (!aTree.hasAttribute("hidecolumnpicker"))
    81         accTreeForColumns.children.push({ PUSHBUTTON: [ { MENUPOPUP: [] } ] });
    83       for (var idx = 0; idx < view.rowCount; idx++)
    84         accTreeForTree.children.push(getTreeItemAccTree(aRole, columnCount));
    86       testAccessibleTree(aTree, accTreeForTree);
    87     }
    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);
    96       this.invoke = function invoke()
    97       {
    98         this.DOMNode.treeBoxObject.view = aView;
    99       }
   100       this.check = function check(aEvent)
   101       {
   102         testAccessibleTreeFor(this.DOMNode, aRole);
   103       }
   104       this.getID = function getID()
   105       {
   106         return "Tree testing of " + aID;
   107       }
   108     }
   110     ////////////////////////////////////////////////////////////////////////////
   111     // Test
   113     // gA11yEventDumpID = "debug";
   114     var gQueue = null;
   116     function doTest()
   117     {
   118       var gQueue = new eventQueue(EVENT_REORDER);
   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));
   125       gQueue.invoke(); // Will call SimpleTest.finish()
   126     }
   128     SimpleTest.waitForExplicitFinish();
   129     addA11yLoadEvent(doTest);
   130   ]]>
   131   </script>
   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>
   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>
   155       <tree id="tree" flex="1">
   156         <treecols>
   157           <treecol id="col" flex="1" primary="true" label="column"/>
   158         </treecols>
   159         <treechildren/>
   160       </tree>
   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>
   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>
   178       <vbox id="debug"/>
   179     </vbox>
   180   </hbox>
   182 </window>

mercurial