# Testing LibreTime

## MVC

The MVC tests are based on PHPUnit and may be found in `airtime_mvc/tests`.

You can run the tests in you working copy as described below or let travis
run them for you on pushes.

### Prepare environment

PHPUnit will need to be able to access the database and be allowed to
create the libretime_test database. On a clean install this may be
set up as follows.

```bash
psql -c 'CREATE DATABASE libretime;' -U postgres -h localhost
psql -c "CREATE USER libretime WITH PASSWORD 'libretime';" -U postgres -h localhost
psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;' -U postgres -h localhost
psql -c 'ALTER USER libretime CREATEDB;' -U postgres -h localhost
```

In this case the libretime database is only used for the initial connection
over which the libretime_test database is created.

### Install PHPUnit 

PHPUnit should have already been installed when you ran `composer install`.

If you have not done so, now is the time to do so.

### Run the tests

```bash
# run all tests
cd airtime_mvc/tests
../../vendor/bin/phpunit

# run a subset of tests
../../vendor/bin/phpunit --filter testEditReatingShowInstance 
```

# Testing LibreTime

## MVC

The MVC tests are based on PHPUnit and may be found in `airtime_mvc/tests`.

You can run the tests in you working copy as described below or let travis
run them for you on pushes.

### Prepare environment

PHPUnit will need to be able to access the database and be allowed to
create the libretime_test database. On a clean postgresql install this may 
be set up as follows.

```bash
psql -c 'CREATE DATABASE libretime;' -U postgres
psql -c "CREATE USER libretime WITH PASSWORD 'libretime';" -U postgres
psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;' -U postgres
psql -c 'ALTER USER libretime CREATEDB;' -U postgres
```

In this case the libretime database is only used for the initial connection
over which the libretime_test database is created.

You may need to tweak the exact commands needed to setup postgresql depending
on the distro you installed this to. On Ubuntu trusty the above can be
acheived as follows.

```bash
sudo -u postgres psql -c 'CREATE DATABASE libretime;'
sudo -u postgres psql -c "CREATE USER libretime WITH PASSWORD 'libretime';"
sudo -u postgres psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;'
sudo -u postgres psql -c 'ALTER USER libretime CREATEDB;'
```

### Install PHPUnit 

PHPUnit should have already been installed when you ran `composer install`.

If you have not done so, now is the time to do so.

### Run the tests

```bash
# run all tests
cd airtime_mvc/tests
../../vendor/bin/phpunit

# run a subset of tests
../../vendor/bin/phpunit --filter testEditReatingShowInstance 
```

Update install docs with ubuntu example
Update install docs with ubuntu example

This is the way around having to set a password on ubuntu.
