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

Unified Diff: components/test/data/password_manager/README

Issue 743013004: Move password manager automated tests to its own subdirectory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | components/test/data/password_manager/__init__.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/test/data/password_manager/README
diff --git a/components/test/data/password_manager/README b/components/test/data/password_manager/README
deleted file mode 100644
index 91e7f987880e998a97b02307b1215ab784db0655..0000000000000000000000000000000000000000
--- a/components/test/data/password_manager/README
+++ /dev/null
@@ -1,179 +0,0 @@
-This file contains high-level info about how to use password manager tests and
-how to create new ones.
-
-The password manager tests purpose is to allow automatic password manager
-checking and avoiding to do so manually.
-The tests are written in python using selenium Webdriver library.
-
-
-=====Getting started=====
-
-Build ChromeDriver by building the 'chromedriver' target. This will
-create an executable binary in the build folder named 'chromedriver[.exe]'.
-
-Build chrome too by building the 'chrome' target. This will
-create an executable binary in the build folder named 'chrome[.exe]'.
-
-Install Selenium (the version tested was 2.41.0):
-pip install -U selenium
-
-
-For security reasons, we didn't publish the passwords and the usernames we
-used to test. So we put them to an xml file (websites.xml). The structure of
-the file is the following:
-<websites>
- <website name = "website name">
- <username>username</username>
- <password>password</password>
- </website>
-<websites>
-You can ask someone to give you the websites.xml file and put it in the same
-folder as the tests. You can also create your own websites.xml with your
-personal accounts.
-WARNING: All the content of the PROFILEPATH is going to be deleted.
-Show the help:
-python tests.py --help
-Run all the working tests tests by executing:
-python tests.py --chrome-path CHROMEPATH --chromedriver-path CHROMEDRIVERPATH
---profile-path PROFILEPATH [--passwords_path PASSWORDSPATH]
-
-Run all the tests by executing:
-python tests.py --all --chrome-path CHROMEPATH --chromedriver-path
-CHROMEDRIVERPATH --profile-path PROFILEPATH [--passwords_path PASSWORDSPATH]
-
-Run one or many tests by executing:
-python tests.py google --chrome-path CHROMEPATH --chromedriver-path
-CHROMEDRIVERPATH profile-path PROFILEPATH [--passwords_path PASSWORDSPATH]
-
-python tests.py google facebook --chrome-path CHROMEPATH --chromedriver-path
-CHROMEDRIVERPATH --profile-path PROFILEPATH [--passwords_path PASSWORDSPATH]
-
-python tests.py google facebook amazon --chrome-path CHROMEPATH
---chromedriver-path CHROMEDRIVERPATH --profile-path PROFILEPATH
-[--passwords_path PASSWORDSPATH]
-
-To display the debugging messages on the screen, use:
-python tests.py --log DEBUG|INFO|WARNING|ERROR|CRITICAL --log-screen
-To save debugging messages into a file, use:
-python tests.py --log DEBUG|INFO|WARNING|ERROR|CRITICAL --log-file LOG_FILE
-
-To save the result of the tests as an xml file, use:
-python tests.py --save-path SAVERESULTPATH
-
-=====Creating new test=====
-
-1) Open tests.py.
-
-2) Add tests like this:
-
-class NewWebsiteTest(WebsiteTest):
-
- def Login(self):
- # Add login steps for the website, for example:
- self.GoTo("http://url")
- self.FillUsernameInto("Username CSS selector")
- self.FillPasswordInto("Password CSS selector")
- self.Submit("Password CSS selector")
-
- def Logout(self):
- # Add logout steps for the website, for example:
- self.Click("Logout button CSS selector")
-
-Then, to create the new test, you need just to add:
-
-environment.AddWebsiteTest(NewWebsiteTest("website name"))
-
-* For security reasons, passwords and usernames need to be supplied in a
-separate XML file and never checked in to the repository. The XML file should
-contain data structured like this:
-
-<website name = "website name">
- <username>username</username>
- <password>password</password>
-</website>
-
-The "website name" is only used to find the username and password in the xml
-file.
-
-
-Use the flowing methods to perform the login and logout:
-The methods that you can use are:
-
-* Click: find an element using CSS Selector and click on it. Throw an
-exception if the element is not visible.
-self.Click("css_selector")
-* ClickIfClickable: find an element using CSS Selector and click on it if it's
-possible to do that.
-self.ClickIfClickable("css_selector")
-* GoTo: navigate the main frame to a url.
-self.GoTo("url")
-* HoverOver: find an element using CSS Selector and hover over it.
-self.HoverOver("css_selector")
-* SendEnterTo: find an element using CSS Selector and send enter to it.
-self.SendEnterTo("css_selector")
-
-* IsDisplayed: check if an element is displayed.
-self.IsDisplayed("css_selector")
-* Wait: wait for some amount of time in seconds.
-self.Wait(10)
-* WaitUntilDisplayed: wait for an element defined using CSS Selector to be
-displayed.
-self.WaitUntilDisplayed("css_selector")
-
-* FillPasswordInto: find an input element using CSS Selector and fill it with
-the password.
-self.FillPasswordInto("css_selector")
-* FillUsernameInto: find an input element using CSS Selector and fill it with
-the username.
-self.FillUsernameInto("css_selector")
-* Submit: find an element using CSS Selector and call its submit() handler.
-self.Submit("css_selector")
-
-
-=====Files structure=====
-
-Classes:
-* environment.py: the definition the tests Environment.
-* websitetest.py: WebsiteTest is defined here. You need to create an instance
-of this class for each website you want to test.
-
-Tests:
-* tests.py: the tests setup and the configuration for each website happens
-here. This file contain 3 separate kinds of tests:
-
-1) working tests: tests that are supposed to work. If you have a problem with
-one of them, rerun it again. Or try using the Known Issues section to fix it.
-2) tests that can cause a crash (the cause of the crash is not related to the
-password manager): This means that this set is expected to become a working
-test or failing test when the issue that causes the crash now is solved.
-3) failing tests: tests that fail for known bug related to the password
-manager. When this bug is solved, all the tests that were failing because of
-it are going to be moved to working tests.
-
-Other files:
-* websites.xml : a private file where you can find all the passwords. You can
-ask someone to give it to you or just create your own with your personal
-accounts.
-<websites>
- <website name = "website name">
- <username>username</username>
- <password>password</password>
- </website>
-</websites>
-
-
-=====Known Issues=====
-
-The tests are very fragile. Here are some suggestions for solving most of the
-problems:
-* Restart the tests.
-* Remove the profile if the tests fail at the beginning for unknown reason.
-* If tests fail, isolate the one that causes problem, read debugging messages
-and keep your eyes on the browser window to understand its causes:
-a) In the tests, we often need to wait for a menu to appear ... If the
-menu takes more time to appear than expected, the tests are going to fail.
-b) The websites change very often. And even if they are not changed, they some
-time show a popup that broke the tests. In the case you need to login manually
-to the website, close all popup and logout.
-* If you are logged in when the tests crashes, don't forget to log out before
-running the tests a second time.
« no previous file with comments | « no previous file | components/test/data/password_manager/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698