accessible/tests/mochitest/jsat/test_content_integration.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4   <title>Tests AccessFu content integration</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="../browser.js"></script>
    17   <script type="application/javascript" src="../events.js"></script>
    18   <script type="application/javascript" src="../role.js"></script>
    19   <script type="application/javascript" src="../states.js"></script>
    20   <script type="application/javascript" src="../layout.js"></script>
    21   <script type="application/javascript" src="jsatcommon.js"></script>
    23   <script type="application/javascript">
    24     function doTest() {
    25       var doc = currentTabDocument();
    26       var iframe = doc.createElement("iframe");
    27       iframe.mozbrowser = true;
    28       iframe.addEventListener("mozbrowserloadend", function () {
    29       var contentTest = new AccessFuContentTest(
    30         [
    31           // Simple traversal forward
    32           [ContentMessages.simpleMoveNext, {
    33             speak: 'Phone status bar Traversal Rule test document'
    34           }],
    35           [ContentMessages.simpleMoveNext, {
    36             speak: 'wow heading level 1 such app'
    37           }],
    38           [ContentMessages.simpleMoveNext, {
    39             speak: 'many option not checked check button'
    40           }],
    41           // check checkbox
    42           [ContentMessages.activateCurrent(), {
    43             speak: 'checked'
    44           }],
    45           [ContentMessages.simpleMoveNext, {
    46             speak: 'much range label'
    47           }],
    48           [ContentMessages.simpleMoveNext, {
    49             speak: 'much range 5 slider'
    50           }],
    51           [ContentMessages.adjustRangeUp,
    52            { speak: '6'}],
    53           [ContentMessages.simpleMoveNext, {
    54             speak: 'Home button'
    55           }],
    57           // Simple traversal backward
    58           [ContentMessages.simpleMovePrevious, {
    59             speak: 'much range 6 slider such app'
    60           }],
    61           [ContentMessages.adjustRangeDown,
    62            { speak: '5'}],
    63           [ContentMessages.simpleMovePrevious, {
    64             speak: 'much range label'
    65           }],
    66           [ContentMessages.simpleMovePrevious, {
    67             speak: 'many option checked check button'
    68           }],
    69           // uncheck checkbox
    70           [ContentMessages.activateCurrent(), {
    71             speak: 'unchecked'
    72           }],
    73           [ContentMessages.simpleMovePrevious, {
    74             speak: 'wow heading level 1'
    75           }],
    76           [ContentMessages.simpleMovePrevious, {
    77             speak: 'Phone status bar'
    78           }],
    80           // Moving to the absolute last item from an embedded document
    81           // fails. Bug 972035.
    82           [ContentMessages.simpleMoveNext, {
    83             speak: 'wow heading level 1 such app'
    84           }],
    85           // Move from an inner frame to the last element in the parent doc
    86           [ContentMessages.simpleMoveLast, {
    87             speak: 'Home button',
    88             speak_checkFunc: 'todo_is'
    89           }],
    91           [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
    93           // Moving to the absolute first item from an embedded document
    94           // fails. Bug 972035.
    95           [ContentMessages.simpleMoveNext, {
    96             speak: 'Phone status bar Traversal Rule test document'
    97           }],
    98           [ContentMessages.simpleMoveNext, {
    99             speak: 'wow heading level 1 such app'
   100           }],
   101           [ContentMessages.simpleMoveNext, {
   102             speak: 'many option not checked check button'
   103           }],
   104           [ContentMessages.simpleMoveFirst, {
   105             speak: 'Phone status bar',
   106             speak_checkFunc: 'todo_is'
   107           }],
   109           // Reset cursors
   110           [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
   112           // Move cursor with focus in outside document
   113           [ContentMessages.simpleMoveNext, {
   114             speak: 'Phone status bar Traversal Rule test document'
   115           }],
   116           [ContentMessages.focusSelector('button#home', false), {
   117             speak: 'Home button'
   118           }],
   120           // Blur button and reset cursor
   121           [ContentMessages.focusSelector('button#home', true), null],
   122           [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
   124           // Set focus on element outside of embedded frame while
   125           // cursor is in frame
   126           [ContentMessages.simpleMoveNext, {
   127             speak: 'Phone status bar Traversal Rule test document'
   128           }],
   129           [ContentMessages.simpleMoveNext, {
   130             speak: 'wow heading level 1 such app'
   131           }],
   132           [ContentMessages.focusSelector('button#home', false), {
   133             speak: 'Home button'
   134           }]
   136           // Blur button and reset cursor
   137           [ContentMessages.focusSelector('button#home', true), null],
   138           [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
   140           // XXX: Set focus on iframe itself.
   141           // XXX: Set focus on element in iframe when cursor is outside of it.
   142           // XXX: Set focus on element in iframe when cursor is in iframe.
   144           // Open dialog in outer doc, while cursor is also in outer doc
   145           [ContentMessages.simpleMoveNext, {
   146             speak: 'Phone status bar Traversal Rule test document'
   147           }],
   148           [doc.defaultView.showAlert, {
   149             speak: 'This is an alert! heading level 1 dialog'
   150           }],
   152           [function() {
   153             doc.defaultView.hideAlert()
   154           }, {
   155             speak: 'wow heading level 1 such app'
   156           }],
   158           [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
   160           // Open dialog in outer doc, while cursor is in inner frame
   161           [ContentMessages.simpleMoveNext, {
   162             speak: 'Phone status bar Traversal Rule test document'
   163           }],
   164           [ContentMessages.simpleMoveNext, {
   165             speak: 'wow heading level 1 such app'
   166           }],
   167           [doc.defaultView.showAlert, {
   168             speak: 'This is an alert! heading level 1 dialog'
   169           }],
   171           // XXX: Place cursor back where it was.
   172           [doc.defaultView.hideAlert, {
   173             speak: 'many option not checked check button such app'
   174           }],
   176           [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
   178           // Open dialog, then focus on something when closing
   179           [ContentMessages.simpleMoveNext, {
   180             speak: 'Phone status bar Traversal Rule test document'
   181           }],
   182           [doc.defaultView.showAlert, {
   183             speak: 'This is an alert! heading level 1 dialog'
   184           }],
   186           [function() {
   187             doc.defaultView.hideAlert();
   188             doc.querySelector('button#home').focus();
   189           }, {
   190             speak: 'Home button Traversal Rule test document'
   191           }]
   192         ]);
   194         contentTest.start(function () {
   195           closeBrowserWindow();
   196           SimpleTest.finish();
   197         });
   199       });
   200       iframe.src = 'data:text/html;charset=utf-8,' + doc.defaultView.frameContents;
   201       doc.getElementById('appframe').appendChild(iframe);
   202     }
   204     SimpleTest.waitForExplicitFinish();
   205     addLoadEvent(
   206       function () {
   207         openBrowserWindow(
   208           function () {
   209             SpecialPowers.pushPrefEnv({
   210               "set": [
   211                 // TODO: remove this as part of bug 820712
   212                 ["network.disable.ipc.security", true],
   215                 ["dom.ipc.browser_frames.oop_by_default", true],
   216                 ["dom.mozBrowserFramesEnabled", true],
   217                 ["browser.pagethumbnails.capturing_disabled", true]
   218               ]
   219             }, doTest) },
   220           getRootDirectory(window.location.href) + "doc_content_integration.html");
   221         });
   222   </script>
   223 </head>
   224 <body id="body">
   226   <a target="_blank"
   227      title="Add tests for OOP message handling and general integration"
   228      href="https://bugzilla.mozilla.org/show_bug.cgi?id=972047">Mozilla Bug 933808</a>
   229   <p id="display"></p>
   230   <div id="content" style="display: none"></div>
   231   <pre id="test">
   232   </pre>
   233 </body>
   234 </html>

mercurial