| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """WebsiteTest testing class.""" | 5 """WebsiteTest testing class.""" |
| 6 | 6 |
| 7 import logging | 7 import logging |
| 8 import time | 8 import time |
| 9 | 9 |
| 10 from selenium.webdriver.common.action_chains import ActionChains | 10 from selenium.webdriver.common.action_chains import ActionChains |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 """ | 23 """ |
| 24 | 24 |
| 25 # Possible values of self.autofill_expectation. | 25 # Possible values of self.autofill_expectation. |
| 26 AUTOFILLED = 1 # Expect password and username to be autofilled. | 26 AUTOFILLED = 1 # Expect password and username to be autofilled. |
| 27 NOT_AUTOFILLED = 2 # Expect password and username not to be autofilled. | 27 NOT_AUTOFILLED = 2 # Expect password and username not to be autofilled. |
| 28 | 28 |
| 29 # The maximal accumulated time to spend in waiting for website UI | 29 # The maximal accumulated time to spend in waiting for website UI |
| 30 # interaction. | 30 # interaction. |
| 31 MAX_WAIT_TIME_IN_SECONDS = 200 | 31 MAX_WAIT_TIME_IN_SECONDS = 200 |
| 32 | 32 |
| 33 # Types of test to be passed to self.RunTest(). | |
| 34 TEST_TYPE_PROMPT_FAIL = 1 | |
| 35 TEST_TYPE_PROMPT_SUCCESS = 2 | |
| 36 TEST_TYPE_SAVE_AND_AUTOFILL = 3 | |
| 37 | |
| 38 def __init__(self, name, username_not_auto=False): | 33 def __init__(self, name, username_not_auto=False): |
| 39 """Creates a new WebsiteTest. | 34 """Creates a new WebsiteTest. |
| 40 | 35 |
| 41 Args: | 36 Args: |
| 42 name: The website name, identifying it in the test results. | 37 name: The website name, identifying it in the test results. |
| 43 username_not_auto: Expect that the tested website fills username field | 38 username_not_auto: Expect that the tested website fills username field |
| 44 on load, and Chrome cannot autofill in that case. | 39 on load, and Chrome cannot autofill in that case. |
| 45 """ | 40 """ |
| 46 self.name = name | 41 self.name = name |
| 47 self.username = None | 42 self.username = None |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 [environment.MESSAGE_SAVE], | 356 [environment.MESSAGE_SAVE], |
| 362 True, | 357 True, |
| 363 "Error: did not detect login success on website: %s" % self.name) | 358 "Error: did not detect login success on website: %s" % self.name) |
| 364 self.Logout() | 359 self.Logout() |
| 365 self.LoginWhenAutofilled() | 360 self.LoginWhenAutofilled() |
| 366 self.environment.CheckForNewString( | 361 self.environment.CheckForNewString( |
| 367 [environment.MESSAGE_SAVE], | 362 [environment.MESSAGE_SAVE], |
| 368 True, | 363 True, |
| 369 "Error: failed autofilled login on website: %s" % self.name) | 364 "Error: failed autofilled login on website: %s" % self.name) |
| 370 | 365 |
| 371 def RunTest(self, test_type): | |
| 372 """Runs test according to the |test_type|. | |
| 373 | |
| 374 Raises: | |
| 375 Exception: If |test_type| is not one of the TEST_TYPE_* constants. | |
| 376 """ | |
| 377 | |
| 378 if test_type == WebsiteTest.TEST_TYPE_PROMPT_FAIL: | |
| 379 self.PromptFailTest() | |
| 380 elif test_type == WebsiteTest.TEST_TYPE_PROMPT_SUCCESS: | |
| 381 self.PromptSuccessTest() | |
| 382 elif test_type == WebsiteTest.TEST_TYPE_SAVE_AND_AUTOFILL: | |
| 383 self.SaveAndAutofillTest() | |
| 384 else: | |
| 385 raise Exception("Unknown test type {}.".format(test_type)) | |
| OLD | NEW |