Wiktor Furman 114068c531 Strip tracking url parameters 5 years ago
..
fixtures 23d629b80b Added webdriverio integration tests 6 years ago
pages 114068c531 Strip tracking url parameters 5 years ago
README.md 7841dec5d8 more docker integration test tweaks 6 years ago
download-tests.js 114068c531 Strip tracking url parameters 5 years ago
homepage-tests.js bada0707c5 Update config for running download tests on CI 5 years ago
progress-tests.js 6ba3be8a0f updated integration tests for new ui 6 years ago
send-test.html 23d629b80b Added webdriverio integration tests 6 years ago

README.md

Integration Tests for Firefox Send.

How to run the tests locally

Clone the repository

If you have cloned this project already then you can skip this, otherwise you'll need to clone this repo using Git. If you do not know how to clone a GitHub repository, check out this help page from GitHub.

If you think you would like to contribute to the tests by writing or maintaining them in the future, it would be a good idea to create a fork of this repository first, and then clone that. GitHub also has great instructions for forking a repository.

App Setup

Please view the README at the root directory of the project.

Run the tests

Included in the docker-compose file is an image containing Firefox Nightly. tox is our test environment manager and pytest is the test runner.

To run the tests, execute the commands below:

npm run build
npm run test-integration

Adding a test

The tests are written in Python using a POM, or Page Object Model. The plugin we use for this is called pypom. Please read the documentation there for good examples on how to use the Page Object Model when writing tests.

The pytest plugin that we use for running tests has a number of advanced command line options available too. The full documentation for the plugin can be found here.

Watching a test run (within the docker container)

The tests are run on a live version of Firefox, but they are run headless. To access the container where the tests are run to view them follow these steps:

  1. Make sure all of the containers are running:

    docker-compose ps
    

    If not start them detached:

    docker-compose up -d
    
  2. Open your favorite VNC viewer and type in localhost:5900.

  3. The password is secret.

  4. The viewer should open a window with a Ubuntu logo. If that happens you are connected to the selenium-firefox image and if you start the test, you should see a Firefox window open and the tests running.

Debugging a failure

Whether a test passes or fails will result in a HTML report being created. This report will have detailed information of the test run and if a test does fail, it will provide geckodriver logs, terminal logs, as well as a screenshot of the browser when the test failed. We use a pytest plugin called pytest-html to create this report. The report can be found at coverage/send-test.html. It should be viewed within a browser.