| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 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 | 6 import glob |
| 7 import logging | 7 import logging |
| 8 import os | 8 import os |
| 9 import shutil | 9 import shutil |
| 10 import tempfile | 10 import tempfile |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 # Assert the default. | 205 # Assert the default. |
| 206 translate_info = self.GetTranslateInfo() | 206 translate_info = self.GetTranslateInfo() |
| 207 self.assertFalse(translate_info['page_translated']) | 207 self.assertFalse(translate_info['page_translated']) |
| 208 self.assertTrue('translate_bar' in translate_info) | 208 self.assertTrue('translate_bar' in translate_info) |
| 209 # Select 'Always Translate'. | 209 # Select 'Always Translate'. |
| 210 self.SelectTranslateOption('toggle_always_translate') | 210 self.SelectTranslateOption('toggle_always_translate') |
| 211 self._ClickTranslateUntilSuccess() | 211 self._ClickTranslateUntilSuccess() |
| 212 translate_info = self.GetTranslateInfo() | 212 translate_info = self.GetTranslateInfo() |
| 213 self.assertTrue(translate_info['page_translated']) | 213 self.assertTrue(translate_info['page_translated']) |
| 214 # Reload the tab and confirm the page was translated. | 214 # Reload the tab and confirm the page was translated. |
| 215 self.GetBrowserWindow(0).GetTab(0).Reload() | 215 self.ReloadTab() |
| 216 self.assertTrue(self.WaitForInfobarCount(1)) | 216 self.assertTrue(self.WaitForInfobarCount(1)) |
| 217 success = self.WaitUntilTranslateComplete() | 217 success = self.WaitUntilTranslateComplete() |
| 218 # Sometimes the translation fails. Continue clicking until it succeeds. | 218 # Sometimes the translation fails. Continue clicking until it succeeds. |
| 219 if not success: | 219 if not success: |
| 220 self._ClickTranslateUntilSuccess() | 220 self._ClickTranslateUntilSuccess() |
| 221 # Uncheck 'Always Translate' | 221 # Uncheck 'Always Translate' |
| 222 self.SelectTranslateOption('toggle_always_translate') | 222 self.SelectTranslateOption('toggle_always_translate') |
| 223 self.PerformActionOnInfobar('dismiss', 0) | 223 self.PerformActionOnInfobar('dismiss', 0) |
| 224 translate_info = self.GetTranslateInfo() | 224 translate_info = self.GetTranslateInfo() |
| 225 self.assertTrue(translate_info['page_translated']) | 225 self.assertTrue(translate_info['page_translated']) |
| 226 self.assertFalse('translate_bar' in translate_info) | 226 self.assertFalse('translate_bar' in translate_info) |
| 227 # Reload the tab and confirm that the page has not been translated. | 227 # Reload the tab and confirm that the page has not been translated. |
| 228 self.GetBrowserWindow(0).GetTab(0).Reload() | 228 self.ReloadTab() |
| 229 translate_info = self.GetTranslateInfo() | 229 translate_info = self.GetTranslateInfo() |
| 230 self.assertFalse(translate_info['page_translated']) | 230 self.assertFalse(translate_info['page_translated']) |
| 231 self.assertTrue('translate_bar' in translate_info) | 231 self.assertTrue('translate_bar' in translate_info) |
| 232 | 232 |
| 233 def testSessionRestore(self): | 233 def testSessionRestore(self): |
| 234 """Test that session restore restores the translate infobar and other | 234 """Test that session restore restores the translate infobar and other |
| 235 translate settings. | 235 translate settings. |
| 236 """ | 236 """ |
| 237 # Due to crbug.com/51439, we must open two tabs here. | 237 # Due to crbug.com/51439, we must open two tabs here. |
| 238 self.NavigateToURL("http://www.news.google.com") | 238 self.NavigateToURL("http://www.news.google.com") |
| (...skipping 21 matching lines...) Expand all Loading... |
| 260 no_trans_url = self._GetDefaultEnglishURL() | 260 no_trans_url = self._GetDefaultEnglishURL() |
| 261 trans_url = self._GetDefaultSpanishURL() | 261 trans_url = self._GetDefaultSpanishURL() |
| 262 self._NavigateAndWaitForBar(trans_url) | 262 self._NavigateAndWaitForBar(trans_url) |
| 263 translate_info = self.GetTranslateInfo() | 263 translate_info = self.GetTranslateInfo() |
| 264 self.assertTrue('translate_bar' in translate_info) | 264 self.assertTrue('translate_bar' in translate_info) |
| 265 self.NavigateToURL(no_trans_url) | 265 self.NavigateToURL(no_trans_url) |
| 266 self.assertTrue(self.WaitForInfobarCount(0)) | 266 self.assertTrue(self.WaitForInfobarCount(0)) |
| 267 self.assertFalse('translate_bar' in self.GetTranslateInfo()) | 267 self.assertFalse('translate_bar' in self.GetTranslateInfo()) |
| 268 # Go back to the page that should be translated and assert that the | 268 # Go back to the page that should be translated and assert that the |
| 269 # translate bar re-appears. | 269 # translate bar re-appears. |
| 270 self.GetBrowserWindow(0).GetTab(0).GoBack() | 270 self.TabGoBack() |
| 271 self.assertTrue(self.WaitForInfobarCount(1)) | 271 self.assertTrue(self.WaitForInfobarCount(1)) |
| 272 self.assertTrue('translate_bar' in self.GetTranslateInfo()) | 272 self.assertTrue('translate_bar' in self.GetTranslateInfo()) |
| 273 | 273 |
| 274 # Now test going forward. | 274 # Now test going forward. |
| 275 self.NavigateToURL(no_trans_url) | 275 self.NavigateToURL(no_trans_url) |
| 276 translate_info = self.GetTranslateInfo() | 276 translate_info = self.GetTranslateInfo() |
| 277 self.assertFalse('translate_bar' in translate_info) | 277 self.assertFalse('translate_bar' in translate_info) |
| 278 self._AssertTranslateWorks(trans_url, self.spanish) | 278 self._AssertTranslateWorks(trans_url, self.spanish) |
| 279 self.GetBrowserWindow(0).GetTab(0).GoBack() | 279 self.TabGoBack() |
| 280 self.assertTrue(self.WaitForInfobarCount(0)) | 280 self.assertTrue(self.WaitForInfobarCount(0)) |
| 281 translate_info = self.GetTranslateInfo() | 281 translate_info = self.GetTranslateInfo() |
| 282 self.assertFalse('translate_bar' in translate_info) | 282 self.assertFalse('translate_bar' in translate_info) |
| 283 self.GetBrowserWindow(0).GetTab(0).GoForward() | 283 self.TabGoForward() |
| 284 self.assertTrue(self.WaitForInfobarCount(1)) | 284 self.assertTrue(self.WaitForInfobarCount(1)) |
| 285 translate_info = self.GetTranslateInfo() | 285 translate_info = self.GetTranslateInfo() |
| 286 self.assertTrue(translate_info['can_translate_page']) | 286 self.assertTrue(translate_info['can_translate_page']) |
| 287 self.assertTrue('translate_bar' in translate_info) | 287 self.assertTrue('translate_bar' in translate_info) |
| 288 | 288 |
| 289 def testForCrashedTab(self): | 289 def testForCrashedTab(self): |
| 290 """Tests that translate bar is dimissed if the renderer crashes.""" | 290 """Tests that translate bar is dimissed if the renderer crashes.""" |
| 291 crash_url = 'about:crash' | 291 crash_url = 'about:crash' |
| 292 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) | 292 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 293 translate_info = self.GetTranslateInfo() | 293 translate_info = self.GetTranslateInfo() |
| (...skipping 18 matching lines...) Expand all Loading... |
| 312 | 312 |
| 313 def testAlwaysTranslateLanguageButton(self): | 313 def testAlwaysTranslateLanguageButton(self): |
| 314 """Test the always translate language button.""" | 314 """Test the always translate language button.""" |
| 315 spanish_url = self._GetDefaultSpanishURL() | 315 spanish_url = self._GetDefaultSpanishURL() |
| 316 self._NavigateAndWaitForBar(spanish_url) | 316 self._NavigateAndWaitForBar(spanish_url) |
| 317 | 317 |
| 318 # The 'Always Translate' button doesn't show up until the user has clicked | 318 # The 'Always Translate' button doesn't show up until the user has clicked |
| 319 # 'Translate' for a language 3 times. | 319 # 'Translate' for a language 3 times. |
| 320 for unused in range(3): | 320 for unused in range(3): |
| 321 self._ClickTranslateUntilSuccess() | 321 self._ClickTranslateUntilSuccess() |
| 322 self.GetBrowserWindow(0).GetTab(0).Reload() | 322 self.ReloadTab() |
| 323 | 323 |
| 324 # Click the 'Always Translate' button. | 324 # Click the 'Always Translate' button. |
| 325 self.assertTrue(self.GetTranslateInfo()\ | 325 self.assertTrue(self.GetTranslateInfo()\ |
| 326 ['translate_bar']['always_translate_lang_button_showing']) | 326 ['translate_bar']['always_translate_lang_button_showing']) |
| 327 self.SelectTranslateOption('click_always_translate_lang_button') | 327 self.SelectTranslateOption('click_always_translate_lang_button') |
| 328 # Navigate to another Spanish page and verify it was translated. | 328 # Navigate to another Spanish page and verify it was translated. |
| 329 self._NavigateAndWaitForBar('http://www.google.com/webhp?hl=es') | 329 self._NavigateAndWaitForBar('http://www.google.com/webhp?hl=es') |
| 330 self.WaitUntilTranslateComplete() | 330 self.WaitUntilTranslateComplete() |
| 331 # Assert that a translation was attempted. We don't care if it was error | 331 # Assert that a translation was attempted. We don't care if it was error |
| 332 # or success. | 332 # or success. |
| 333 self.assertNotEqual(self.before_translate, | 333 self.assertNotEqual(self.before_translate, |
| 334 self.GetTranslateInfo()['translate_bar']['bar_state']) | 334 self.GetTranslateInfo()['translate_bar']['bar_state']) |
| 335 | 335 |
| 336 def testNeverTranslateLanguageButton(self): | 336 def testNeverTranslateLanguageButton(self): |
| 337 """Test the never translate language button.""" | 337 """Test the never translate language button.""" |
| 338 spanish_url = self._GetDefaultSpanishURL() | 338 spanish_url = self._GetDefaultSpanishURL() |
| 339 self._NavigateAndWaitForBar(spanish_url) | 339 self._NavigateAndWaitForBar(spanish_url) |
| 340 | 340 |
| 341 # The 'Never Translate' button doesn't show up until the user has clicked | 341 # The 'Never Translate' button doesn't show up until the user has clicked |
| 342 # 'Nope' for a language 3 times. | 342 # 'Nope' for a language 3 times. |
| 343 for unused in range(3): | 343 for unused in range(3): |
| 344 self.SelectTranslateOption('decline_translation') | 344 self.SelectTranslateOption('decline_translation') |
| 345 self.GetBrowserWindow(0).GetTab(0).Reload() | 345 self.ReloadTab() |
| 346 | 346 |
| 347 # Click the 'Never Translate' button. | 347 # Click the 'Never Translate' button. |
| 348 self.assertTrue(self.GetTranslateInfo()\ | 348 self.assertTrue(self.GetTranslateInfo()\ |
| 349 ['translate_bar']['never_translate_lang_button_showing']) | 349 ['translate_bar']['never_translate_lang_button_showing']) |
| 350 self.SelectTranslateOption('click_never_translate_lang_button') | 350 self.SelectTranslateOption('click_never_translate_lang_button') |
| 351 # Navigate to another Spanish page and verify the page can't be translated. | 351 # Navigate to another Spanish page and verify the page can't be translated. |
| 352 # First navigate to a French page, wait for bar, navigate to Spanish page | 352 # First navigate to a French page, wait for bar, navigate to Spanish page |
| 353 # and wait for bar to go away. | 353 # and wait for bar to go away. |
| 354 self._NavigateAndWaitForBar('http://www.google.com/webhp?hl=fr') | 354 self._NavigateAndWaitForBar('http://www.google.com/webhp?hl=fr') |
| 355 self.NavigateToURL('http://www.google.com/webhp?hl=es') | 355 self.NavigateToURL('http://www.google.com/webhp?hl=es') |
| 356 self.assertTrue(self.WaitForInfobarCount(0)) | 356 self.assertTrue(self.WaitForInfobarCount(0)) |
| 357 self.assertFalse(self.GetTranslateInfo()['can_translate_page']) | 357 self.assertFalse(self.GetTranslateInfo()['can_translate_page']) |
| 358 | 358 |
| 359 def testChangeTargetLanguageAlwaysTranslate(self): | 359 def testChangeTargetLanguageAlwaysTranslate(self): |
| 360 """Tests that the change target language option works with always translate | 360 """Tests that the change target language option works with always translate |
| 361 on reload. | 361 on reload. |
| 362 | 362 |
| 363 This test is motivated by crbug.com/37313. | 363 This test is motivated by crbug.com/37313. |
| 364 """ | 364 """ |
| 365 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) | 365 self._NavigateAndWaitForBar(self._GetDefaultSpanishURL()) |
| 366 self._ClickTranslateUntilSuccess() | 366 self._ClickTranslateUntilSuccess() |
| 367 # Select a different target language on translate info bar (French). | 367 # Select a different target language on translate info bar (French). |
| 368 self.ChangeTranslateToLanguage('French') | 368 self.ChangeTranslateToLanguage('French') |
| 369 translate_info = self.GetTranslateInfo() | 369 translate_info = self.GetTranslateInfo() |
| 370 self.assertTrue('translate_bar' in translate_info) | 370 self.assertTrue('translate_bar' in translate_info) |
| 371 self.assertEqual('fr', translate_info['translate_bar']['target_lang_code']) | 371 self.assertEqual('fr', translate_info['translate_bar']['target_lang_code']) |
| 372 # Select always translate Spanish to French. | 372 # Select always translate Spanish to French. |
| 373 self.SelectTranslateOption('toggle_always_translate') | 373 self.SelectTranslateOption('toggle_always_translate') |
| 374 # Reload the page and assert that the page has been translated to French. | 374 # Reload the page and assert that the page has been translated to French. |
| 375 self.GetBrowserWindow(0).GetTab(0).Reload() | 375 self.ReloadTab() |
| 376 self.WaitUntilTranslateComplete() | 376 self.WaitUntilTranslateComplete() |
| 377 translate_info = self.GetTranslateInfo() | 377 translate_info = self.GetTranslateInfo() |
| 378 self.assertTrue(translate_info['page_translated']) | 378 self.assertTrue(translate_info['page_translated']) |
| 379 self.assertTrue(translate_info['can_translate_page']) | 379 self.assertTrue(translate_info['can_translate_page']) |
| 380 self.assertTrue('translate_bar' in translate_info) | 380 self.assertTrue('translate_bar' in translate_info) |
| 381 self.assertEqual('fr', translate_info['translate_bar']['target_lang_code']) | 381 self.assertEqual('fr', translate_info['translate_bar']['target_lang_code']) |
| 382 | 382 |
| 383 def testSeveralLanguages(self): | 383 def testSeveralLanguages(self): |
| 384 """Verify translation for several languages. | 384 """Verify translation for several languages. |
| 385 | 385 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 def testNoTranslateInfobarAfterNeverTranslate(self): | 511 def testNoTranslateInfobarAfterNeverTranslate(self): |
| 512 """Verify Translate Info bar should not stay on the page after opting | 512 """Verify Translate Info bar should not stay on the page after opting |
| 513 Never translate the page""" | 513 Never translate the page""" |
| 514 url = self._GetDefaultSpanishURL() | 514 url = self._GetDefaultSpanishURL() |
| 515 self._NavigateAndWaitForBar(url) | 515 self._NavigateAndWaitForBar(url) |
| 516 self.SelectTranslateOption('never_translate_language') | 516 self.SelectTranslateOption('never_translate_language') |
| 517 self.assertFalse(self.GetBrowserInfo()['windows'][0]['tabs'][0]['infobars']) | 517 self.assertFalse(self.GetBrowserInfo()['windows'][0]['tabs'][0]['infobars']) |
| 518 | 518 |
| 519 if __name__ == '__main__': | 519 if __name__ == '__main__': |
| 520 pyauto_functional.Main() | 520 pyauto_functional.Main() |
| OLD | NEW |