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. |