~vbkaisetsu/unity/bug957927

« back to all changes in this revision

Viewing changes to tests/autopilot/autopilot/tests/test_ibus.py

  • Committer: Koichi Akabe
  • Date: 2012-03-23 06:47:29 UTC
  • Revision ID: vbkaisetsu@gmail.com-20120323064729-cmj8vc0sdzimyyqt
add autopilot test for ignoring key events while ibus is active

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
    get_available_input_engines,
14
14
    )
15
15
from autopilot.emulators.unity.dash import Dash
 
16
from autopilot.emulators.unity.hud import HudController
16
17
from autopilot.emulators.X11 import Keyboard
17
18
from autopilot.tests import AutopilotTestCase
18
19
 
25
26
        super(IBusTests, self).setUp()
26
27
        self.kb = Keyboard()
27
28
        self.dash = Dash()
 
29
        self.hud = self.get_hud_controller()
28
30
        self._old_engines = None
29
31
 
30
32
    def tearDown(self):
32
34
            set_active_engines(self._old_engines)
33
35
        super(IBusTests, self).tearDown()
34
36
 
 
37
    def get_hud_controller(self):
 
38
        controllers = HudController.get_all_instances()
 
39
        self.assertEqual(1, len(controllers))
 
40
        return controllers[0]
 
41
 
35
42
    def activate_input_engine_or_skip(self, engine_name):
36
43
        available_engines = get_available_input_engines()
37
44
        if engine_name in available_engines:
118
125
        self.dash.ensure_hidden()
119
126
 
120
127
        self.assertEqual(self.result, dash_search_string)
 
128
 
 
129
 
 
130
class IBusTestsPinyinIgnore(IBusTests):
 
131
    """Tests for ignoring key events while the Pinyin input engine is active."""
 
132
 
 
133
    def test_ignore_key_events_on_dash(self):
 
134
        self.activate_input_engine_or_skip("pinyin")
 
135
        self.dash.ensure_visible()
 
136
        sleep(0.5)
 
137
        self.activate_ibus()
 
138
        sleep(0.5)
 
139
        self.kb.type("cipan")
 
140
        self.kb.press_and_release("Tab")
 
141
        self.kb.type("  ")
 
142
        dash_search_string = self.dash.get_searchbar().search_string
 
143
        self.deactivate_ibus()
 
144
        self.dash.ensure_hidden()
 
145
 
 
146
        self.assertNotEqual("  ", dash_search_string)
 
147
 
 
148
    def test_ignore_key_events_on_hud(self):
 
149
        self.activate_input_engine_or_skip("pinyin")
 
150
        self.hud.toggle_reveal()
 
151
        sleep(0.5)
 
152
        self.kb.type("date")
 
153
        self.activate_ibus()
 
154
        sleep(0.5)
 
155
        self.kb.type("riqi")
 
156
        old_selected = self.hud.selected_button
 
157
        for i in range(5):
 
158
            self.keyboard.press_and_release("Down")
 
159
        new_selected = self.hud.selected_button
 
160
        self.deactivate_ibus()
 
161
        self.hud.toggle_reveal()
 
162
        
 
163
        self.assertEqual(old_selected, new_selected)
 
164
 
 
165
 
 
166
class IBusTestsAnthyIgnore(IBusTests):
 
167
    """Tests for ignoring key events while the Anthy input engine is active."""
 
168
 
 
169
    def test_ignore_key_events_on_dash(self):
 
170
        self.activate_input_engine_or_skip("anthy")
 
171
        self.dash.ensure_visible()
 
172
        sleep(0.5)
 
173
        self.activate_ibus()
 
174
        sleep(0.5)
 
175
        self.kb.type("shisutemu ")
 
176
        self.kb.press_and_release("Tab")
 
177
        self.kb.press_and_release("Ctrl+j")
 
178
        dash_search_string = self.dash.get_searchbar().search_string
 
179
        self.deactivate_ibus()
 
180
        self.dash.ensure_hidden()
 
181
 
 
182
        self.assertNotEqual("", dash_search_string)
 
183
 
 
184
    def test_ignore_key_events_on_hud(self):
 
185
        self.activate_input_engine_or_skip("anthy")
 
186
        self.hud.toggle_reveal()
 
187
        sleep(0.5)
 
188
        self.kb.type("date")
 
189
        self.activate_ibus()
 
190
        sleep(0.5)
 
191
        self.kb.type("hiduke")
 
192
        old_selected = self.hud.selected_button
 
193
        self.kb.press_and_release("Down")
 
194
        new_selected = self.hud.selected_button
 
195
        self.deactivate_ibus()
 
196
        self.hud.toggle_reveal()
 
197
 
 
198
        self.assertEqual(old_selected, new_selected)