1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/accessible/tests/mochitest/pivot/test_virtualcursor_text.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,237 @@ 1.4 +<!DOCTYPE html> 1.5 +<html> 1.6 +<head> 1.7 + <title>Tests pivot functionality in virtual cursors</title> 1.8 + <meta charset="utf-8" /> 1.9 + <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> 1.10 + 1.11 + <script type="application/javascript" 1.12 + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"> 1.13 + </script> 1.14 + <script type="application/javascript" 1.15 + src="chrome://mochikit/content/chrome-harness.js"> 1.16 + </script> 1.17 + 1.18 + <script type="application/javascript" src="../common.js"></script> 1.19 + <script type="application/javascript" src="../text.js"></script> 1.20 + <script type="application/javascript" src="../browser.js"></script> 1.21 + <script type="application/javascript" src="../events.js"></script> 1.22 + <script type="application/javascript" src="../role.js"></script> 1.23 + <script type="application/javascript" src="../states.js"></script> 1.24 + <script type="application/javascript" src="../pivot.js"></script> 1.25 + <script type="application/javascript" src="../layout.js"></script> 1.26 + 1.27 + <script type="application/javascript"> 1.28 + var gBrowserWnd = null; 1.29 + var gQueue = null; 1.30 + 1.31 + function doTest() 1.32 + { 1.33 + var doc = currentTabDocument(); 1.34 + var docAcc = getAccessible(doc, [nsIAccessibleDocument]); 1.35 + 1.36 + gQueue = new eventQueue(); 1.37 + 1.38 + gQueue.onFinish = function onFinish() 1.39 + { 1.40 + closeBrowserWindow(); 1.41 + } 1.42 + 1.43 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.44 + getAccessible(doc.getElementById('paragraph-1')))); 1.45 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4], 1.46 + getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText))); 1.47 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [4,5], 1.48 + getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText))); 1.49 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [3,4], 1.50 + getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText))); 1.51 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [5,7], 1.52 + getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText))); 1.53 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3], 1.54 + getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText))); 1.55 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14], 1.56 + getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText))); 1.57 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3], 1.58 + getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText))); 1.59 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [5,7], 1.60 + getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText))); 1.61 + 1.62 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.63 + getAccessible(doc.getElementById('section-1')))); 1.64 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,1], 1.65 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.66 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,9], 1.67 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.68 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14], 1.69 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.70 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,6], 1.71 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.72 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,12], 1.73 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.74 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,2], 1.75 + getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText))); 1.76 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19], 1.77 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.78 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [20,28], 1.79 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.80 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5], 1.81 + getAccessible(doc.getElementById('section-2'), nsIAccessibleText))); 1.82 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [6,10], 1.83 + getAccessible(doc.getElementById('section-2'), nsIAccessibleText))); 1.84 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5], 1.85 + getAccessible(doc.getElementById('section-2'), nsIAccessibleText))); 1.86 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [20,28], 1.87 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.88 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [15,19], 1.89 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.90 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2], 1.91 + getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText))); 1.92 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,12], 1.93 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.94 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,6], 1.95 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.96 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [10,14], 1.97 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.98 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,9], 1.99 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.100 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,1], 1.101 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.102 + 1.103 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.104 + getAccessible(doc.getElementById('s1-link-1')))); 1.105 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [1,2], 1.106 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.107 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [0,1], 1.108 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.109 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2], 1.110 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.111 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1], 1.112 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.113 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2], 1.114 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.115 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [2,9], 1.116 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.117 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14], 1.118 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.119 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [3,4], 1.120 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.121 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [13,14], 1.122 + getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText))); 1.123 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.124 + getAccessible(doc.getElementById('section-2')))); 1.125 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [27,28], 1.126 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.127 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1], 1.128 + getAccessible(doc.getElementById('section-2'), nsIAccessibleText))); 1.129 + 1.130 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.131 + getAccessible(doc.getElementById('paragraph-2')))); 1.132 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,12], 1.133 + getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText))); 1.134 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7], 1.135 + getAccessible(doc.getElementById('cell-1'), nsIAccessibleText))); 1.136 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8], 1.137 + getAccessible(doc.getElementById('cell-2'), nsIAccessibleText))); 1.138 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3], 1.139 + getAccessible(doc.getElementById('cell-3'), nsIAccessibleText))); 1.140 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,11], 1.141 + getAccessible(doc.getElementById('cell-3'), nsIAccessibleText))); 1.142 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,6], 1.143 + getAccessible(doc.getElementById('cell-4'), nsIAccessibleText))); 1.144 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,13], 1.145 + getAccessible(doc.getElementById('cell-4'), nsIAccessibleText))); 1.146 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7], 1.147 + getAccessible(doc.getElementById('section-3'), nsIAccessibleText))); 1.148 + 1.149 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.150 + getAccessible(doc.getElementById('section-3')))); 1.151 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7], 1.152 + getAccessible(doc.getElementById('section-3'), nsIAccessibleText))); 1.153 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,13], 1.154 + getAccessible(doc.getElementById('cell-4'), nsIAccessibleText))); 1.155 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,6], 1.156 + getAccessible(doc.getElementById('cell-4'), nsIAccessibleText))); 1.157 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,11], 1.158 + getAccessible(doc.getElementById('cell-3'), nsIAccessibleText))); 1.159 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3], 1.160 + getAccessible(doc.getElementById('cell-3'), nsIAccessibleText))); 1.161 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8], 1.162 + getAccessible(doc.getElementById('cell-2'), nsIAccessibleText))); 1.163 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7], 1.164 + getAccessible(doc.getElementById('cell-1'), nsIAccessibleText))); 1.165 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,12], 1.166 + getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText))); 1.167 + 1.168 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.169 + getAccessible(doc.getElementById('paragraph-3')))); 1.170 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7], 1.171 + getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText))); 1.172 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8], 1.173 + getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText))); 1.174 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [8,10], 1.175 + getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText))); 1.176 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4], 1.177 + getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText))); 1.178 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5], 1.179 + getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText))); 1.180 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [14,20], 1.181 + getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText))); 1.182 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5], 1.183 + getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText))); 1.184 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,4], 1.185 + getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText))); 1.186 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [8,10], 1.187 + getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText))); 1.188 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8], 1.189 + getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText))); 1.190 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7], 1.191 + getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText))); 1.192 + 1.193 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.194 + getAccessible(doc.getElementById('s1-link-2')))); 1.195 + // Start with the pivot in the middle of the paragraph 1.196 + gQueue.push(new setVCPosInvoker(docAcc, "moveNext", ObjectTraversalRule, " will traverse")); 1.197 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19], 1.198 + getAccessible(doc.getElementById('section-1'), nsIAccessibleText))); 1.199 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2], 1.200 + getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText))); 1.201 + 1.202 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.203 + getAccessible(doc.getElementById('end-block')))); 1.204 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4], 1.205 + getAccessible(doc.getElementById('end-block'), nsIAccessibleText))); 1.206 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, null, false)); 1.207 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.208 + getAccessible(doc.getElementById('start-block')))); 1.209 + gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4], 1.210 + getAccessible(doc.getElementById('start-block'), nsIAccessibleText))); 1.211 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false)); 1.212 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false)); 1.213 + gQueue.push(new setVCPosInvoker(docAcc, null, null, 1.214 + getAccessible(doc.getElementById('start-block')))); 1.215 + gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false)); 1.216 + 1.217 + gQueue.invoke(); 1.218 + } 1.219 + 1.220 + SimpleTest.waitForExplicitFinish(); 1.221 + addLoadEvent(function () { 1.222 + /* We open a new browser because we need to test with a top-level content 1.223 + document. */ 1.224 + openBrowserWindow( 1.225 + doTest, 1.226 + getRootDirectory(window.location.href) + "doc_virtualcursor_text.html"); 1.227 + }); 1.228 + </script> 1.229 +</head> 1.230 +<body id="body"> 1.231 + 1.232 + <a target="_blank" 1.233 + title="Support Movement By Granularity" 1.234 + href="https://bugzilla.mozilla.org/show_bug.cgi?id=886076">Mozilla Bug 886076</a> 1.235 + <p id="display"></p> 1.236 + <div id="content" style="display: none"></div> 1.237 + <pre id="test"> 1.238 + </pre> 1.239 +</body> 1.240 +</html>