Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: client/site_tests/desktopui_ImeTest/desktopui_ImeTest.py

Issue 4698007: Added IME tests for web forms (Closed) Base URL: http://git.chromium.org/git/autotest.git@master
Patch Set: testing IME in web forms with the new settings UI and without the Session object causing timeouts Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..04d7b829a543e967e15bf010902fe573e18ce6e0 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)
satorux1 2010/11/17 04:35:38 _test_server per our python style guide.
timothe 2010/11/17 05:04:12 Done.
+ 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)
@@ -77,7 +89,6 @@ class desktopui_ImeTest(site_ui_test.UITest):
cmd = site_ui.xcommand_as('%s %s' % (self.exefile, options), 'chronos')
return utils.system_output(cmd, retain_output=True)
Zachary Kuznia 2010/11/16 10:22:58 This blank line should go back in.
timothe 2010/11/17 01:47:05 Done.
-
# TODO: Make this function talk to chrome directly
def preload_engines(self, engine_list):
engine_names = string.join(engine_list, " ")
@@ -104,6 +115,8 @@ class desktopui_ImeTest(site_ui_test.UITest):
return out.strip()
+ # TODO: Make this function set the config value directly, instead of
+ # attempting to navigate the UI.
Zachary Kuznia 2010/11/16 10:22:58 This comment shouldn't be re-added.
timothe 2010/11/17 01:47:05 Done.
def toggle_ime_process(self):
ax = self.get_autox()
@@ -158,7 +171,7 @@ class desktopui_ImeTest(site_ui_test.UITest):
# Toggle the checkbox.
ax.send_text(' ')
- time.sleep(1)
+ time.sleep(2)
Zachary Kuznia 2010/11/16 10:22:58 This value shouldn't need to change. Was it faili
timothe 2010/11/17 01:47:05 on my PC sometimes yes, the new language would not
Zachary Kuznia 2010/11/17 03:17:46 Ok. Add a comment to note this.
timothe 2010/11/17 04:06:57 Done.
# Close the window.
ax.send_hotkey('Ctrl+w')
@@ -251,6 +264,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 +282,15 @@ 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):
Zachary Kuznia 2010/11/16 10:22:58 nit: 80 characters.
timothe 2010/11/17 01:47:05 Done.
ax = self.get_autox()
# Focus on the omnibox so that we can enter text.
@@ -282,11 +305,25 @@ 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))
- self.activate_engine('xkb:us::eng')
- self.stop_ime_language(language)
+ '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
Zachary Kuznia 2010/11/16 10:22:58 Nit: Space after #, capitalize Clear, add a period
timothe 2010/11/17 01:47:05 Done.
+ ax.send_hotkey('BackSpace')
+
+
+ def test_engine_form(self, language, engine_name, input_string, expected_string):
Zachary Kuznia 2010/11/16 10:22:58 Nit: 80 characters
timothe 2010/11/17 01:47:05 Done.
+ ax = self.get_autox()
+ # Refresh the page so that the focus gets on the text input widget
+ ax.send_hotkey('Ctrl-r')
Zachary Kuznia 2010/11/16 10:22:58 Navigate to the page here, so that it relies less
timothe 2010/11/17 01:47:05 Done.
+ time.sleep(1)
+ 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):
@@ -303,6 +340,11 @@ class desktopui_ImeTest(site_ui_test.UITest):
# immediately after login get lost.
time.sleep(5)
+ # Navigate to the webpage containing the form
Zachary Kuznia 2010/11/16 10:22:58 See above.
timothe 2010/11/17 01:47:05 Done.
+ ax = self.get_autox()
+ ax.send_hotkey('Ctrl+l')
+ time.sleep(1)
+ ax.send_text("%s \n"%self._test_url)
self.test_ibus_start_process()
self.check_process('candidate_window', user='chronos')
@@ -311,14 +353,14 @@ class desktopui_ImeTest(site_ui_test.UITest):
self.test_keyboard_shortcut()
self.test_engine('ja', 'mozc', 'nihongo \n',
- '\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E')
+ '\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E')
self.test_engine('zh-TW', 'chewing', 'hol \n', '\xE6\x93\x8D')
+ self.test_engine('zh-TW', 'm17n:zh:quick', 'aa ', '\xE9\x96\x93')
Zachary Kuznia 2010/11/16 10:22:58 Leave these in the original order to minimize your
timothe 2010/11/17 01:47:05 Done.
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-CN', 'pinyin', 'nihao ', '\xE4\xBD\xA0\xE5\xA5\xBD')
Zachary Kuznia 2010/11/16 10:22:58 nit: 80 characters.
timothe 2010/11/17 01:47:05 Done.
self.test_ibus_stop_process()
+
if len(self._failed) != 0:
raise error.TestFail(
'Failed: %s' % ','.join(self._failed))
« no previous file with comments | « client/site_tests/desktopui_ImeTest/control ('k') | client/site_tests/desktopui_ImeTest/interaction_form.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698