| Tests for Mediawiki-to-Git |
| ========================== |
| |
| Introduction |
| ------------ |
| This manual describes how to install the git-remote-mediawiki test |
| environment on a machine with git installed on it. |
| |
| Prerequisite |
| ------------ |
| |
| In order to run this test environment correctly, you will need to |
| install the following packages (Debian/Ubuntu names, may need to be |
| adapted for another distribution): |
| |
| * lighttpd |
| * php5 |
| * php5-cgi |
| * php5-cli |
| * php5-curl |
| * php5-sqlite |
| |
| Principles and Technical Choices |
| -------------------------------- |
| |
| The test environment makes it easy to install and manipulate one or |
| several MediaWiki instances. To allow developers to run the testsuite |
| easily, the environment does not require root privilege (except to |
| install the required packages if needed). It starts a webserver |
| instance on the user's account (using lighttpd greatly helps for |
| that), and does not need a separate database daemon (thanks to the use |
| of sqlite). |
| |
| Run the test environment |
| ------------------------ |
| |
| Install a new wiki |
| ~~~~~~~~~~~~~~~~~~ |
| |
| Once you have all the prerequisite, you need to install a MediaWiki |
| instance on your machine. If you already have one, it is still |
| strongly recommended to install one with the script provided. Here's |
| how to work it: |
| |
| a. change directory to contrib/mw-to-git/t/ |
| b. if needed, edit test.config to choose your installation parameters |
| c. run `./install-wiki.sh install` |
| d. check on your favourite web browser if your wiki is correctly |
| installed. |
| |
| Remove an existing wiki |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| Edit the file test.config to fit the wiki you want to delete, and then |
| execute the command `./install-wiki.sh delete` from the |
| contrib/mw-to-git/t directory. |
| |
| Run the existing tests |
| ~~~~~~~~~~~~~~~~~~~~~~ |
| |
| The provided tests are currently in the `contrib/mw-to-git/t` directory. |
| The files are all the t936[0-9]-*.sh shell scripts. |
| |
| a. Run all tests: |
| To do so, run "make test" from the contrib/mw-to-git/ directory. |
| |
| b. Run a specific test: |
| To run a given test <test_name>, run ./<test_name> from the |
| contrib/mw-to-git/t directory. |
| |
| How to create new tests |
| ----------------------- |
| |
| Available functions |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| The test environment of git-remote-mediawiki provides some functions |
| useful to test its behaviour. for more details about the functions' |
| parameters, please refer to the `test-gitmw-lib.sh` and |
| `test-gitmw.pl` files. |
| |
| ** `test_check_wiki_precond`: |
| Check if the tests must be skipped or not. Please use this function |
| at the beginning of each new test file. |
| |
| ** `wiki_getpage`: |
| Fetch a given page from the wiki and puts its content in the |
| directory in parameter. |
| |
| ** `wiki_delete_page`: |
| Delete a given page from the wiki. |
| |
| ** `wiki_edit_page`: |
| Create or modify a given page in the wiki. You can specify several |
| parameters like a summary for the page edition, or add the page to a |
| given category. |
| See test-gitmw.pl for more details. |
| |
| ** `wiki_getallpage`: |
| Fetch all pages from the wiki into a given directory. The directory |
| is created if it does not exists. |
| |
| ** `test_diff_directories`: |
| Compare the content of two directories. The content must be the same. |
| Use this function to compare the content of a git directory and a wiki |
| one created by wiki_getallpage. |
| |
| ** `test_contains_N_files`: |
| Check if the given directory contains a given number of file. |
| |
| ** `wiki_page_exists`: |
| Tests if a given page exists on the wiki. |
| |
| ** `wiki_reset`: |
| Reset the wiki, i.e. flush the database. Use this function at the |
| beginning of each new test, except if the test re-uses the same wiki |
| (and history) as the previous test. |
| |
| How to write a new test |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| Please, follow the standards given by git. See git/t/README. |
| New file should be named as t936[0-9]-*.sh. |
| Be sure to reset your wiki regularly with the function `wiki_reset`. |