Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Name Last commit Last update
..
conf
core
data
tests
README
bootstrap.php
phpunit.xml
====== DokuWiki Test Suite ======

This is the test suit to automatically test various parts of DokuWiki.

===== Requirements =====

  * PHPUnit 3.6.10+ http://www.phpunit.de/
  * PHP 5.3+ http://www.php.net

===== PHPUnit Installation ======

via PEAR:

  pear config-set auto_discover 1
  pear upgrade
  pear install pear.phpunit.de/PHPUnit

on Windows:

  FIXME


===== Running all Tests =====

Just change to the ''_test'' directory and run phpunit:

  cd _testing/
  phpunit

PHPUnit will fail on some systems with a //headers already sent// error.
This is a known problem with PHPUnit, the error can be avoided by passing the
'--stderr' flag to phpunit:

  phpunit --stderr

On windows you may have to enable OpenSSL support for https tests.
Some of them point to httpclient_http.tests.php on the failure.
To enable HTTPS support copy the ''libeay32.dll'' and ''ssleay32.dll'' to your ''windows\system32'' folder
and add the following line to your php.ini in the extension section:
<code ini>
extension=php_openssl.dll
</code>

===== Running selected Tests =====

You can run a single test file by providing it as an argument to phpunit:

  phpunit --stderr tests/inc/common_cleanText.test.php

You can also use groups to exclude certain test from running. For example use
the following command to avoid long running test or tests accessing the
Internet.

  phpunit --stderr --exclude-group slow,internet

===== Create new Tests =====

To create a test for DokuWiki, create a *.test.php file within the tests/
folder. Please respect the folder structure and naming convention. Inside the
file, implement a class, extending 'DokuWikiTest'. Every method, starting
with 'test' will be called as a test (e.g. 'testIfThisIsValid');


===== TODO for the test framework =====

  * test cross platform compatibility: especially test windows
  * update http://www.dokuwiki.org/devel:unittesting
  * optional: add helper methods to TestRequest for easy form submission
    * createForm(), ...
  * check PHP Unit test_helpers https://github.com/sebastianbergmann/php-test-helpers


===== Migration Protocol =====

The following tests were not migrated:

  * inc/indexer_idx_indexlengths (fs dependencies)
  * inc/mail_send (integration test)
  * inc/parser/parser_formatting
  * inc/parser/xhtml_htmlphp (runkit)
  * inc/parser/xhtml_links