Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # -*- coding: utf-8 -*- | 1 # -*- coding: utf-8 -*- |
| 2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 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 """Automated tests for many websites""" | 6 """Automated tests for many websites""" |
| 7 | 7 |
| 8 import argparse | 8 import argparse |
| 9 import logging | 9 import logging |
| 10 | 10 |
| 11 from environment import Environment | 11 from environment import Environment |
| 12 from websitetest import WebsiteTest | 12 from websitetest import WebsiteTest |
| 13 | 13 |
| 14 | 14 |
| 15 class TypeOfTestedWebsites: | 15 class TypeOfTestedWebsites: |
| 16 """An enum to specify which groups of tests to run.""" | 16 """An enum to specify which groups of tests to run.""" |
| 17 # Runs only the disabled tests. | 17 # Runs only the disabled tests. |
| 18 DISABLED_TESTS = 0 | 18 DISABLED_TESTS = 0 |
|
vabr (Chromium)
2015/03/09 14:52:17
Could you please add a
# TODO(vabr): Remove this o
melandory
2015/03/09 15:00:27
Done.
| |
| 19 # Runs only the enabled tests. | 19 # Runs only the enabled tests. |
| 20 ENABLED_TESTS = 1 | 20 ENABLED_TESTS = 1 |
| 21 # Runs all the tests. | 21 # Runs all the tests. |
| 22 ALL_TESTS = 2 | 22 ALL_TESTS = 2 |
| 23 # Runs a specified list of tests. | 23 # Runs a specified list of tests. |
| 24 LIST_OF_TESTS = 3 | 24 LIST_OF_TESTS = 3 |
| 25 | 25 |
| 26 def __init__(self): | 26 def __init__(self): |
| 27 pass | 27 pass |
| 28 | 28 |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 250 self.GoTo("https://vube.com") | 250 self.GoTo("https://vube.com") |
| 251 self.Click("[vube-login='']") | 251 self.Click("[vube-login='']") |
| 252 self.FillUsernameInto("[ng-model='login.user']") | 252 self.FillUsernameInto("[ng-model='login.user']") |
| 253 self.FillPasswordInto("[ng-model='login.pass']") | 253 self.FillPasswordInto("[ng-model='login.pass']") |
| 254 while (self.IsDisplayed("[ng-model='login.pass']") | 254 while (self.IsDisplayed("[ng-model='login.pass']") |
| 255 and not self.IsDisplayed(".prompt.alert")): | 255 and not self.IsDisplayed(".prompt.alert")): |
| 256 self.ClickIfClickable("[ng-click='login()']") | 256 self.ClickIfClickable("[ng-click='login()']") |
| 257 self.Wait(1) | 257 self.Wait(1) |
| 258 | 258 |
| 259 | 259 |
| 260 def Tests(environment): | 260 def Tests(environment, tests_to_run=None): |
| 261 | 261 |
| 262 | 262 # Working tests |
|
vabr (Chromium)
2015/03/09 14:52:17
nit: The comment here and on line 278 is no longer
| |
| 263 # Working tests. | 263 working_tests = { |
| 264 | 264 "facebook": Facebook("facebook"), |
| 265 | 265 "google": Google("google"), |
| 266 environment.AddWebsiteTest(Facebook("facebook")) | 266 "linkedin": Linkedin("linkedin"), |
| 267 | 267 "mailru": Mailru("mailru"), |
| 268 environment.AddWebsiteTest(Google("google")) | 268 "nytimes": Nytimes("nytimes"), |
| 269 | 269 "pinterest": Pinterest("pinterest"), |
| 270 environment.AddWebsiteTest(Linkedin("linkedin")) | 270 "reddit": Reddit("reddit", username_not_auto=True), |
| 271 | 271 "tumblr": Tumblr("tumblr", username_not_auto=True), |
| 272 environment.AddWebsiteTest(Mailru("mailru")) | 272 "twitter": Twitter("twitter"), |
| 273 | 273 "wikipedia": Wikipedia("wikipedia", username_not_auto=True), |
| 274 environment.AddWebsiteTest(Nytimes("nytimes")) | 274 "yahoo": Yahoo("yahoo", username_not_auto=True), |
| 275 | 275 "yandex": Yandex("yandex") |
| 276 environment.AddWebsiteTest(Pinterest("pinterest")) | 276 } |
| 277 | |
| 278 environment.AddWebsiteTest(Reddit("reddit", username_not_auto=True)) | |
| 279 | |
| 280 environment.AddWebsiteTest(Tumblr("tumblr", username_not_auto=True)) | |
| 281 | |
| 282 environment.AddWebsiteTest(Twitter("twitter")) | |
| 283 | |
| 284 environment.AddWebsiteTest(Wikipedia("wikipedia", username_not_auto=True)) | |
| 285 | |
| 286 environment.AddWebsiteTest(Yahoo("yahoo", username_not_auto=True)) | |
| 287 | |
| 288 environment.AddWebsiteTest(Yandex("yandex")) | |
| 289 | 277 |
| 290 # Disabled tests. | 278 # Disabled tests. |
| 279 disabled_tests = { | |
| 280 "amazon": Amazon("amazon"), # Bug not reproducible without test. | |
| 281 "ask": Ask("ask"), # Password not saved. | |
| 282 "baidu": Baidu("baidu"), # Password not saved. | |
| 283 "cnn": Cnn("cnn"), # http://crbug.com/368690 | |
| 284 "ebay": Ebay("ebay"), # http://crbug.com/368690 | |
| 285 "espn": Espn("espn"), # Iframe, password saved but not autofileld. | |
| 286 "live": Live("live", username_not_auto=True), # http://crbug.com/367768 | |
| 287 "163": One63("163"), # http://crbug.com/368690 | |
| 288 "vube": Vube("vube"), # http://crbug.com/368690 | |
| 289 } | |
| 291 | 290 |
| 291 if tests_to_run: | |
| 292 for test in tests_to_run: | |
| 293 if (test not in working_tests.keys() and | |
| 294 test not in disabled_tests.keys()): | |
| 295 print "Skip test: test {} is not in known tests".format(test) | |
| 296 continue | |
| 297 if test in working_tests.keys(): | |
| 298 test_class = working_tests[test] | |
| 299 else: | |
| 300 test_class = disabled_tests[test] | |
| 301 environment.AddWebsiteTest(test_class) | |
| 302 else: | |
| 303 for _, test in working_tests: | |
| 304 environment.AddWebsiteTest(test) | |
| 305 for _, test in disabled_tests: | |
| 306 environment.AddWebsiteTest(test, disabled=True) | |
| 292 | 307 |
| 293 # Bug not reproducible without test. | |
| 294 environment.AddWebsiteTest(Amazon("amazon"), disabled=True) | |
| 295 | |
| 296 # Password not saved. | |
| 297 environment.AddWebsiteTest(Ask("ask"), disabled=True) | |
| 298 | |
| 299 # Password not saved. | |
| 300 environment.AddWebsiteTest(Baidu("baidu"), disabled=True) | |
| 301 | |
| 302 # http://crbug.com/368690 | |
| 303 environment.AddWebsiteTest(Cnn("cnn"), disabled=True) | |
| 304 | |
| 305 # http://crbug.com/368690 | |
| 306 environment.AddWebsiteTest(Ebay("ebay"), disabled=True) | |
| 307 | |
| 308 # Iframe, password saved but not autofileld. | |
| 309 environment.AddWebsiteTest(Espn("espn"), disabled=True) | |
| 310 | |
| 311 # http://crbug.com/367768 | |
| 312 environment.AddWebsiteTest(Live("live", username_not_auto=True), | |
| 313 disabled=True) | |
| 314 | |
| 315 # http://crbug.com/368690 | |
| 316 environment.AddWebsiteTest(One63("163"), disabled=True) | |
| 317 | |
| 318 # http://crbug.com/368690 | |
| 319 environment.AddWebsiteTest(Vube("vube"), disabled=True) | |
| 320 | 308 |
| 321 def saveResults(environment_tests_results, environment_save_path): | 309 def saveResults(environment_tests_results, environment_save_path): |
| 322 """Save the test results in an xml file. | 310 """Save the test results in an xml file. |
| 323 | 311 |
| 324 Args: | 312 Args: |
| 325 environment_tests_results: A list of the TestResults that are going to be | 313 environment_tests_results: A list of the TestResults that are going to be |
| 326 saved. | 314 saved. |
| 327 environment_save_path: The file where the results are going to be saved. | 315 environment_save_path: The file where the results are going to be saved. |
| 328 If it's None, the results are not going to be stored. | 316 If it's None, the results are not going to be stored. |
| 329 Raises: | 317 Raises: |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 372 environment_passwords_path, | 360 environment_passwords_path, |
| 373 enable_automatic_password_saving, | 361 enable_automatic_password_saving, |
| 374 environment_numeric_level, | 362 environment_numeric_level, |
| 375 log_to_console, | 363 log_to_console, |
| 376 environment_log_file) | 364 environment_log_file) |
| 377 | 365 |
| 378 # Test which care about the save-password prompt need the prompt | 366 # Test which care about the save-password prompt need the prompt |
| 379 # to be shown. Automatic password saving results in no prompt. | 367 # to be shown. Automatic password saving results in no prompt. |
| 380 run_prompt_tests = not enable_automatic_password_saving | 368 run_prompt_tests = not enable_automatic_password_saving |
| 381 | 369 |
| 382 Tests(environment) | 370 Tests(environment, tests) |
| 383 | 371 |
| 384 if environment_tested_websites == TypeOfTestedWebsites.ALL_TESTS: | 372 if environment_tested_websites == TypeOfTestedWebsites.ALL_TESTS: |
| 385 environment.AllTests(run_prompt_tests) | 373 environment.AllTests(run_prompt_tests) |
| 386 elif environment_tested_websites == TypeOfTestedWebsites.DISABLED_TESTS: | 374 elif environment_tested_websites == TypeOfTestedWebsites.DISABLED_TESTS: |
| 387 environment.DisabledTests(run_prompt_tests) | 375 environment.DisabledTests(run_prompt_tests) |
| 388 elif environment_tested_websites == TypeOfTestedWebsites.LIST_OF_TESTS: | 376 elif environment_tested_websites == TypeOfTestedWebsites.LIST_OF_TESTS: |
| 389 environment.Test(tests, run_prompt_tests) | 377 environment.Test(tests, run_prompt_tests) |
| 390 elif environment_tested_websites == TypeOfTestedWebsites.ENABLED_TESTS: | 378 elif environment_tested_websites == TypeOfTestedWebsites.ENABLED_TESTS: |
| 391 environment.WorkingTests(run_prompt_tests) | 379 environment.WorkingTests(run_prompt_tests) |
| 392 else: | 380 else: |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 480 args.profile_path[0], | 468 args.profile_path[0], |
| 481 passwords_path, | 469 passwords_path, |
| 482 True, | 470 True, |
| 483 numeric_level, | 471 numeric_level, |
| 484 args.log_screen, | 472 args.log_screen, |
| 485 log_file, | 473 log_file, |
| 486 tested_websites, | 474 tested_websites, |
| 487 args.tests) | 475 args.tests) |
| 488 | 476 |
| 489 saveResults(tests_results, save_path) | 477 saveResults(tests_results, save_path) |
| OLD | NEW |