| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import glob |
| 7 import logging |
| 8 import os |
| 9 |
| 6 import pyauto_functional # Must be imported before pyauto | 10 import pyauto_functional # Must be imported before pyauto |
| 7 import pyauto | 11 import pyauto |
| 8 | 12 |
| 9 | 13 |
| 10 class TranslateTest(pyauto.PyUITest): | 14 class TranslateTest(pyauto.PyUITest): |
| 11 """Tests that translate works correctly""" | 15 """Tests that translate works correctly""" |
| 12 | 16 |
| 13 spanish_google = 'http://www.google.com/webhp?hl=es' | |
| 14 spanish = 'es' | 17 spanish = 'es' |
| 15 after_translate = 'AFTER_TRANSLATE' | 18 after_translate = 'AFTER_TRANSLATE' |
| 16 before_translate = 'BEFORE_TRANSLATE' | 19 before_translate = 'BEFORE_TRANSLATE' |
| 17 translating = 'TRANSLATING' | 20 translating = 'TRANSLATING' |
| 18 translation_error = 'TRANSLATION_ERROR' | 21 translation_error = 'TRANSLATION_ERROR' |
| 19 | 22 |
| 20 def Debug(self): | 23 def Debug(self): |
| 21 """ Test method for experimentation. """ | 24 """ Test method for experimentation. """ |
| 22 import pprint | 25 import pprint |
| 23 pp = pprint.PrettyPrinter(indent=2) | 26 pp = pprint.PrettyPrinter(indent=2) |
| 24 while True: | 27 while True: |
| 25 raw_input('Hit <enter> to dump translate info.. ') | 28 raw_input('Hit <enter> to dump translate info.. ') |
| 26 pp.pprint(self.GetTranslateInfo()) | 29 pp.pprint(self.GetTranslateInfo()) |
| 27 | 30 |
| 31 def _GetURLForDataDirFile(self, filename): |
| 32 """Return the file URL for the given file in the data directory.""" |
| 33 return self.GetFileURLForPath(os.path.join(self.DataDir(), filename)) |
| 34 |
| 35 def _GetDefaultSpanishURL(self): |
| 36 return self._GetURLForDataDirFile( |
| 37 os.path.join('translate', self.spanish, 'google.html')) |
| 38 |
| 39 def _GetDefaultEnglishURL(self): |
| 40 return self._GetURLForDataDirFile('title1.html') |
| 41 |
| 28 def _NavigateAndWaitForBar(self, url): | 42 def _NavigateAndWaitForBar(self, url): |
| 29 self.NavigateToURL(url) | 43 self.NavigateToURL(url) |
| 30 self.WaitForInfobarCount(1) | 44 self.WaitForInfobarCount(1) |
| 31 | 45 |
| 32 def _ClickTranslateUntilSuccess(self): | 46 def _ClickTranslateUntilSuccess(self): |
| 33 """Since the translate can fail due to server error, continue trying until | 47 """Since the translate can fail due to server error, continue trying until |
| 34 it is successful or until it has tried too many times.""" | 48 it is successful or until it has tried too many times.""" |
| 35 max_tries = 10 | 49 max_tries = 10 |
| 36 curr_try = 0 | 50 curr_try = 0 |
| 37 while curr_try < max_tries and not self.ClickTranslateBarTranslate(): | 51 while curr_try < max_tries and not self.ClickTranslateBarTranslate(): |
| 38 curr_try = curr_try + 1 | 52 curr_try = curr_try + 1 |
| 39 if curr_try == 10: | 53 if curr_try == 10: |
| 40 self.fail('Translation failed more than %d times.' % max_tries) | 54 self.fail('Translation failed more than %d times.' % max_tries) |
| 41 | 55 |
| 56 def _AssertTranslateWorks(self, url, original_language): |
| 57 """Translate the page at the given URL and assert that the page has been |
| 58 translated. |
| 59 """ |
| 60 self._NavigateAndWaitForBar(url) |
| 61 translate_info = self.GetTranslateInfo() |
| 62 self.assertEqual(original_language, translate_info['original_language']) |
| 63 self.assertFalse(translate_info['page_translated']) |
| 64 self.assertTrue(translate_info['can_translate_page']) |
| 65 self.assertTrue('translate_bar' in translate_info) |
| 66 self._ClickTranslateUntilSuccess() |
| 67 translate_info = self.GetTranslateInfo() |
| 68 self.assertTrue(translate_info['can_translate_page']) |
| 69 self.assertTrue('translate_bar' in translate_info) |
| 70 translate_bar = translate_info['translate_bar'] |
| 71 self.assertEquals(self.after_translate, |
| 72 translate_info['translate_bar']['bar_state']) |
| 73 self.assertEquals(original_language, |
| 74 translate_bar['original_lang_code']) |
| 75 |
| 42 def testTranslate(self): | 76 def testTranslate(self): |
| 43 """Tests that a page was translated if the user chooses to translate.""" | 77 """Tests that a page was translated if the user chooses to translate.""" |
| 44 self._NavigateAndWaitForBar(self.spanish_google) | 78 self._AssertTranslateWorks(self._GetDefaultSpanishURL(), self.spanish) |
| 45 self._ClickTranslateUntilSuccess() | |
| 46 translate_info = self.GetTranslateInfo() | |
| 47 self.assertEqual(self.spanish, translate_info['original_language']) | |
| 48 self.assertTrue(translate_info['page_translated']) | |
| 49 self.assertTrue(translate_info['can_translate_page']) | |
| 50 self.assertTrue('translate_bar' in translate_info) | |
| 51 self.assertEquals(self.after_translate, | |
| 52 translate_info['translate_bar']['bar_state']) | |
| 53 | 79 |
| 54 def testNoTranslate(self): | 80 def testNoTranslate(self): |
| 55 """Tests that a page isn't translated if the user declines translate.""" | 81 """Tests that a page isn't translated if the user declines translate.""" |
| 56 self._NavigateAndWaitForBar(self.spanish_google) | 82 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 57 self.PerformActionOnInfobar('dismiss', 0) | 83 self.PerformActionOnInfobar('dismiss', 0) |
| 58 translate_info = self.GetTranslateInfo() | 84 translate_info = self.GetTranslateInfo() |
| 59 self.assertEqual(self.spanish, translate_info['original_language']) | 85 self.assertEqual(self.spanish, translate_info['original_language']) |
| 60 self.assertFalse(translate_info['page_translated']) | 86 self.assertFalse(translate_info['page_translated']) |
| 61 self.assertTrue(translate_info['can_translate_page']) | 87 self.assertTrue(translate_info['can_translate_page']) |
| 62 # If the user goes to the site again, the infobar should drop down but | 88 # If the user goes to the site again, the infobar should drop down but |
| 63 # the page should not be automatically translated. | 89 # the page should not be automatically translated. |
| 64 self._NavigateAndWaitForBar(self.spanish_google) | 90 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 65 translate_info = self.GetTranslateInfo() | 91 translate_info = self.GetTranslateInfo() |
| 66 self.assertFalse(translate_info['page_translated']) | 92 self.assertFalse(translate_info['page_translated']) |
| 67 self.assertTrue(translate_info['can_translate_page']) | 93 self.assertTrue(translate_info['can_translate_page']) |
| 68 self.assertTrue('translate_bar' in translate_info) | 94 self.assertTrue('translate_bar' in translate_info) |
| 69 self.assertEquals(self.before_translate, | 95 self.assertEquals(self.before_translate, |
| 70 translate_info['translate_bar']['bar_state']) | 96 translate_info['translate_bar']['bar_state']) |
| 71 | 97 |
| 72 def testNeverTranslateLanguage(self): | 98 def testNeverTranslateLanguage(self): |
| 73 """Tests that blacklisting a language for translate works.""" | 99 """Tests that blacklisting a language for translate works.""" |
| 74 self._NavigateAndWaitForBar(self.spanish_google) | 100 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 75 self.SelectTranslateOption('never_translate_language') | 101 self.SelectTranslateOption('never_translate_language') |
| 76 translate_info = self.GetTranslateInfo() | 102 translate_info = self.GetTranslateInfo() |
| 77 self.assertEqual(self.spanish, translate_info['original_language']) | 103 self.assertEqual(self.spanish, translate_info['original_language']) |
| 78 self.assertFalse(translate_info['page_translated']) | 104 self.assertFalse(translate_info['page_translated']) |
| 79 self.assertFalse(translate_info['can_translate_page']) | 105 self.assertFalse(translate_info['can_translate_page']) |
| 80 spanish_wikipedia = 'http://es.wikipedia.org/wiki/Wikipedia:Portada' | 106 spanish_wikipedia = 'http://es.wikipedia.org/wiki/Wikipedia:Portada' |
| 81 self.NavigateToURL(spanish_wikipedia) | 107 self.NavigateToURL(spanish_wikipedia) |
| 82 translate_info = self.GetTranslateInfo() | 108 translate_info = self.GetTranslateInfo() |
| 83 self.assertEqual(self.spanish, translate_info['original_language']) | 109 self.assertEqual(self.spanish, translate_info['original_language']) |
| 84 self.assertFalse(translate_info['page_translated']) | 110 self.assertFalse(translate_info['page_translated']) |
| 85 self.assertFalse(translate_info['can_translate_page']) | 111 self.assertFalse(translate_info['can_translate_page']) |
| 86 | 112 |
| 87 def testAlwaysTranslateLanguage(self): | 113 def testAlwaysTranslateLanguage(self): |
| 88 """Tests that the always translate a language option works.""" | 114 """Tests that the always translate a language option works.""" |
| 89 self._NavigateAndWaitForBar(self.spanish_google) | 115 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 90 self.SelectTranslateOption('toggle_always_translate') | 116 self.SelectTranslateOption('toggle_always_translate') |
| 91 self._ClickTranslateUntilSuccess() | 117 self._ClickTranslateUntilSuccess() |
| 92 translate_info = self.GetTranslateInfo() | 118 translate_info = self.GetTranslateInfo() |
| 93 self.assertEquals(self.spanish, translate_info['original_language']) | 119 self.assertEquals(self.spanish, translate_info['original_language']) |
| 94 self.assertTrue(translate_info['page_translated']) | 120 self.assertTrue(translate_info['page_translated']) |
| 95 self.assertTrue(translate_info['can_translate_page']) | 121 self.assertTrue(translate_info['can_translate_page']) |
| 96 self.assertTrue('translate_bar' in translate_info) | 122 self.assertTrue('translate_bar' in translate_info) |
| 97 self.assertEquals(self.after_translate, | 123 self.assertEquals(self.after_translate, |
| 98 translate_info['translate_bar']['bar_state']) | 124 translate_info['translate_bar']['bar_state']) |
| 99 # Go to another spanish site and verify that it is translated. | 125 # Go to another spanish site and verify that it is translated. |
| 100 # Note that the 'This page has been translated..." bar will show up. | 126 # Note that the 'This page has been translated..." bar will show up. |
| 101 self._NavigateAndWaitForBar( | 127 self._NavigateAndWaitForBar( |
| 102 'http://es.wikipedia.org/wiki/Wikipedia:Portada') | 128 'http://es.wikipedia.org/wiki/Wikipedia:Portada') |
| 103 translate_info = self.GetTranslateInfo() | 129 translate_info = self.GetTranslateInfo() |
| 104 self.assertTrue('translate_bar' in translate_info) | 130 self.assertTrue('translate_bar' in translate_info) |
| 105 curr_bar_state = translate_info['translate_bar']['bar_state'] | 131 curr_bar_state = translate_info['translate_bar']['bar_state'] |
| 106 # We don't care whether the translation has finished, just that it is | 132 # We don't care whether the translation has finished, just that it is |
| 107 # trying to translate. | 133 # trying to translate. |
| 108 self.assertTrue(curr_bar_state is self.after_translate or | 134 self.assertTrue(curr_bar_state is self.after_translate or |
| 109 self.translating or self.translation_error, | 135 self.translating or self.translation_error, |
| 110 'Bar state was %s.' % curr_bar_state) | 136 'Bar state was %s.' % curr_bar_state) |
| 111 | 137 |
| 112 def testNeverTranslateSite(self): | 138 def testNeverTranslateSite(self): |
| 113 """Tests that blacklisting a site for translate works.""" | 139 """Tests that blacklisting a site for translate works.""" |
| 114 self._NavigateAndWaitForBar(self.spanish_google) | 140 spanish_google = 'http://www.google.com/webhp?hl=es' |
| 141 self._NavigateAndWaitForBar(spanish_google) |
| 115 self.SelectTranslateOption('never_translate_site') | 142 self.SelectTranslateOption('never_translate_site') |
| 116 translate_info = self.GetTranslateInfo() | 143 translate_info = self.GetTranslateInfo() |
| 117 self.assertFalse(translate_info['page_translated']) | 144 self.assertFalse(translate_info['page_translated']) |
| 118 self.assertFalse(translate_info['can_translate_page']) | 145 self.assertFalse(translate_info['can_translate_page']) |
| 119 french_google = 'http://www.google.com/webhp?hl=fr' | 146 french_google = 'http://www.google.com/webhp?hl=fr' |
| 120 # Go to another page in the same site and verify that the page can't be | 147 # Go to another page in the same site and verify that the page can't be |
| 121 # translated even though it's in a different language. | 148 # translated even though it's in a different language. |
| 122 self.NavigateToURL(french_google) | 149 self.NavigateToURL(french_google) |
| 123 translate_info = self.GetTranslateInfo() | 150 translate_info = self.GetTranslateInfo() |
| 124 self.assertFalse(translate_info['page_translated']) | 151 self.assertFalse(translate_info['page_translated']) |
| 125 self.assertFalse(translate_info['can_translate_page']) | 152 self.assertFalse(translate_info['can_translate_page']) |
| 126 | 153 |
| 127 def testRevert(self): | 154 def testRevert(self): |
| 128 """Tests that reverting a site to its original language works.""" | 155 """Tests that reverting a site to its original language works.""" |
| 129 self._NavigateAndWaitForBar(self.spanish_google) | 156 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 130 self._ClickTranslateUntilSuccess() | 157 self._ClickTranslateUntilSuccess() |
| 131 self.RevertPageTranslation() | 158 self.RevertPageTranslation() |
| 132 translate_info = self.GetTranslateInfo() | 159 translate_info = self.GetTranslateInfo() |
| 133 self.assertFalse(translate_info['page_translated']) | 160 self.assertFalse(translate_info['page_translated']) |
| 134 self.assertTrue(translate_info['can_translate_page']) | 161 self.assertTrue(translate_info['can_translate_page']) |
| 135 | 162 |
| 163 def testBarNotVisibleOnSSLErrorPage(self): |
| 164 """Test Translate bar is not visible on SSL error pages.""" |
| 165 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 166 translate_info = self.GetTranslateInfo() |
| 167 self.assertTrue('translate_bar' in translate_info) |
| 168 self.assertTrue(translate_info['can_translate_page']) |
| 169 # This page is an ssl error page. |
| 170 self.NavigateToURL('https://www.sourceforge.net') |
| 171 self.WaitForInfobarCount(0) |
| 172 translate_info = self.GetTranslateInfo() |
| 173 self.assertFalse('translate_bar' in translate_info) |
| 174 |
| 175 def testBarNotVisibleOnEnglishPage(self): |
| 176 """Test Translate bar is not visible on English pages.""" |
| 177 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 178 translate_info = self.GetTranslateInfo() |
| 179 self.assertTrue('translate_bar' in translate_info) |
| 180 self.assertTrue(translate_info['can_translate_page']) |
| 181 # With the translate bar visible in same tab open an English page. |
| 182 self.NavigateToURL(self._GetDefaultEnglishURL()) |
| 183 self.WaitForInfobarCount(0) |
| 184 translate_info = self.GetTranslateInfo() |
| 185 self.assertFalse('translate_bar' in translate_info) |
| 186 |
| 187 def testTranslateDiffURLs(self): |
| 188 """Test that HTTP, HTTPS, and file urls all get translated.""" |
| 189 http_url = 'http://www.google.com/webhp?hl=es' |
| 190 https_url = 'https://www.google.com/webhp?hl=es' |
| 191 file_url = self._GetDefaultSpanishURL() |
| 192 for url in (http_url, https_url, file_url): |
| 193 self._AssertTranslateWorks(url, self.spanish) |
| 194 |
| 195 def testNeverTranslateLanguage(self): |
| 196 """Verify no translate bar for blacklisted language.""" |
| 197 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 198 self.SelectTranslateOption('never_translate_language') |
| 199 self.assertFalse(self.GetBrowserInfo()['windows'][0]['tabs'][0]['infobars']) |
| 200 # Navigate to a page that will show the translate bar, then navigate away. |
| 201 self._NavigateAndWaitForBar( |
| 202 self._GetURLForDataDirFile('french_page.html')) |
| 203 self.NavigateToURL('http://es.wikipedia.org/wiki/Wikipedia:Portada') |
| 204 self.WaitForInfobarCount(0) |
| 205 translate_info = self.GetTranslateInfo() |
| 206 self.assertFalse('translate_bar' in translate_info) |
| 207 self.assertFalse(translate_info['page_translated']) |
| 208 self.assertFalse(translate_info['can_translate_page']) |
| 209 |
| 210 def testNotranslateMetaTag(self): |
| 211 """Test "notranslate" meta tag.""" |
| 212 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 213 self.NavigateToURL(self._GetURLForDataDirFile( |
| 214 os.path.join('translate', 'notranslate_meta_tag.html'))) |
| 215 self.WaitForInfobarCount(0) |
| 216 translate_info = self.GetTranslateInfo() |
| 217 self.assertFalse('translate_bar' in translate_info) |
| 218 |
| 219 def testToggleTranslateOption(self): |
| 220 """Test to toggle the 'Always Translate' option.""" |
| 221 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 222 # Assert the default. |
| 223 translate_info = self.GetTranslateInfo() |
| 224 self.assertFalse(translate_info['page_translated']) |
| 225 self.assertTrue('translate_bar' in translate_info) |
| 226 # Select 'Always Translate'. |
| 227 self.SelectTranslateOption('toggle_always_translate') |
| 228 self._ClickTranslateUntilSuccess() |
| 229 translate_info = self.GetTranslateInfo() |
| 230 self.assertTrue(translate_info['page_translated']) |
| 231 # Reload the tab and confirm the page was translated. |
| 232 self.GetBrowserWindow(0).GetTab(0).Reload() |
| 233 self.WaitForInfobarCount(1) |
| 234 success = self.WaitUntilTranslateComplete() |
| 235 # Sometimes the translation fails. Continue clicking until it succeeds. |
| 236 if not success: |
| 237 self._ClickTranslateUntilSuccess() |
| 238 # Uncheck 'Always Translate' |
| 239 self.SelectTranslateOption('toggle_always_translate') |
| 240 self.PerformActionOnInfobar('dismiss', 0) |
| 241 translate_info = self.GetTranslateInfo() |
| 242 self.assertTrue(translate_info['page_translated']) |
| 243 self.assertFalse('translate_bar' in translate_info) |
| 244 # Reload the tab and confirm that the page has not been translated. |
| 245 self.GetBrowserWindow(0).GetTab(0).Reload() |
| 246 translate_info = self.GetTranslateInfo() |
| 247 self.assertFalse(translate_info['page_translated']) |
| 248 self.assertTrue('translate_bar' in translate_info) |
| 249 |
| 250 def testSessionRestore(self): |
| 251 """Test that session restore restores the translate infobar and other |
| 252 translate settings. |
| 253 """ |
| 254 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 255 translate_info = self.GetTranslateInfo() |
| 256 self.assertTrue('translate_bar' in translate_info) |
| 257 self.SelectTranslateOption('toggle_always_translate') |
| 258 self._ClickTranslateUntilSuccess() |
| 259 self.SetPrefs(pyauto.kRestoreOnStartup, 1) |
| 260 self.RestartBrowser(clear_profile=False) |
| 261 self.WaitForInfobarCount(1) |
| 262 translate_info = self.GetTranslateInfo() |
| 263 self.assertTrue('translate_bar' in translate_info) |
| 264 # Sometimes translation fails. We don't really care whether it succeededs, |
| 265 # just that a translation was attempted. |
| 266 self.assertNotEqual(self.before_translate, |
| 267 translate_info['translate_bar']['bar_state']) |
| 268 |
| 269 def testGoBackAndForwardToTranslatePage(self): |
| 270 """Tests that translate bar re-appears after backward and forward |
| 271 navigation to a page that can be translated. |
| 272 """ |
| 273 no_trans_url = self._GetDefaultEnglishURL() |
| 274 trans_url = self._GetDefaultSpanishURL() |
| 275 self._NavigateAndWaitForBar(trans_url) |
| 276 translate_info = self.GetTranslateInfo() |
| 277 self.assertTrue('translate_bar' in translate_info) |
| 278 self.NavigateToURL(no_trans_url) |
| 279 self.WaitForInfobarCount(0) |
| 280 self.assertFalse('translate_bar' in self.GetTranslateInfo()) |
| 281 # Go back to the page that should be translated and assert that the |
| 282 # translate bar re-appears. |
| 283 self.GetBrowserWindow(0).GetTab(0).GoBack() |
| 284 self.WaitForInfobarCount(1) |
| 285 self.assertTrue('translate_bar' in self.GetTranslateInfo()) |
| 286 |
| 287 # Now test going forward. |
| 288 self.NavigateToURL(no_trans_url) |
| 289 translate_info = self.GetTranslateInfo() |
| 290 self.assertFalse('translate_bar' in translate_info) |
| 291 self._AssertTranslateWorks(trans_url, self.spanish) |
| 292 self.GetBrowserWindow(0).GetTab(0).GoBack() |
| 293 self.WaitForInfobarCount(0) |
| 294 translate_info = self.GetTranslateInfo() |
| 295 self.assertFalse('translate_bar' in translate_info) |
| 296 self.GetBrowserWindow(0).GetTab(0).GoForward() |
| 297 self.WaitForInfobarCount(1) |
| 298 translate_info = self.GetTranslateInfo() |
| 299 self.assertTrue(translate_info['can_translate_page']) |
| 300 self.assertTrue('translate_bar' in translate_info) |
| 301 |
| 302 def testForCrashedTab(self): |
| 303 """Tests that translate bar is dimissed if the renderer crashes.""" |
| 304 crash_url = 'about:crash' |
| 305 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 306 translate_info = self.GetTranslateInfo() |
| 307 self.assertTrue('translate_bar' in translate_info) |
| 308 self.NavigateToURL(crash_url) |
| 309 self.WaitForInfobarCount(0) |
| 310 self.assertFalse('translate_bar' in self.GetTranslateInfo()) |
| 311 |
| 312 def testTranslatePrefs(self): |
| 313 """Test the Prefs:Translate option.""" |
| 314 # Assert defaults first. |
| 315 self.assertTrue(self.GetPrefsInfo().Prefs(pyauto.kEnableTranslate)) |
| 316 # Uncheck. |
| 317 self.SetPrefs(pyauto.kEnableTranslate, False) |
| 318 self.NavigateToURL(self._GetDefaultSpanishURL()) |
| 319 self.assertFalse('translate_bar' in self.GetTranslateInfo()) |
| 320 # Restart the browser and assert the translate preference stays. |
| 321 self.RestartBrowser(clear_profile=False) |
| 322 self.assertFalse(self.GetPrefsInfo().Prefs(pyauto.kEnableTranslate)) |
| 323 self.NavigateToURL(self._GetDefaultSpanishURL()) |
| 324 self.assertFalse('translate_bar' in self.GetTranslateInfo()) |
| 325 |
| 326 def testSeveralLanguages(self): |
| 327 """Verify translation for several languages. |
| 328 |
| 329 This assumes that there is a directory of directories in the data dir. |
| 330 The directory is called 'translate', and within that directory there are |
| 331 subdirectories for each language code. Ex. a subdirectory 'es' with Spanish |
| 332 html files. |
| 333 """ |
| 334 corpora_path = os.path.join(self.DataDir(), 'translate') |
| 335 corp_dir = glob.glob(os.path.join(corpora_path, '??')) + \ |
| 336 glob.glob(os.path.join(corpora_path, '??-??')) |
| 337 |
| 338 for language in corp_dir: |
| 339 files = glob.glob(os.path.join(language, '*.html*')) |
| 340 lang_code = os.path.basename(language) |
| 341 logging.debug('Starting language %s' % lang_code) |
| 342 # Translate each html file in the language directory. |
| 343 for lang_file in files: |
| 344 logging.debug('Starting file %s' % lang_file) |
| 345 lang_file = self.GetFileURLForPath(lang_file) |
| 346 self._AssertTranslateWorks(lang_file, lang_code) |
| 347 |
| 136 | 348 |
| 137 if __name__ == '__main__': | 349 if __name__ == '__main__': |
| 138 pyauto_functional.Main() | 350 pyauto_functional.Main() |
| OLD | NEW |