Merge lp:~3v1n0/unity/ibus-press-release-tests into lp:unity

Proposed by Marco Trevisan (Treviño)
Status: Superseded
Proposed branch: lp:~3v1n0/unity/ibus-press-release-tests
Merge into: lp:unity
Diff against target: 125 lines (+86/-2)
1 file modified
tests/autopilot/unity/tests/test_ibus.py (+86/-2)
To merge this branch: bzr merge lp:~3v1n0/unity/ibus-press-release-tests
Reviewer Review Type Date Requested Status
jenkins (community) continuous-integration Needs Fixing
Thomi Richards (community) quality Needs Fixing
Review via email: mp+113147@code.launchpad.net

This proposal has been superseded by a proposal from 2012-07-17.

Commit message

Tests ibus: added tests for ibus activation on press and release

These won't pass until lp:~3v1n0/unity/im-textentry-rewrite-ibus-fix is merged.

Description of the change

Added AP tests for ibus activation on keydown and on keyup.

To post a comment you must log in.
Revision history for this message
jenkins (martin-mrazik+qa) wrote :

PASSED: Continuous integration, rev:2445
http://s-jenkins:8080/job/unity-ci/59/

review: Approve (continuous-integration)
Revision history for this message
Thomi Richards (thomir-deactivatedaccount) wrote :

Hi,

24 def activate_ibus(self, widget):
25 """Activate IBus, and wait till it's actived on 'widget'"""
26 self.assertThat(widget.im_active, Equals(False))
27 - self.keyboard.press_and_release('Ctrl+Space', 0.05)
28 + self.keyboard.press(self.activate_binding, 0.05)
29 + self.addCleanup(self.keyboard.release, self.activate_binding, 0.05)
30 self.assertThat(widget.im_active, Eventually(Equals(True)))
31 + self.keyboard.release(self.activate_binding, 0.05)
32
33 def deactivate_ibus(self, widget):
34 """Deactivate ibus, and wait till it's inactive on 'widget'"""
35 self.assertThat(widget.im_active, Equals(True))
36 - self.keyboard.press_and_release('Ctrl+Space', 0.05)
37 + self.keyboard.press(self.activate_binding, 0.05)
38 + self.addCleanup(self.keyboard.release, self.activate_binding, 0.05)
39 + self.assertThat(widget.im_active, Eventually(Equals(False)))
40 + self.keyboard.release(self.activate_binding, 0.05)
41 +

Please change these so the keypresses aren't released twice (which will happen currently if the activation is successful).

42 + def activate_ibus_on_release(self, widget):
43 + """Activate IBus, and wait till it's actived on 'widget'"""

50 +
51 + def deactivate_ibus_on_release(self, widget):
52 + """Activate IBus, and wait till it's actived on 'widget'"""

Please update these docstrings - I have no idea what these do currently - how are they different from the regulat activate & deactivate methods, and why are they needed?

