Il s'agit d'un ensemble de scripts, de type "tests unitaires" permettant de valider le comportement d'un service web, du point de vue d'un client web.

## Installation

Au minimum il faut Ruby pour l'exécution des scripts.

Il faut également :

- OpenSSL
- Python 2
- Bash (>= 4)
- coreutils

Une fois Ruby installé, depuis le dossier du projet :

    bundle install

Ça va installer localement des paquets Ruby nécessaires.

## Exécution

### Partie "sécurité" :

    bundle exec ruby -Itest test/secrity_test.rb

Il est possible d'utiliser un certificat SSL racine stocké en local (`test/certs/_my_cert.pem`) et paramétré dans la méthode `root_certificate`.

Il est possible d'utiliser un binaire `open_ssl` personnalisé, géré dans la méthode `openssl_path`.

#### `test_certificate_level`

Permet de vérifier la conformité avec un des niveaux normalisés proposés par Mozilla (https://wiki.mozilla.org/Security/Server_Side_TLS)

#### `test_certificate`

Vérifie la validité du certificat

#### `test_accepts_tls_v1`

Vérifie que le serveur accepte bien des connexions TLS v1

#### `test_refuse_ssl_v3`

Vérifie que le serveur refuse bien des connexions SSL v3

#### `test_hsts_header`

Vérifie la présence de l'en-tête HTTP `HTTP-Strict-Transport-Security`.

### Partie "redirections" :

    bundle exec ruby -Itest test/domain_redirects_test.rb

#### `test_redirections`

Vérifie que les redirections attendues aient bien lieu.

#### `test_http_codes`

Vérifie que les codes HTTP attendus soient bien reçus.
