| Index: tests/README.md | 
| diff --git a/tests/README.md b/tests/README.md | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..a24e302dc3fcc81461951d22aa9e6ee7c0db26b7 | 
| --- /dev/null | 
| +++ b/tests/README.md | 
| @@ -0,0 +1,73 @@ | 
| +# Buildtools unit tests | 
| + | 
| +## Introduction | 
| + | 
| +Unit tests for buildtools, using the pytest framework. | 
| + | 
| +## Approach | 
| + | 
| +In order to test the buildtools capability of creating WebExtension-packages | 
| +for Chrome, Edge and Firefox, an example configuration for each platform is | 
| +provided. | 
| +Running the tests calls the same API as the cli would, except for releases | 
| +(we don't want to trigger our releaseAutomation during tests) - in this case, | 
| +a build is manually created and verified) | 
| + | 
| +Each extension is build with different parameters, the resulting package and | 
| +it's content is compared against provided expected results: | 
| + | 
| +- Release or build-only, with or without a specific build-number (Edge) | 
| +- Release, build-only or developement environment, with or without a specifc | 
| +  build-number (Chrome, Firefox), with or without a predefined signing key | 
| +  (Chrome) | 
| + | 
| +The expected results for each manifest are provided with the files in | 
| +`expecteddata/`. | 
| + | 
| +## Test cases | 
| + | 
| +_(covered platforms are referred to as C=Chrome, E=Edge, F=Firefox)_ | 
| + | 
| +- Metadata inheritance (EF) | 
| +- correct package filename (CEF) | 
| +- Printed warning about non-square icons (CF) | 
| +- Presence of javascript unit test files in developement environment (CF) | 
| +- Absence of javascript unit test files in build-only or release (CF) | 
| +- Inlcusion of defined contentScripts into the manifest (CF) | 
| +- Packaging (and moving) of included icons / scripts / htmls (CEF) | 
| +- Presence of files for all configured locales (CEF) | 
| +- Correct import of translations with or without placeholders, with or without | 
| +  access keys (CF) | 
| +- Translation presence and validity for the Chrome Web Store (C) | 
| +- Packaging of modularized script files (CF) | 
| +- Adherence to provided build-number in the manifest (CEF) | 
| +- Other content in the manifest (CEF) | 
| +- Correct encrypted signature of the package (C) | 
| + | 
| +## Requirements | 
| + | 
| +- [Tox](https://pypi.python.org/pypi/tox) (>= 2.7.0) | 
| + | 
| +_(Tox will take care of installing the other dependencies such as flake8 and | 
| +flake8-abp inside a virtualenv.)_ | 
| + | 
| +## Usage | 
| + | 
| +To run the tests simply run | 
| + | 
| +``` | 
| +$ tox | 
| +``` | 
| + | 
| +in the buildtools' root folder. | 
| + | 
| +## Coverage | 
| + | 
| +Pytest will create a coverage report as output to the terminal, using the | 
| +pytest plugin `pytest-cov`. | 
| + | 
| +In order to get an html report you can add `--cov-report=html` to the | 
| +pytest-command in tox.ini. | 
| + | 
| +For more information please refer to the | 
| +[coverage documentation](https://coverage.readthedocs.io/) | 
|  |