accessible/tests/mochitest/pivot/test_virtualcursor_text.html

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 <!DOCTYPE html>
     2 <html>
     3 <head>
     4   <title>Tests pivot functionality in virtual cursors</title>
     5   <meta charset="utf-8" />
     6   <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
     8   <script type="application/javascript"
     9           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js">
    10   </script>
    11   <script type="application/javascript"
    12           src="chrome://mochikit/content/chrome-harness.js">
    13   </script>
    15   <script type="application/javascript" src="../common.js"></script>
    16   <script type="application/javascript" src="../text.js"></script>
    17   <script type="application/javascript" src="../browser.js"></script>
    18   <script type="application/javascript" src="../events.js"></script>
    19   <script type="application/javascript" src="../role.js"></script>
    20   <script type="application/javascript" src="../states.js"></script>
    21   <script type="application/javascript" src="../pivot.js"></script>
    22   <script type="application/javascript" src="../layout.js"></script>
    24   <script type="application/javascript">
    25     var gBrowserWnd = null;
    26     var gQueue = null;
    28     function doTest()
    29     {
    30       var doc = currentTabDocument();
    31       var docAcc = getAccessible(doc, [nsIAccessibleDocument]);
    33       gQueue = new eventQueue();
    35       gQueue.onFinish = function onFinish()
    36       {
    37         closeBrowserWindow();
    38       }
    40       gQueue.push(new setVCPosInvoker(docAcc, null, null,
    41                                       getAccessible(doc.getElementById('paragraph-1'))));
    42       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
    43                   getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
    44       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [4,5],
    45                   getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
    46       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [3,4],
    47                   getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
    48       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [5,7],
    49                   getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
    50       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3],
    51                   getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText)));
    52       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
    53                   getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
    54       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3],
    55                   getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText)));
    56       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [5,7],
    57                   getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
    59       gQueue.push(new setVCPosInvoker(docAcc, null, null,
    60                                       getAccessible(doc.getElementById('section-1'))));
    61       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,1],
    62                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    63       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,9],
    64                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
    65       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
    66                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
    67       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,6],
    68                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    69       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,12],
    70                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    71       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,2],
    72                   getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
    73       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19],
    74                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    75       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [20,28],
    76                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    77       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5],
    78                   getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
    79       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [6,10],
    80                   getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
    81       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5],
    82                   getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
    83       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [20,28],
    84                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    85       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [15,19],
    86                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    87       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2],
    88                   getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
    89       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,12],
    90                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    91       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,6],
    92                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
    93       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [10,14],
    94                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
    95       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,9],
    96                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
    97       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,1],
    98                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
   100       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   101                                       getAccessible(doc.getElementById('s1-link-1'))));
   102       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [1,2],
   103                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
   104       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [0,1],
   105                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
   106       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2],
   107                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
   108       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1],
   109                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
   110       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2],
   111                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
   112       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [2,9],
   113                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
   114       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
   115                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
   116       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [3,4],
   117                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
   118       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [13,14],
   119                   getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
   120       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   121                                       getAccessible(doc.getElementById('section-2'))));
   122       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [27,28],
   123                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
   124       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1],
   125                   getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
   127       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   128                                       getAccessible(doc.getElementById('paragraph-2'))));
   129       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,12],
   130                   getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText)));
   131       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
   132                   getAccessible(doc.getElementById('cell-1'), nsIAccessibleText)));
   133       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8],
   134                   getAccessible(doc.getElementById('cell-2'), nsIAccessibleText)));
   135       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3],
   136                   getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
   137       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,11],
   138                   getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
   139       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,6],
   140                   getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
   141       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,13],
   142                   getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
   143       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
   144                   getAccessible(doc.getElementById('section-3'), nsIAccessibleText)));
   146       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   147                                       getAccessible(doc.getElementById('section-3'))));
   148       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
   149                   getAccessible(doc.getElementById('section-3'), nsIAccessibleText)));
   150       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,13],
   151                   getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
   152       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,6],
   153                   getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
   154       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,11],
   155                   getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
   156       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3],
   157                   getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
   158       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8],
   159                   getAccessible(doc.getElementById('cell-2'), nsIAccessibleText)));
   160       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7],
   161                   getAccessible(doc.getElementById('cell-1'), nsIAccessibleText)));
   162       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,12],
   163                   getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText)));
   165       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   166                                       getAccessible(doc.getElementById('paragraph-3'))));
   167       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
   168                   getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
   169       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8],
   170                   getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText)));
   171       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [8,10],
   172                   getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
   173       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
   174                   getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText)));
   175       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5],
   176                   getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText)));
   177       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [14,20],
   178                   getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
   179       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5],
   180                   getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText)));
   181       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,4],
   182                   getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText)));
   183       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [8,10],
   184                   getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
   185       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8],
   186                   getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText)));
   187       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7],
   188                   getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
   190       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   191                                       getAccessible(doc.getElementById('s1-link-2'))));
   192       // Start with the pivot in the middle of the paragraph
   193       gQueue.push(new setVCPosInvoker(docAcc, "moveNext", ObjectTraversalRule, " will traverse"));
   194       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19],
   195                   getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
   196       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2],
   197                   getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
   199       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   200                                       getAccessible(doc.getElementById('end-block'))));
   201       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
   202                   getAccessible(doc.getElementById('end-block'), nsIAccessibleText)));
   203       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, null, false));
   204       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   205                                       getAccessible(doc.getElementById('start-block'))));
   206       gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
   207                   getAccessible(doc.getElementById('start-block'), nsIAccessibleText)));
   208       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
   209       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
   210       gQueue.push(new setVCPosInvoker(docAcc, null, null,
   211                                       getAccessible(doc.getElementById('start-block'))));
   212       gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
   214       gQueue.invoke();
   215     }
   217     SimpleTest.waitForExplicitFinish();
   218     addLoadEvent(function () {
   219       /* We open a new browser because we need to test with a top-level content
   220          document. */
   221       openBrowserWindow(
   222         doTest,
   223         getRootDirectory(window.location.href) + "doc_virtualcursor_text.html");
   224     });
   225   </script>
   226 </head>
   227 <body id="body">
   229   <a target="_blank"
   230      title="Support Movement By Granularity"
   231      href="https://bugzilla.mozilla.org/show_bug.cgi?id=886076">Mozilla Bug 886076</a>
   232   <p id="display"></p>
   233   <div id="content" style="display: none"></div>
   234   <pre id="test">
   235   </pre>
   236 </body>
   237 </html>

mercurial