Chromium Code Reviews| Index: client/site_tests/desktopui_ImeTest/desktopui_ImeTest.py |
| diff --git a/client/site_tests/desktopui_ImeTest/desktopui_ImeTest.py b/client/site_tests/desktopui_ImeTest/desktopui_ImeTest.py |
| index 47e2dbb1073cd03168a3883440084bb424f60699..75a70555240566ab248f3a35a667927b503b268d 100644 |
| --- a/client/site_tests/desktopui_ImeTest/desktopui_ImeTest.py |
| +++ b/client/site_tests/desktopui_ImeTest/desktopui_ImeTest.py |
| @@ -4,7 +4,7 @@ |
| import os, string, time, gtk |
| from autotest_lib.client.bin import site_ui_test, test |
| -from autotest_lib.client.common_lib import error, site_ui, utils |
| +from autotest_lib.client.common_lib import error, site_ui, utils, site_httpd |
| class desktopui_ImeTest(site_ui_test.UITest): |
| @@ -15,6 +15,18 @@ class desktopui_ImeTest(site_ui_test.UITest): |
| # TODO: We shouldn't use ibusclient, we should talk to Chrome directly |
| self.job.setup_dep(['ibusclient']) |
| + def initialize(self, creds='$default'): |
| + self._test_url = 'http://localhost:8000/interaction_form.html' |
| + self._testServer = site_httpd.HTTPListener(8000, docroot=self.bindir) |
| + self._testServer.run() |
| + |
| + site_ui_test.UITest.initialize(self, creds) |
| + |
| + |
| + def cleanup(self): |
| + self._testServer.stop() |
| + site_ui_test.UITest.cleanup(self) |
| + |
| def log_error(self, test_name, message): |
| self.job.record('ERROR', None, test_name, message) |
| @@ -72,12 +84,12 @@ class desktopui_ImeTest(site_ui_test.UITest): |
| return |
| + |
|
Zachary Kuznia
2010/11/17 03:17:46
Nit: 2 lines between functions.
timothe
2010/11/17 04:06:57
Done.
|
| # TODO: Get rid of this function. |
| def run_ibusclient(self, options): |
| cmd = site_ui.xcommand_as('%s %s' % (self.exefile, options), 'chronos') |
| return utils.system_output(cmd, retain_output=True) |
|
Zachary Kuznia
2010/11/17 03:17:46
Nit: 2 lines between function.
timothe
2010/11/17 04:06:57
Done.
|
| - |
| # TODO: Make this function talk to chrome directly |
| def preload_engines(self, engine_list): |
| engine_names = string.join(engine_list, " ") |
| @@ -158,7 +170,7 @@ class desktopui_ImeTest(site_ui_test.UITest): |
| # Toggle the checkbox. |
| ax.send_text(' ') |
| - time.sleep(1) |
| + time.sleep(2) |
| # Close the window. |
| ax.send_hotkey('Ctrl+w') |
| @@ -251,6 +263,8 @@ class desktopui_ImeTest(site_ui_test.UITest): |
| (current_engine, expected_initial_engine)) |
| ax = self.get_autox() |
| ax.send_hotkey('Ctrl-l') |
| + # If we don't sleep here sometimes the following keys are not received |
| + time.sleep(1) |
| ax.send_hotkey('Ctrl-space') |
| start_time = time.time() |
| while time.time() - start_time < 10: |
| @@ -267,7 +281,16 @@ class desktopui_ImeTest(site_ui_test.UITest): |
| def test_engine(self, language, engine_name, input_string, expected_string): |
| self.start_ime_engine(language, engine_name) |
| self.activate_engine(engine_name) |
| + self.test_engine_omnibox(language, engine_name, input_string, |
| + expected_string) |
| + self.test_engine_form(language, engine_name, input_string, |
| + expected_string) |
| + self.activate_engine('xkb:us::eng') |
| + self.stop_ime_language(language) |
| + |
| + def test_engine_omnibox(self, language, engine_name, input_string, |
| + expected_string): |
| ax = self.get_autox() |
| # Focus on the omnibox so that we can enter text. |
| @@ -282,11 +305,31 @@ class desktopui_ImeTest(site_ui_test.UITest): |
| text = self.get_current_text() |
| if text != expected_string: |
| self.log_error( |
| - 'test_engine %s' % engine_name, |
| - 'Engine %s failed: Got %s, expected %s' % (engine_name, text, |
| - expected_string)) |
| + 'test_engine %s in omnibox' % engine_name, |
| + 'Engine %s failed : Got %s, expected %s' % ( |
| + engine_name, text, expected_string)) |
| + # Clear the omnibox for future tests. |
| + ax.send_hotkey('BackSpace') |
| + |
| + |
| + def test_engine_form(self, language, engine_name, input_string, |
| + expected_string): |
| + ax = self.get_autox() |
| + # Go to the page containing the form. |
| self.activate_engine('xkb:us::eng') |
| - self.stop_ime_language(language) |
| + ax.send_hotkey("Ctrl+l") |
| + time.sleep(1) |
| + ax.send_text("%s \n"%self._test_url) |
|
Zachary Kuznia
2010/11/17 03:17:46
Nit: Add spaces around '%'
timothe
2010/11/17 04:06:57
Done.
|
| + time.sleep(1) |
| + self.activate_engine(engine_name) |
| + |
| + ax.send_text(input_string) |
| + text = self.get_current_text() |
| + if text != expected_string: |
| + self.log_error( |
| + 'test_engine %s in form' % engine_name, |
| + 'Engine %s failed : Got %s, expected %s' % ( |
| + engine_name, text, expected_string)) |
| def run_once(self): |
| @@ -316,9 +359,10 @@ class desktopui_ImeTest(site_ui_test.UITest): |
| self.test_engine('ko', 'hangul', 'wl ', '\xEC\xA7\x80 ') |
| self.test_engine('zh-CN', 'pinyin', 'nihao ', |
| '\xE4\xBD\xA0\xE5\xA5\xBD') |
| - self.test_engine('zh-TW', 'm17n:zh:quick', 'aa', '\xE9\x96\x93') |
| + self.test_engine('zh-TW', 'm17n:zh:quick', 'aa ', '\xE9\x96\x93') |
| self.test_ibus_stop_process() |
| + |
| if len(self._failed) != 0: |
| raise error.TestFail( |
| 'Failed: %s' % ','.join(self._failed)) |