1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/accessible/tests/mochitest/jsat/test_content_integration.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,234 @@ 1.4 +<!DOCTYPE html> 1.5 +<html> 1.6 +<head> 1.7 + <title>Tests AccessFu content integration</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="../browser.js"></script> 1.20 + <script type="application/javascript" src="../events.js"></script> 1.21 + <script type="application/javascript" src="../role.js"></script> 1.22 + <script type="application/javascript" src="../states.js"></script> 1.23 + <script type="application/javascript" src="../layout.js"></script> 1.24 + <script type="application/javascript" src="jsatcommon.js"></script> 1.25 + 1.26 + <script type="application/javascript"> 1.27 + function doTest() { 1.28 + var doc = currentTabDocument(); 1.29 + var iframe = doc.createElement("iframe"); 1.30 + iframe.mozbrowser = true; 1.31 + iframe.addEventListener("mozbrowserloadend", function () { 1.32 + var contentTest = new AccessFuContentTest( 1.33 + [ 1.34 + // Simple traversal forward 1.35 + [ContentMessages.simpleMoveNext, { 1.36 + speak: 'Phone status bar Traversal Rule test document' 1.37 + }], 1.38 + [ContentMessages.simpleMoveNext, { 1.39 + speak: 'wow heading level 1 such app' 1.40 + }], 1.41 + [ContentMessages.simpleMoveNext, { 1.42 + speak: 'many option not checked check button' 1.43 + }], 1.44 + // check checkbox 1.45 + [ContentMessages.activateCurrent(), { 1.46 + speak: 'checked' 1.47 + }], 1.48 + [ContentMessages.simpleMoveNext, { 1.49 + speak: 'much range label' 1.50 + }], 1.51 + [ContentMessages.simpleMoveNext, { 1.52 + speak: 'much range 5 slider' 1.53 + }], 1.54 + [ContentMessages.adjustRangeUp, 1.55 + { speak: '6'}], 1.56 + [ContentMessages.simpleMoveNext, { 1.57 + speak: 'Home button' 1.58 + }], 1.59 + 1.60 + // Simple traversal backward 1.61 + [ContentMessages.simpleMovePrevious, { 1.62 + speak: 'much range 6 slider such app' 1.63 + }], 1.64 + [ContentMessages.adjustRangeDown, 1.65 + { speak: '5'}], 1.66 + [ContentMessages.simpleMovePrevious, { 1.67 + speak: 'much range label' 1.68 + }], 1.69 + [ContentMessages.simpleMovePrevious, { 1.70 + speak: 'many option checked check button' 1.71 + }], 1.72 + // uncheck checkbox 1.73 + [ContentMessages.activateCurrent(), { 1.74 + speak: 'unchecked' 1.75 + }], 1.76 + [ContentMessages.simpleMovePrevious, { 1.77 + speak: 'wow heading level 1' 1.78 + }], 1.79 + [ContentMessages.simpleMovePrevious, { 1.80 + speak: 'Phone status bar' 1.81 + }], 1.82 + 1.83 + // Moving to the absolute last item from an embedded document 1.84 + // fails. Bug 972035. 1.85 + [ContentMessages.simpleMoveNext, { 1.86 + speak: 'wow heading level 1 such app' 1.87 + }], 1.88 + // Move from an inner frame to the last element in the parent doc 1.89 + [ContentMessages.simpleMoveLast, { 1.90 + speak: 'Home button', 1.91 + speak_checkFunc: 'todo_is' 1.92 + }], 1.93 + 1.94 + [ContentMessages.clearCursor, 'AccessFu:CursorCleared'], 1.95 + 1.96 + // Moving to the absolute first item from an embedded document 1.97 + // fails. Bug 972035. 1.98 + [ContentMessages.simpleMoveNext, { 1.99 + speak: 'Phone status bar Traversal Rule test document' 1.100 + }], 1.101 + [ContentMessages.simpleMoveNext, { 1.102 + speak: 'wow heading level 1 such app' 1.103 + }], 1.104 + [ContentMessages.simpleMoveNext, { 1.105 + speak: 'many option not checked check button' 1.106 + }], 1.107 + [ContentMessages.simpleMoveFirst, { 1.108 + speak: 'Phone status bar', 1.109 + speak_checkFunc: 'todo_is' 1.110 + }], 1.111 + 1.112 + // Reset cursors 1.113 + [ContentMessages.clearCursor, 'AccessFu:CursorCleared'], 1.114 + 1.115 + // Move cursor with focus in outside document 1.116 + [ContentMessages.simpleMoveNext, { 1.117 + speak: 'Phone status bar Traversal Rule test document' 1.118 + }], 1.119 + [ContentMessages.focusSelector('button#home', false), { 1.120 + speak: 'Home button' 1.121 + }], 1.122 + 1.123 + // Blur button and reset cursor 1.124 + [ContentMessages.focusSelector('button#home', true), null], 1.125 + [ContentMessages.clearCursor, 'AccessFu:CursorCleared'], 1.126 + 1.127 + // Set focus on element outside of embedded frame while 1.128 + // cursor is in frame 1.129 + [ContentMessages.simpleMoveNext, { 1.130 + speak: 'Phone status bar Traversal Rule test document' 1.131 + }], 1.132 + [ContentMessages.simpleMoveNext, { 1.133 + speak: 'wow heading level 1 such app' 1.134 + }], 1.135 + [ContentMessages.focusSelector('button#home', false), { 1.136 + speak: 'Home button' 1.137 + }] 1.138 + 1.139 + // Blur button and reset cursor 1.140 + [ContentMessages.focusSelector('button#home', true), null], 1.141 + [ContentMessages.clearCursor, 'AccessFu:CursorCleared'], 1.142 + 1.143 + // XXX: Set focus on iframe itself. 1.144 + // XXX: Set focus on element in iframe when cursor is outside of it. 1.145 + // XXX: Set focus on element in iframe when cursor is in iframe. 1.146 + 1.147 + // Open dialog in outer doc, while cursor is also in outer doc 1.148 + [ContentMessages.simpleMoveNext, { 1.149 + speak: 'Phone status bar Traversal Rule test document' 1.150 + }], 1.151 + [doc.defaultView.showAlert, { 1.152 + speak: 'This is an alert! heading level 1 dialog' 1.153 + }], 1.154 + 1.155 + [function() { 1.156 + doc.defaultView.hideAlert() 1.157 + }, { 1.158 + speak: 'wow heading level 1 such app' 1.159 + }], 1.160 + 1.161 + [ContentMessages.clearCursor, 'AccessFu:CursorCleared'], 1.162 + 1.163 + // Open dialog in outer doc, while cursor is in inner frame 1.164 + [ContentMessages.simpleMoveNext, { 1.165 + speak: 'Phone status bar Traversal Rule test document' 1.166 + }], 1.167 + [ContentMessages.simpleMoveNext, { 1.168 + speak: 'wow heading level 1 such app' 1.169 + }], 1.170 + [doc.defaultView.showAlert, { 1.171 + speak: 'This is an alert! heading level 1 dialog' 1.172 + }], 1.173 + 1.174 + // XXX: Place cursor back where it was. 1.175 + [doc.defaultView.hideAlert, { 1.176 + speak: 'many option not checked check button such app' 1.177 + }], 1.178 + 1.179 + [ContentMessages.clearCursor, 'AccessFu:CursorCleared'], 1.180 + 1.181 + // Open dialog, then focus on something when closing 1.182 + [ContentMessages.simpleMoveNext, { 1.183 + speak: 'Phone status bar Traversal Rule test document' 1.184 + }], 1.185 + [doc.defaultView.showAlert, { 1.186 + speak: 'This is an alert! heading level 1 dialog' 1.187 + }], 1.188 + 1.189 + [function() { 1.190 + doc.defaultView.hideAlert(); 1.191 + doc.querySelector('button#home').focus(); 1.192 + }, { 1.193 + speak: 'Home button Traversal Rule test document' 1.194 + }] 1.195 + ]); 1.196 + 1.197 + contentTest.start(function () { 1.198 + closeBrowserWindow(); 1.199 + SimpleTest.finish(); 1.200 + }); 1.201 + 1.202 + }); 1.203 + iframe.src = 'data:text/html;charset=utf-8,' + doc.defaultView.frameContents; 1.204 + doc.getElementById('appframe').appendChild(iframe); 1.205 + } 1.206 + 1.207 + SimpleTest.waitForExplicitFinish(); 1.208 + addLoadEvent( 1.209 + function () { 1.210 + openBrowserWindow( 1.211 + function () { 1.212 + SpecialPowers.pushPrefEnv({ 1.213 + "set": [ 1.214 + // TODO: remove this as part of bug 820712 1.215 + ["network.disable.ipc.security", true], 1.216 + 1.217 + 1.218 + ["dom.ipc.browser_frames.oop_by_default", true], 1.219 + ["dom.mozBrowserFramesEnabled", true], 1.220 + ["browser.pagethumbnails.capturing_disabled", true] 1.221 + ] 1.222 + }, doTest) }, 1.223 + getRootDirectory(window.location.href) + "doc_content_integration.html"); 1.224 + }); 1.225 + </script> 1.226 +</head> 1.227 +<body id="body"> 1.228 + 1.229 + <a target="_blank" 1.230 + title="Add tests for OOP message handling and general integration" 1.231 + href="https://bugzilla.mozilla.org/show_bug.cgi?id=972047">Mozilla Bug 933808</a> 1.232 + <p id="display"></p> 1.233 + <div id="content" style="display: none"></div> 1.234 + <pre id="test"> 1.235 + </pre> 1.236 +</body> 1.237 +</html>