summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/chrome/test_mozinputbox_dictionary.xhtml
blob: c2ed8a4787c2e878d81439bd1b45048f39e05793 (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
93
94
95
96
97
98
99
100
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
<!--
  XUL Widget Test for textbox with Add and Undo Add to Dictionary
  -->
<window title="Textbox Add and Undo Add to Dictionary Test" width="500" height="600"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        xmlns:html="http://www.w3.org/1999/xhtml">
  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
  <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>

  <hbox>
    <moz-input-box id="t1" oncontextmenu="runContextMenuTest()" spellcheck="true">
      <html:input class="textbox-input" value="Hellop" spellcheck="true"/>
    </moz-input-box>
  </hbox>

  <!-- test results are displayed in the html:body -->
  <body xmlns="http://www.w3.org/1999/xhtml" style="height: 300px; overflow: auto;"/>

  <!-- test code goes here -->
  <script type="application/javascript"><![CDATA[

SimpleTest.waitForExplicitFinish();

var inputBox;
var testNum;

function bringUpContextMenu(element)
{
  synthesizeMouseAtCenter(element, { type: "contextmenu", button: 2});
}

function leftClickElement(element)
{
  synthesizeMouseAtCenter(element, { button: 0 });
}

var onSpellCheck;
function startTests()
{
  inputBox = document.getElementById("t1");
  inputBox._input.focus();
  testNum = 0;

  ({onSpellCheck} = ChromeUtils.importESModule(
    "resource://testing-common/AsyncSpellCheckTestHelper.sys.mjs"));
  onSpellCheck(inputBox._input, function () {
    bringUpContextMenu(inputBox);
  });
}

function runContextMenuTest()
{
  SimpleTest.executeSoon(function() {
    var contextMenu = inputBox.menupopup;

    switch(testNum)
    {
      case 0: // "Add to Dictionary" button
        var addToDict = inputBox.getMenuItem("spell-add-to-dictionary");
        ok(!addToDict.hidden, "Is Add to Dictionary visible?");

        var separator = inputBox.getMenuItem("spell-suggestions-separator");
        ok(!separator.hidden, "Is separator visible?");

        addToDict.doCommand();

        contextMenu.hidePopup();
        testNum++;

        onSpellCheck(inputBox._input, function () {
          bringUpContextMenu(inputBox);
        });
        break;

      case 1: // "Undo Add to Dictionary" button
        var undoAddDict = inputBox.getMenuItem("spell-undo-add-to-dictionary");
        ok(!undoAddDict.hidden, "Is Undo Add to Dictioanry visible?");

        separator = inputBox.getMenuItem("spell-suggestions-separator");
        ok(!separator.hidden, "Is separator hidden?");

        undoAddDict.doCommand();

        contextMenu.hidePopup();
        onSpellCheck(inputBox._input, function () {
          SimpleTest.finish();
        });
        break;
    }
  });
}

SimpleTest.waitForFocus(startTests);

  ]]></script>

</window>