Index: chrome/test/pyautolib/pyauto.py |
diff --git a/chrome/test/pyautolib/pyauto.py b/chrome/test/pyautolib/pyauto.py |
index 716f14d8437be665383e37470adaca7427fda0ea..0d0e1b0bc30d26a006639783cf2ee6f42a3b4b3e 100644 |
--- a/chrome/test/pyautolib/pyauto.py |
+++ b/chrome/test/pyautolib/pyauto.py |
@@ -646,6 +646,101 @@ class PyUITest(pyautolib.PyUITestBase, unittest.TestCase): |
return history_info.HistoryInfo( |
self._SendJSONRequest(0, json.dumps(cmd_dict))) |
+ def GetTranslateInfo(self, tab_index=0, window_index=0): |
+ """Returns info about translate for the given page. |
+ |
+ If the translate bar is showing, also returns information about the bar. |
+ |
+ Args: |
+ tab_index: The tab index, default is 0. |
+ window_index: The window index, default is 0. |
+ |
+ Returns: |
+ A dictionary of information about translate for the page. Example: |
+ { u'can_translate_page': True, |
+ u'original_language': u'es', |
+ u'page_translated': False, |
+ # The below will only appear if the translate bar is showing. |
+ u'translate_bar': { u'bar_state': u'BEFORE_TRANSLATE', |
+ u'original_lang_code': u'es', |
+ u'target_lang_code': u'en'}} |
+ """ |
+ cmd_dict = { # Prepare command for the json interface |
+ 'command': 'GetTranslateInfo', |
+ 'tab_index': tab_index |
+ } |
+ return self._GetResultFromJSONRequest(cmd_dict, windex=window_index) |
+ |
+ def ClickTranslateBarTranslate(self, tab_index=0, window_index=0): |
+ """If the translate bar is showing, clicks the 'Translate' button on the |
+ bar. This will show the 'this page has been translated...' infobar. |
+ |
+ Args: |
+ tab_index: The index of the tab, default is 0. |
+ window_index: The index of the window, default is 0. |
+ |
+ Returns: |
+ True if the translation was successful or false if there was an error. |
+ Note that an error shouldn't neccessarily mean a failed test - retry the |
+ call on error. |
+ |
+ Raises: |
+ pyauto_errors.JSONInterfaceError if the automation returns an error. |
+ """ |
+ cmd_dict = { # Prepare command for the json interface |
+ 'command': 'SelectTranslateOption', |
+ 'tab_index': tab_index, |
+ 'option': 'translate_page' |
+ } |
+ return self._GetResultFromJSONRequest( |
+ cmd_dict, windex=window_index)['translation_success'] |
+ |
+ def RevertPageTranslation(self, tab_index=0, window_index=0): |
+ """Select the 'Show original' button on the 'this page has been |
+ translated...' infobar. This will remove the infobar and revert the |
+ page translation. |
+ |
+ Args: |
+ tab_index: The index of the tab, default is 0. |
+ window_index: The index of the window, default is 0. |
+ """ |
+ cmd_dict = { # Prepare command for the json interface |
+ 'command': 'SelectTranslateOption', |
+ 'tab_index': tab_index, |
+ 'option': 'revert_translation' |
+ } |
+ self._GetResultFromJSONRequest(cmd_dict, windex=window_index) |
+ |
+ def SelectTranslateOption(self, option, tab_index=0, window_index=0): |
+ """Selects one of the options in the drop-down menu for the translate bar. |
+ |
+ Args: |
+ option: One of 'never_translate_language', 'never_translate_site', or |
+ 'toggle_always_translate'. See notes on each below. |
+ tab_index: The index of the tab, default is 0. |
+ window_index: The index of the window, default is 0. |
+ |
+ *Notes* |
+ never translate language: Selecting this means that no sites in this |
+ language will be translated. This dismisses the infobar. |
+ never translate site: Selecting this means that this site will never be |
+ translated, regardless of the language. This dismisses the infobar. |
+ toggle always translate: This does not dismiss the infobar or translate the |
+ page. See ClickTranslateBarTranslate and PerformActioOnInfobar to do those. |
+ If a language is selected to be always translated, then whenver the user |
+ visits a page with that language, the infobar will show the 'This page has |
+ been translated...' message. |
+ |
+ Raises: |
+ pyauto_errors.JSONInterfaceError if the automation returns an error. |
+ """ |
+ cmd_dict = { # Prepare command for the json interface |
+ 'command': 'SelectTranslateOption', |
+ 'option': option, |
+ 'tab_index': tab_index |
+ } |
+ self._GetResultFromJSONRequest(cmd_dict, windex=window_index) |
+ |
def FillAutoFillProfile(self, profiles=None, credit_cards=None, |
tab_index=0, window_index=0): |
"""Set the autofill profile to contain the given profiles and credit cards. |