review: Needs Fixing (quality)
Revision history for this message
jenkins (martin-mrazik+qa) wrote :
review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/autopilot/unity/tests/test_ibus.py'
2--- tests/autopilot/unity/tests/test_ibus.py 2012-05-16 02:57:25 +0000
3+++ tests/autopilot/unity/tests/test_ibus.py 2012-07-17 23:38:20 +0000
4@@ -18,6 +18,8 @@
5 from autopilot.matchers import Eventually
6 from autopilot.testcase import multiply_scenarios
7 from testtools.matchers import Equals, NotEquals
8+from unity.emulators.dash import Dash
9+from unity.emulators.hud import Hud
10
11 from unity.tests import UnityTestCase
12
13@@ -25,7 +27,24 @@
14 class IBusTests(UnityTestCase):
15 """Base class for IBus tests."""
16
17+ scenarios = [
18+ ('dash', {'widget': Dash()}),
19+ ('hud', {'widget': Hud()})
20+ ]
21+
22 def setUp(self):
23+ self.activate_binding = 'Control+space'
24+ self.activate_release_binding = 'Alt+Control_L'
25+
26+ activate_release_binding_option = 'Alt+Release+Control_L'
27+ trigger_hotkey_path = '/desktop/ibus/general/hotkey/trigger'
28+
29+ old_keys = self.get_gconf_option(trigger_hotkey_path)
30+ new_keys = [self.activate_binding, activate_release_binding_option]
31+
32+ self.set_gconf_option(trigger_hotkey_path, new_keys)
33+ self.addCleanup(self.set_gconf_option, trigger_hotkey_path, old_keys)
34+
35 super(IBusTests, self).setUp()
36
37 def tearDown(self):
38@@ -51,13 +70,25 @@
39 def activate_ibus(self, widget):
40 """Activate IBus, and wait till it's actived on 'widget'"""
41 self.assertThat(widget.im_active, Equals(False))
42- self.keyboard.press_and_release('Ctrl+Space', 0.05)
43+ self.keyboard.press_and_release(self.activate_binding)
44 self.assertThat(widget.im_active, Eventually(Equals(True)))
45
46 def deactivate_ibus(self, widget):
47 """Deactivate ibus, and wait till it's inactive on 'widget'"""
48 self.assertThat(widget.im_active, Equals(True))
49- self.keyboard.press_and_release('Ctrl+Space', 0.05)
50+ self.keyboard.press_and_release(self.activate_binding)
51+ self.assertThat(widget.im_active, Eventually(Equals(False)))
52+
53+ def activate_ibus_on_release(self, widget):
54+ """Activate IBus when keys have been released, and wait till it's actived on 'widget'"""
55+ self.assertThat(widget.im_active, Equals(False))
56+ self.keyboard.press_and_release(self.activate_release_binding)
57+ self.assertThat(widget.im_active, Eventually(Equals(True)))
58+
59+ def deactivate_ibus_on_release(self, widget):
60+ """Activate IBus when keys have been released, and wait till it's actived on 'widget'"""
61+ self.assertThat(widget.im_active, Equals(True))
62+ self.keyboard.press_and_release(self.activate_release_binding)
63 self.assertThat(widget.im_active, Eventually(Equals(False)))
64
65 def do_dash_test_with_engine(self):
66@@ -82,6 +113,59 @@
67 self.deactivate_ibus(self.hud.searchbar)
68 self.assertThat(self.hud.search_string, Eventually(Equals(self.result)))
69
70+ def test_activate(self):
71+ """Tests the ibus activation using the "key-down" keybinding"""
72+ self.widget.ensure_visible()
73+ self.addCleanup(self.widget.ensure_hidden)
74+
75+ self.assertThat(self.widget.searchbar.im_active, Equals(False))
76+ self.keyboard.press(self.activate_binding)
77+ self.addCleanup(self.keyboard.release, self.activate_binding)
78+ self.assertThat(self.widget.searchbar.im_active, Eventually(Equals(True)))
79+ self.keyboard.release(self.activate_binding)
80+
81+ self.deactivate_ibus(self.widget.searchbar)
82+
83+ def test_deactivate(self):
84+ """Tests the ibus deactivation using the "key-down" keybinding"""
85+ self.widget.ensure_visible()
86+ self.addCleanup(self.widget.ensure_hidden)
87+ self.activate_ibus(self.widget.searchbar)
88+
89+ self.assertThat(self.widget.searchbar.im_active, Equals(True))
90+ self.keyboard.press(self.activate_binding)
91+ self.addCleanup(self.keyboard.release, self.activate_binding)
92+ self.assertThat(self.widget.searchbar.im_active, Eventually(Equals(False)))
93+ self.keyboard.release(self.activate_binding)
94+ self.assertThat(self.widget.searchbar.im_active, Eventually(Equals(False)))
95+
96+ def test_activate_on_release(self):
97+ """Tests the ibus activation using "key-up" keybinding"""
98+ self.widget.ensure_visible()
99+ self.addCleanup(self.widget.ensure_hidden)
100+
101+ self.assertThat(self.widget.searchbar.im_active, Equals(False))
102+ self.keyboard.press(self.activate_release_binding)
103+ self.addCleanup(self.keyboard.release, self.activate_release_binding)
104+ self.assertThat(self.widget.searchbar.im_active, Eventually(Equals(False)))
105+ self.keyboard.release(self.activate_release_binding)
106+ self.assertThat(self.widget.searchbar.im_active, Eventually(Equals(True)))
107+
108+ self.deactivate_ibus_on_release(self.widget.searchbar)
109+
110+ def test_deactivate_on_release(self):
111+ """Tests the ibus deactivation using "key-up" keybinding"""
112+ self.widget.ensure_visible()
113+ self.addCleanup(self.widget.ensure_hidden)
114+ self.activate_ibus_on_release(self.widget.searchbar)
115+
116+ self.assertThat(self.widget.searchbar.im_active, Equals(True))
117+ self.keyboard.press(self.activate_release_binding)
118+ self.addCleanup(self.keyboard.release, self.activate_release_binding)
119+ self.assertThat(self.widget.searchbar.im_active, Eventually(Equals(True)))
120+ self.keyboard.release(self.activate_release_binding)
121+ self.assertThat(self.widget.searchbar.im_active, Eventually(Equals(False)))
122+
123
124 class IBusTestsPinyin(IBusTests):
125 """Tests for the Pinyin(Chinese) input engine."""