Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(615)

Side by Side Diff: components/test/data/password_manager/automated_tests/tests.py

Issue 1089383002: [Password manager tests automation] Refactor test_runner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@base
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/test/data/password_manager/automated_tests/run_tests.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 9
10 from environment import Environment 10 from environment import Environment
11 from websitetest import WebsiteTest 11 from websitetest import WebsiteTest
12 12
13 13
14 TEST_CASES = ("PromptFailTest", "PromptSuccessTest", "SaveAndAutofillTest")
15
16
14 class Alexa(WebsiteTest): 17 class Alexa(WebsiteTest):
15 18
16 def Login(self): 19 def Login(self):
17 self.GoTo("https://www.alexa.com/secure/login") 20 self.GoTo("https://www.alexa.com/secure/login")
18 self.FillUsernameInto("#email") 21 self.FillUsernameInto("#email")
19 self.FillPasswordInto("#pwd") 22 self.FillPasswordInto("#pwd")
20 self.Submit("#pwd") 23 self.Submit("#pwd")
21 24
22 25
23 class Dropbox(WebsiteTest): 26 class Dropbox(WebsiteTest):
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 xml = "<result>" 500 xml = "<result>"
498 for (name, test_type, success, failure_log) in environment_tests_results: 501 for (name, test_type, success, failure_log) in environment_tests_results:
499 if not (save_only_failures and success): 502 if not (save_only_failures and success):
500 xml += ( 503 xml += (
501 "<test name='{0}' successful='{1}' type='{2}'>{3}</test>".format( 504 "<test name='{0}' successful='{1}' type='{2}'>{3}</test>".format(
502 name, success, test_type, failure_log)) 505 name, success, test_type, failure_log))
503 xml += "</result>" 506 xml += "</result>"
504 with open(environment_save_path, "w") as save_file: 507 with open(environment_save_path, "w") as save_file:
505 save_file.write(xml) 508 save_file.write(xml)
506 509
510
507 def RunTest(chrome_path, chromedriver_path, profile_path, 511 def RunTest(chrome_path, chromedriver_path, profile_path,
508 environment_passwords_path, website_test_name, test_case_name): 512 environment_passwords_path, website_test_name,
513 test_case_name):
509 """Runs the test for the specified website. 514 """Runs the test for the specified website.
510 515
511 Args: 516 Args:
512 chrome_path: The chrome binary file. 517 chrome_path: The chrome binary file.
513 chromedriver_path: The chromedriver binary file. 518 chromedriver_path: The chromedriver binary file.
514 profile_path: The chrome testing profile folder. 519 profile_path: The chrome testing profile folder.
515 environment_passwords_path: The usernames and passwords file. 520 environment_passwords_path: The usernames and passwords file.
516 website_test_name: Name of the website to test (refer to keys in 521 website_test_name: Name of the website to test (refer to keys in
517 all_tests above). 522 all_tests above).
518 523
519 Returns: 524 Returns:
520 The results of the test as list of TestResults. 525 The results of the test as list of TestResults.
521 526
522 Raises: 527 Raises:
523 Exception: An exception is raised if one of the tests for the website 528 Exception: An exception is raised if one of the tests for the website
524 fails, or if the website name is not known. 529 fails, or if the website name is not known.
525 """ 530 """
526 531
527 enable_automatic_password_saving = (test_case_name == "SaveAndAutofillTest") 532 enable_automatic_password_saving = (test_case_name == "SaveAndAutofillTest")
528 environment = Environment(chrome_path, chromedriver_path, profile_path, 533 environment = Environment(chrome_path, chromedriver_path, profile_path,
529 environment_passwords_path, 534 environment_passwords_path,
530 enable_automatic_password_saving) 535 enable_automatic_password_saving)
536 try:
537 if website_test_name in all_tests:
538 environment.AddWebsiteTest(all_tests[website_test_name])
539 else:
540 raise Exception("Test name {} is unknown.".format(website_test_name))
531 541
532 if website_test_name in all_tests: 542 environment.RunTestsOnSites(test_case_name)
533 environment.AddWebsiteTest(all_tests[website_test_name]) 543 return environment.tests_results
534 else: 544 finally:
535 raise Exception("Test name {} is unknown.".format(website_test_name)) 545 environment.Quit()
536
537 environment.RunTestsOnSites(test_case_name)
538 environment.Quit()
539 return environment.tests_results
540 546
541 def main(): 547 def main():
542 parser = argparse.ArgumentParser( 548 parser = argparse.ArgumentParser(
543 description="Password Manager automated tests help.") 549 description="Password Manager automated tests help.")
544 550
545 parser.add_argument( 551 parser.add_argument(
546 "--chrome-path", action="store", dest="chrome_path", 552 "--chrome-path", action="store", dest="chrome_path",
547 help="Set the chrome path (required).", required=True) 553 help="Set the chrome path (required).", required=True)
548 parser.add_argument( 554 parser.add_argument(
549 "--chromedriver-path", action="store", dest="chromedriver_path", 555 "--chromedriver-path", action="store", dest="chromedriver_path",
(...skipping 18 matching lines...) Expand all
568 parser.add_argument("--test-cases-to-run", help="Names of test cases which" 574 parser.add_argument("--test-cases-to-run", help="Names of test cases which"
569 "should be run. Currently supported test cases are:" 575 "should be run. Currently supported test cases are:"
570 "PromptFailTest, PromptSuccessTest, SaveAndAutofillTest", 576 "PromptFailTest, PromptSuccessTest, SaveAndAutofillTest",
571 dest="test_cases_to_run", action="store", nargs="*") 577 dest="test_cases_to_run", action="store", nargs="*")
572 args = parser.parse_args() 578 args = parser.parse_args()
573 579
574 save_path = None 580 save_path = None
575 if args.save_path: 581 if args.save_path:
576 save_path = args.save_path 582 save_path = args.save_path
577 583
578 test_cases_to_run = args.test_cases_to_run or\ 584 test_cases_to_run = args.test_cases_to_run or TEST_CASES
579 ("PromptFailTest", "PromptSuccessTest", "SaveAndAutofillTest")
580
581 for test_case in test_cases_to_run: 585 for test_case in test_cases_to_run:
582 tests_results = RunTest( 586 tests_results = RunTest(
583 args.chrome_path, args.chromedriver_path, args.profile_path, 587 args.chrome_path, args.chromedriver_path, args.profile_path,
584 args.passwords_path, args.website, test_case) 588 args.passwords_path, args.website, test_case)
585 589
586 590
587 SaveResults(tests_results, save_path, 591 SaveResults(tests_results, save_path,
588 save_only_failures=args.save_only_failures) 592 save_only_failures=args.save_only_failures)
589 593
590 if __name__ == "__main__": 594 if __name__ == "__main__":
591 main() 595 main()
OLDNEW
« no previous file with comments | « components/test/data/password_manager/automated_tests/run_tests.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698