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

Side by Side Diff: components/test/data/password_manager/environment.py

Issue 561203002: Change the way how the saved passwords are cleaned in the password manager python tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 | « no previous file | components/test/data/password_manager/websitetest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 """The testing Environment class.""" 5 """The testing Environment class."""
6 6
7 import logging 7 import logging
8 import shutil 8 import shutil
9 import sys 9 import sys
10 import time 10 import time
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 self.passwords_tree.find( 158 self.passwords_tree.find(
159 ".//*[@name='%s']/password" % websitetest.name)) 159 ".//*[@name='%s']/password" % websitetest.name))
160 if password_tag.text: 160 if password_tag.text:
161 websitetest.password = password_tag.text 161 websitetest.password = password_tag.text
162 self.websitetests.append(websitetest) 162 self.websitetests.append(websitetest)
163 if disabled: 163 if disabled:
164 self.disabled_tests.append(websitetest.name) 164 self.disabled_tests.append(websitetest.name)
165 else: 165 else:
166 self.working_tests.append(websitetest.name) 166 self.working_tests.append(websitetest.name)
167 167
168 def RemoveAllPasswords(self): 168 def ClearCache(self, clear_passwords):
169 """Removes all the stored passwords.""" 169 """Clear the browser cookies. If |clear_passwords| is true, clear all the
170 logging.info("\nRemoveAllPasswords\n") 170 saved passwords too.
171 self.driver.get("chrome://settings/passwords")
172 self.driver.switch_to_frame("settings")
173 while True:
174 try:
175 self.driver.execute_script(
176 "document.querySelector('#saved-passwords-list .row-delete-button')"
177 ".click()")
178 time.sleep(1)
179 except NoSuchElementException:
180 break
181 except WebDriverException:
182 break
183 171
184 def ClearAllCookies(self): 172 Args:
185 """Removes all the cookies.""" 173 clear_passwords : Clear all the passwords if the bool value is true.
186 logging.info("\nClearAllCookies\n") 174 """
175 logging.info("\nClearCache\n")
187 self.driver.get("chrome://settings/clearBrowserData") 176 self.driver.get("chrome://settings/clearBrowserData")
188 self.driver.switch_to_frame("settings") 177 self.driver.switch_to_frame("settings")
189 self.driver.execute_script( 178 script = (
190 "var checkboxes = document.querySelectorAll(" 179 "if (!document.querySelector('#delete-cookies-checkbox').checked)"
191 " '#clear-data-checkboxes [type=\\\'checkbox\\\']');" 180 " document.querySelector('#delete-cookies-checkbox').click();"
192 "for (var i in checkboxes)" 181 )
193 " checkboxes[i].checked = false;" 182 negation = ""
194 "document.querySelector('#delete-cookies-checkbox').checked = true;" 183 if clear_passwords:
195 "document.querySelector('#clear-browser-data-commit').click();") 184 negation = "!"
185 script += (
186 "if (%sdocument.querySelector('#delete-passwords-checkbox').checked)"
187 " document.querySelector('#delete-passwords-checkbox').click();"
188 % negation)
189 script += "document.querySelector('#clear-browser-data-commit').click();"
190 self.driver.execute_script(script)
196 time.sleep(2) 191 time.sleep(2)
197 192
198 def OpenTabAndGoToInternals(self, url): 193 def OpenTabAndGoToInternals(self, url):
199 """If there is no |self.website_window|, opens a new tab and navigates to 194 """If there is no |self.website_window|, opens a new tab and navigates to
200 |url| in the new tab. Navigates to the passwords internals page in the 195 |url| in the new tab. Navigates to the passwords internals page in the
201 first tab. Raises an exception otherwise. 196 first tab. Raises an exception otherwise.
202 197
203 Args: 198 Args:
204 url: Url to go to in the new tab. 199 url: Url to go to in the new tab.
205 200
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 352
358 def TestList(self, websitetests): 353 def TestList(self, websitetests):
359 """Runs the tests on the websites in |websitetests|. 354 """Runs the tests on the websites in |websitetests|.
360 355
361 Args: 356 Args:
362 websitetests: A list of WebsiteTests that are going to be tested. 357 websitetests: A list of WebsiteTests that are going to be tested.
363 358
364 Raises: 359 Raises:
365 Exception: An exception is raised if the tests fail. 360 Exception: An exception is raised if the tests fail.
366 """ 361 """
367 self.RemoveAllPasswords() 362 self.ClearCache(True)
368 363
369 for websitetest in websitetests: 364 for websitetest in websitetests:
370 successful = True 365 successful = True
371 error = "" 366 error = ""
372 try: 367 try:
373 websitetest.was_run = True 368 websitetest.was_run = True
374 websitetest.WrongLoginTest() 369 websitetest.WrongLoginTest()
375 websitetest.SuccessfulLoginTest() 370 websitetest.SuccessfulLoginTest()
371 self.ClearCache(False)
376 websitetest.SuccessfulLoginWithAutofilledPasswordTest() 372 websitetest.SuccessfulLoginWithAutofilledPasswordTest()
377 self.RemoveAllPasswords() 373 self.ClearCache(True)
378 websitetest.SuccessfulLoginTest() 374 websitetest.SuccessfulLoginTest()
375 self.ClearCache(True)
379 except Exception: 376 except Exception:
380 successful = False 377 successful = False
381 error = traceback.format_exc() 378 error = traceback.format_exc()
382 self.tests_results.append(TestResult(websitetest.name, "normal", 379 self.tests_results.append(TestResult(websitetest.name, "normal",
383 successful, escape(error))) 380 successful, escape(error)))
384 381
382
385 def PromptTestList(self, websitetests): 383 def PromptTestList(self, websitetests):
386 """Runs the prompt tests on the websites in |websitetests|. 384 """Runs the prompt tests on the websites in |websitetests|.
387 385
388 Args: 386 Args:
389 websitetests: A list of WebsiteTests that are going to be tested. 387 websitetests: A list of WebsiteTests that are going to be tested.
390 388
391 Raises: 389 Raises:
392 Exception: An exception is raised if the tests fail. 390 Exception: An exception is raised if the tests fail.
393 """ 391 """
394 self.RemoveAllPasswords() 392 self.ClearCache(True)
395 393
396 for websitetest in websitetests: 394 for websitetest in websitetests:
397 successful = True 395 successful = True
398 error = "" 396 error = ""
399 try: 397 try:
400 websitetest.was_run = True 398 websitetest.was_run = True
401 websitetest.PromptTest() 399 websitetest.PromptTest()
402 except Exception: 400 except Exception:
403 successful = False 401 successful = False
404 error = traceback.format_exc() 402 error = traceback.format_exc()
405 self.tests_results.append(TestResult(websitetest.name, "prompt", 403 self.tests_results.append(TestResult(websitetest.name, "prompt",
406 successful, escape(error))) 404 successful, escape(error)))
407 405
408 def Quit(self): 406 def Quit(self):
409 """Closes the tests.""" 407 """Closes the tests."""
410 # Close the webdriver. 408 # Close the webdriver.
411 self.driver.quit() 409 self.driver.quit()
OLDNEW
« no previous file with comments | « no previous file | components/test/data/password_manager/websitetest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698