friendica/tests
Michael 55cec6c61d OpenWebAuth moved to a separate class / Improved authentication handling 2024-05-28 21:59:52 +00:00
..
Util Normalize local node hostname across API fixtures 2024-02-27 08:41:51 -05:00
datasets Normalize API fixture data 2024-03-05 10:10:15 -05:00
functional Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
src OpenWebAuth moved to a separate class / Improved authentication handling 2024-05-28 21:59:52 +00:00
DatabaseTest.php Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
DatabaseTestTrait.php Normalize local node hostname across API fixtures 2024-02-27 08:41:51 -05:00
DiceHttpMockHandlerTrait.php Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
FixtureTest.php Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
FixtureTestTrait.php Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
MockedTest.php Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
README.md update testing documentation 2024-04-14 11:11:00 +02:00
bootstrap.php Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
phpunit-addons.xml
phpunit.xml

README.md

Using the Friendica tests

Install Tools

You need to install the following software:

  • PHP
  • MySQL or Mariadb (the latter is preferred)

For example in Ubuntu you can run:

sudo apt install mariadb-server php

Install PHP extensions

The following extensions must be installed:

  • MySQL
  • Curl
  • GD
  • XML
  • DOM
  • SimpleXML
  • Intl
  • Multi-precision
  • Multi-byte string

For example in Ubuntu:

sudo apt install php-mysql php-curl php-gd php-xml php-intl php-gmp php-mbstring

Create Local Database

The default database name is test, username friendica, password friendica. These can be overridden using environment variables DATABASE_NAME, DATABASE_USER, DATABASE_HOST, and DATABASE_PASSWORD. Whatever settings you choose, you must give the corresponding user the necessary privileges to create and destroy the chosen database.

GRANT ALL PRIVILEGES ON test.* TO 'friendica'@'localhost' IDENTIFIED BY 'friendica' WITH GRANT OPTION;
GRANT CREATE, DROP ON test.* TO 'friendica'@'localhost';

Use Docker Database

Instead of using a local database, you can also use a database running in a docker container.

TODO this section needs to be filled in with working examples.

Running Tests

You can then run the tests using the autotest.sh script. You should specify the type of database as an argument, either mysql or mariadb:

bin/dev/autotest.sh mariadb

You can also run just one particular file of tests:

bin/dev/autotest.sh mariadb src/Util/ImagesTest.php

Example output of tests passing:

OK (2 tests, 2 assertions)

Failed tests look like this. Examine the output before this to see which tests failed.

FAILURES!
Tests: 2, Assertions: 2, Failures: 1.