| Index: components/test/data/password_manager/automated_tests/tests.py
|
| diff --git a/components/test/data/password_manager/automated_tests/tests.py b/components/test/data/password_manager/automated_tests/tests.py
|
| index a37114f960919595e34a40b55454516ef7e6e82b..c1da46db6457f0f3dc0514eb79fe48f40fc1b7f6 100644
|
| --- a/components/test/data/password_manager/automated_tests/tests.py
|
| +++ b/components/test/data/password_manager/automated_tests/tests.py
|
| @@ -6,23 +6,11 @@
|
| """Automated tests for many websites"""
|
|
|
| import argparse
|
| -import logging
|
|
|
| from environment import Environment
|
| from websitetest import WebsiteTest
|
|
|
|
|
| -class TypeOfTestedWebsites:
|
| - """An enum to specify which groups of tests to run."""
|
| - # Runs all the tests.
|
| - ALL_TESTS = 0
|
| - # Runs a specified list of tests.
|
| - LIST_OF_TESTS = 1
|
| -
|
| - def __init__(self):
|
| - pass
|
| -
|
| -
|
| class Alexa(WebsiteTest):
|
|
|
| def Login(self):
|
| @@ -445,53 +433,46 @@ class Ziddu(WebsiteTest):
|
| self.Click(".login input")
|
|
|
|
|
| -def Tests(environment, tests_to_run=None):
|
| -
|
| - all_tests = {
|
| - "163": One63("163"), # http://crbug.com/368690
|
| - "adobe": Adobe("adobe"), # Password saving not offered.
|
| - "alexa": Alexa("alexa"),
|
| - "aliexpress": Aliexpress("aliexpress"), # Fails due to test framework issue.
|
| - "amazon": Amazon("amazon"), # Bug not reproducible without test.
|
| - "ask": Ask("ask"), # Password not saved.
|
| - "baidu": Baidu("baidu"), # Password not saved.
|
| - "cnn": Cnn("cnn"), # http://crbug.com/368690
|
| - "craigslist": Craigslist("craigslist"), # Too many failed logins per time.
|
| - "dailymotion": Dailymotion("dailymotion"), # Crashes.
|
| - "dropbox": Dropbox("dropbox"),
|
| - "ebay": Ebay("ebay"), # http://crbug.com/368690
|
| - "espn": Espn("espn"), # Iframe, password saved but not autofilled.
|
| - "facebook": Facebook("facebook"),
|
| - "flipkart": Flipkart("flipkart"), # Fails due to test framework issue.
|
| - "github": Github("github"),
|
| - "google": Google("google"),
|
| - "imgur": Imgur("imgur"),
|
| - "instagram": Instagram("instagram"), # Iframe, pw saved but not autofilled.
|
| - "linkedin": Linkedin("linkedin"),
|
| - "liveinternet": Liveinternet("liveinternet"),
|
| - "live": Live("live", username_not_auto=True), # http://crbug.com/367768
|
| - "mailru": Mailru("mailru"),
|
| - "nytimes": Nytimes("nytimes"),
|
| - "odnoklassniki": Odnoklassniki("odnoklassniki"),
|
| - "pinterest": Pinterest("pinterest"),
|
| - "reddit": Reddit("reddit", username_not_auto=True),
|
| - "stackexchange": StackExchange("stackexchange"), # Iframe, not autofilled.
|
| - "tumblr": Tumblr("tumblr", username_not_auto=True),
|
| - "twitter": Twitter("twitter"),
|
| - "vkontakte": Vkontakte("vkontakte"),
|
| - "vube": Vube("vube"), # http://crbug.com/368690
|
| - "wikia": Wikia("wikia"),
|
| - "wikipedia": Wikipedia("wikipedia", username_not_auto=True),
|
| - "wordpress": Wordpress("wordpress"),
|
| - "yahoo": Yahoo("yahoo", username_not_auto=True),
|
| - "yandex": Yandex("yandex"),
|
| - "ziddu": Ziddu("ziddu"), # Password not saved.
|
| - }
|
| -
|
| - tests_to_run = tests_to_run or all_tests.keys()
|
| - for test_name in tests_to_run:
|
| - if test_name in all_tests.keys():
|
| - environment.AddWebsiteTest(all_tests[test_name])
|
| +all_tests = {
|
| + "163": One63("163"), # http://crbug.com/368690
|
| + "adobe": Adobe("adobe"), # Password saving not offered.
|
| + "alexa": Alexa("alexa"),
|
| + "aliexpress": Aliexpress("aliexpress"), # Fails due to test framework issue.
|
| + "amazon": Amazon("amazon"), # Bug not reproducible without test.
|
| + "ask": Ask("ask"), # Password not saved.
|
| + "baidu": Baidu("baidu"), # Password not saved.
|
| + "cnn": Cnn("cnn"), # http://crbug.com/368690
|
| + "craigslist": Craigslist("craigslist"), # Too many failed logins per time.
|
| + "dailymotion": Dailymotion("dailymotion"), # Crashes.
|
| + "dropbox": Dropbox("dropbox"),
|
| + "ebay": Ebay("ebay"), # http://crbug.com/368690
|
| + "espn": Espn("espn"), # Iframe, password saved but not autofilled.
|
| + "facebook": Facebook("facebook"),
|
| + "flipkart": Flipkart("flipkart"), # Fails due to test framework issue.
|
| + "github": Github("github"),
|
| + "google": Google("google"),
|
| + "imgur": Imgur("imgur"),
|
| + "instagram": Instagram("instagram"), # Iframe, pw saved but not autofilled.
|
| + "linkedin": Linkedin("linkedin"),
|
| + "liveinternet": Liveinternet("liveinternet"),
|
| + "live": Live("live", username_not_auto=True), # http://crbug.com/367768
|
| + "mailru": Mailru("mailru"),
|
| + "nytimes": Nytimes("nytimes"),
|
| + "odnoklassniki": Odnoklassniki("odnoklassniki"),
|
| + "pinterest": Pinterest("pinterest"),
|
| + "reddit": Reddit("reddit", username_not_auto=True),
|
| + "stackexchange": StackExchange("stackexchange"), # Iframe, not autofilled.
|
| + "tumblr": Tumblr("tumblr", username_not_auto=True),
|
| + "twitter": Twitter("twitter"),
|
| + "vkontakte": Vkontakte("vkontakte"),
|
| + "vube": Vube("vube"), # http://crbug.com/368690
|
| + "wikia": Wikia("wikia"),
|
| + "wikipedia": Wikipedia("wikipedia", username_not_auto=True),
|
| + "wordpress": Wordpress("wordpress"),
|
| + "yahoo": Yahoo("yahoo", username_not_auto=True),
|
| + "yandex": Yandex("yandex"),
|
| + "ziddu": Ziddu("ziddu"), # Password not saved.
|
| +}
|
|
|
|
|
| def saveResults(environment_tests_results, environment_save_path):
|
| @@ -515,12 +496,10 @@ def saveResults(environment_tests_results, environment_save_path):
|
| with open(environment_save_path, "w") as save_file:
|
| save_file.write(xml)
|
|
|
| -def RunTests(chrome_path, chromedriver_path, profile_path,
|
| - environment_passwords_path, enable_automatic_password_saving,
|
| - environment_numeric_level, log_to_console, environment_log_file,
|
| - environment_tested_websites, tests=None):
|
| -
|
| - """Runs the the tests
|
| +def RunTest(chrome_path, chromedriver_path, profile_path,
|
| + environment_passwords_path, enable_automatic_password_saving,
|
| + website_test_name):
|
| + """Runs the test for the specified website.
|
|
|
| Args:
|
| chrome_path: The chrome binary file.
|
| @@ -529,42 +508,31 @@ def RunTests(chrome_path, chromedriver_path, profile_path,
|
| environment_passwords_path: The usernames and passwords file.
|
| enable_automatic_password_saving: If True, the passwords are going to be
|
| saved without showing the prompt.
|
| - environment_numeric_level: The log verbosity.
|
| - log_to_console: If True, the debug logs will be shown on the console.
|
| - environment_log_file: The file where to store the log. If it's empty, the
|
| - log is not stored.
|
| - environment_tested_websites: One of the TypeOfTestedWebsites values,
|
| - indicating which group of tests to run.
|
| - tests: Specifies which tests to run. Ignored unless
|
| - |environment_tested_websites| is equal to LIST_OF_TESTS.
|
| + website_test_name: Name of the website to test (refer to keys in
|
| + all_tests above).
|
|
|
| Returns:
|
| - The results of tests as list of TestResults.
|
| + The results of the test as list of TestResults.
|
| +
|
| Raises:
|
| - Exception: An exception is raised if one of the tests fails.
|
| + Exception: An exception is raised if one of the tests for the website
|
| + fails, or if the website name is not known.
|
| """
|
|
|
| environment = Environment(chrome_path, chromedriver_path, profile_path,
|
| environment_passwords_path,
|
| - enable_automatic_password_saving,
|
| - environment_numeric_level,
|
| - log_to_console,
|
| - environment_log_file)
|
| + enable_automatic_password_saving)
|
|
|
| # Test which care about the save-password prompt need the prompt
|
| # to be shown. Automatic password saving results in no prompt.
|
| run_prompt_tests = not enable_automatic_password_saving
|
|
|
| - Tests(environment, tests)
|
| -
|
| - if environment_tested_websites == TypeOfTestedWebsites.ALL_TESTS:
|
| - environment.AllTests(run_prompt_tests)
|
| - elif environment_tested_websites == TypeOfTestedWebsites.LIST_OF_TESTS:
|
| - environment.Test(tests, run_prompt_tests)
|
| + if website_test_name in all_tests:
|
| + environment.AddWebsiteTest(all_tests[website_test_name])
|
| else:
|
| - raise Exception("Error: |environment_tested_websites| has to be one of the"
|
| - "TypeOfTestedWebsites values")
|
| + raise Exception("Test name {} is unknown.".format(website_test_name))
|
|
|
| + environment.AllTests(run_prompt_tests)
|
|
|
| environment.Quit()
|
| return environment.tests_results
|
| @@ -576,77 +544,46 @@ if __name__ == "__main__":
|
|
|
| parser.add_argument(
|
| "--chrome-path", action="store", dest="chrome_path",
|
| - help="Set the chrome path (required).", nargs=1, required=True)
|
| + help="Set the chrome path (required).", required=True)
|
| parser.add_argument(
|
| "--chromedriver-path", action="store", dest="chromedriver_path",
|
| - help="Set the chromedriver path (required).", nargs=1, required=True)
|
| + help="Set the chromedriver path (required).", required=True)
|
| parser.add_argument(
|
| "--profile-path", action="store", dest="profile_path",
|
| help="Set the profile path (required). You just need to choose a "
|
| "temporary empty folder. If the folder is not empty all its content "
|
| "is going to be removed.",
|
| - nargs=1, required=True)
|
| + required=True)
|
|
|
| parser.add_argument(
|
| "--passwords-path", action="store", dest="passwords_path",
|
| - help="Set the usernames/passwords path (required).", nargs=1,
|
| - required=True)
|
| - parser.add_argument("--log", action="store", nargs=1, dest="log_level",
|
| - help="Set log level.")
|
| - parser.add_argument("--log-screen", action="store_true", dest="log_screen",
|
| - help="Show log on the screen.")
|
| - parser.add_argument("--log-file", action="store", dest="log_file",
|
| - help="Write the log in a file.", nargs=1)
|
| - parser.add_argument("--save-path", action="store", nargs=1, dest="save_path",
|
| + help="Set the usernames/passwords path (required).", required=True)
|
| + parser.add_argument("--save-path", action="store", dest="save_path",
|
| help="Write the results in a file.")
|
| - parser.add_argument("tests", help="Tests to be run.", nargs="*")
|
| + parser.add_argument("test", help="Test to be run.")
|
|
|
| args = parser.parse_args()
|
|
|
| - passwords_path = args.passwords_path[0]
|
| -
|
| - tested_websites = TypeOfTestedWebsites.ALL_TESTS
|
| - if args.tests:
|
| - tested_websites = TypeOfTestedWebsites.LIST_OF_TESTS
|
| -
|
| - numeric_level = None
|
| - if args.log_level:
|
| - numeric_level = getattr(logging, args.log_level[0].upper(), None)
|
| - if not isinstance(numeric_level, int):
|
| - raise ValueError("Invalid log level: %s" % args.log_level[0])
|
| -
|
| - log_file = None
|
| - if args.log_file:
|
| - log_file = args.log_file[0]
|
| -
|
| save_path = None
|
| if args.save_path:
|
| - save_path = args.save_path[0]
|
| + save_path = args.save_path
|
|
|
| # Run the test without enable-automatic-password-saving to check whether or
|
| # not the prompt is shown in the way we expected.
|
| - tests_results = RunTests(args.chrome_path[0],
|
| - args.chromedriver_path[0],
|
| - args.profile_path[0],
|
| - passwords_path,
|
| - False,
|
| - numeric_level,
|
| - args.log_screen,
|
| - log_file,
|
| - tested_websites,
|
| - args.tests)
|
| + tests_results = RunTest(args.chrome_path,
|
| + args.chromedriver_path,
|
| + args.profile_path,
|
| + args.passwords_path,
|
| + False,
|
| + args.test)
|
|
|
| # Run the test with enable-automatic-password-saving to check whether or not
|
| # the passwords is stored in the the way we expected.
|
| - tests_results += RunTests(args.chrome_path[0],
|
| - args.chromedriver_path[0],
|
| - args.profile_path[0],
|
| - passwords_path,
|
| - True,
|
| - numeric_level,
|
| - args.log_screen,
|
| - log_file,
|
| - tested_websites,
|
| - args.tests)
|
| + tests_results += RunTest(args.chrome_path,
|
| + args.chromedriver_path,
|
| + args.profile_path,
|
| + args.passwords_path,
|
| + True,
|
| + args.test)
|
|
|
| saveResults(tests_results, save_path)
|
|
|