summaryrefslogtreecommitdiffstats
path: root/accessible/tests/mochitest/events/test_focus_doc.html
blob: a35fc06ed072d19034dfa929a730748c55fa1e69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<html>

<head>
  <title>Accessible document focus event testing</title>

  <link rel="stylesheet" type="text/css"
        href="chrome://mochikit/content/tests/SimpleTest/test.css" />

  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
  <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>

  <script type="application/javascript"
      src="../common.js"></script>
  <script type="application/javascript"
    src="../events.js"></script>
  <script type="application/javascript"
          src="../role.js"></script>
    <script type="application/javascript"
      src="../states.js"></script>

  <script type="application/javascript">
    var gQueue = null;

    // var gA11yEventDumpID = "eventdump";
    // gA11yEventDumpToConsole = true;

    function doTests() {
      // setup
      var frameDoc = document.getElementById("iframe").contentDocument;
      frameDoc.designMode = "on";
      var frameDocAcc = getAccessible(frameDoc, [nsIAccessibleDocument]);
      var buttonAcc = getAccessible("b1");

      var frame2Doc = document.getElementById("iframe2").contentDocument;
      var frame2Input = frame2Doc.getElementById("input");
      var frame2DocAcc = getAccessible(frame2Doc);
      var frame2InputAcc = getAccessible(frame2Input);

      // Test focus events.
      gQueue = new eventQueue();

      // try to give focus to contentEditable frame twice to cover bug 512059
      gQueue.push(new synthFocus(buttonAcc));
      gQueue.push(new synthTab(frameDocAcc, new focusChecker(frameDocAcc)));
      gQueue.push(new synthFocus(buttonAcc));
      gQueue.push(new synthTab(frameDocAcc, new focusChecker(frameDocAcc)));

      // focus on not editable document
      gQueue.push(new synthFocus(frame2InputAcc));
      gQueue.push(new synthShiftTab(frame2DocAcc, new focusChecker(frame2DocAcc)));

      gQueue.invoke(); // Will call SimpleTest.finish();
    }

    SimpleTest.waitForExplicitFinish();
    addA11yLoadEvent(doTests);
  </script>
</head>

<body>

  <a target="_blank"
    href="https://bugzilla.mozilla.org/show_bug.cgi?id=512058"
    title="Can't set focus to designMode document via accessibility APIs">
   Mozilla Bug 512058
  </a>
  <a target="_blank"
     href="https://bugzilla.mozilla.org/show_bug.cgi?id=512059"
     title="Accessibility focus event never fired for designMode document after the first focus">
    Mozilla Bug 512059
  </a>
  <a target="_blank"
     href="https://bugzilla.mozilla.org/show_bug.cgi?id=618046"
     title="No focus change event when Shift+Tab at top of screen">
    Mozilla Bug 618046
  </a>

  <p id="display"></p>
  <div id="content" style="display: none"></div>
  <pre id="test">
  </pre>

  <div id="eventdump"></div>

  <div id="testContainer">
  <button id="b1">a button</button>
  <iframe id="iframe" src="about:blank"></iframe>
  <button id="b2">a button</button>
  <iframe id="iframe2" src="data:text/html,<html><input id='input'></html>"></iframe>
  </div>
</body>
</html>