diff options
Diffstat (limited to 'components')
-rw-r--r-- | components/test/data/password_manager/automated_tests/tests.py | 4 | ||||
-rw-r--r-- | components/test/data/password_manager/automated_tests/websitetest.py | 30 |
2 files changed, 22 insertions, 12 deletions
diff --git a/components/test/data/password_manager/automated_tests/tests.py b/components/test/data/password_manager/automated_tests/tests.py index ac5a44a..6c92c7c 100644 --- a/components/test/data/password_manager/automated_tests/tests.py +++ b/components/test/data/password_manager/automated_tests/tests.py @@ -449,7 +449,9 @@ all_tests = { "amazon": Amazon("amazon"), # Bug not reproducible without test. "ask": Ask("ask"), # Password not saved. "baidu": Baidu("baidu"), # Password not saved. - "buzzfeed": Buzzfeed("buzzfeed"), + "buzzfeed": Buzzfeed("buzzfeed", + username_not_auto=True, + password_not_auto=True), "cnn": Cnn("cnn"), # http://crbug.com/368690 "craigslist": Craigslist("craigslist"), # Too many failed logins per time. "dailymotion": Dailymotion("dailymotion"), # Crashes. diff --git a/components/test/data/password_manager/automated_tests/websitetest.py b/components/test/data/password_manager/automated_tests/websitetest.py index d8148f4..7e165a245 100644 --- a/components/test/data/password_manager/automated_tests/websitetest.py +++ b/components/test/data/password_manager/automated_tests/websitetest.py @@ -30,18 +30,21 @@ class WebsiteTest: # interaction. MAX_WAIT_TIME_IN_SECONDS = 200 - def __init__(self, name, username_not_auto=False): + def __init__(self, name, username_not_auto=False, password_not_auto=False): """Creates a new WebsiteTest. Args: name: The website name, identifying it in the test results. username_not_auto: Expect that the tested website fills username field on load, and Chrome cannot autofill in that case. + password_not_auto: Expect that the tested website fills password field + on load, and Chrome cannot autofill in that case. """ self.name = name self.username = None self.password = None self.username_not_auto = username_not_auto + self.password_not_auto = password_not_auto # Specify, whether it is expected that credentials get autofilled. self.autofill_expectation = WebsiteTest.NOT_AUTOFILLED @@ -195,7 +198,9 @@ class WebsiteTest: Depending on self.autofill_expectation, this either checks that the element already has the password autofilled, or checks that the value - is empty and replaces it with the password. + is empty and replaces it with the password. If self.password_not_auto + is true, it skips the checks and just overwrites the value with the + password. Args: selector: The CSS selector for the filled element. @@ -215,15 +220,18 @@ class WebsiteTest: action_chains.key_down(Keys.CONTROL).key_up(Keys.CONTROL).perform() self.Wait(2) # TODO(vabr): Detect when autofill finished. - if self.autofill_expectation == WebsiteTest.AUTOFILLED: - if password_element.get_attribute("value") != self.password: - raise Exception("Error: autofilled password is different from the saved" - " one on website: %s" % self.name) - elif self.autofill_expectation == WebsiteTest.NOT_AUTOFILLED: - if password_element.get_attribute("value"): - raise Exception("Error: password value unexpectedly not empty on" - "website: %s" % self.name) - password_element.send_keys(self.password) + if not self.password_not_auto: + if self.autofill_expectation == WebsiteTest.AUTOFILLED: + if password_element.get_attribute("value") != self.password: + raise Exception("Error: autofilled password is different from the" + "saved one on website: %s" % self.name) + elif self.autofill_expectation == WebsiteTest.NOT_AUTOFILLED: + if password_element.get_attribute("value"): + raise Exception("Error: password value unexpectedly not empty on" + "website: %s" % self.name) + + password_element.clear() + password_element.send_keys(self.password) def FillUsernameInto(self, selector): """Ensures that the selected element's value is the saved username. |