Merge branch 'tb/clone-ssh-with-colon-for-port'
[git] / contrib / mw-to-git / t / README
CommitLineData
8435b289
GS
1Tests for Mediawiki-to-Git
2==========================
3
4Introduction
5------------
6This manual describes how to install the git-remote-mediawiki test
7environment on a machine with git installed on it.
8
9Prerequisite
10------------
11
12In order to run this test environment correctly, you will need to
13install the following packages (Debian/Ubuntu names, may need to be
14adapted for another distribution):
15
16* lighttpd
17* php5
18* php5-cgi
19* php5-cli
20* php5-curl
21* php5-sqlite
22
23Principles and Technical Choices
24--------------------------------
25
26The test environment makes it easy to install and manipulate one or
27several MediaWiki instances. To allow developers to run the testsuite
2582ab18 28easily, the environment does not require root privilege (except to
8435b289
GS
29install the required packages if needed). It starts a webserver
30instance on the user's account (using lighttpd greatly helps for
31that), and does not need a separate database daemon (thanks to the use
32of sqlite).
33
34Run the test environment
35------------------------
36
37Install a new wiki
38~~~~~~~~~~~~~~~~~~
39
40Once you have all the prerequisite, you need to install a MediaWiki
41instance on your machine. If you already have one, it is still
42strongly recommended to install one with the script provided. Here's
43how to work it:
44
45a. change directory to contrib/mw-to-git/t/
46b. if needed, edit test.config to choose your installation parameters
47c. run `./install-wiki.sh install`
48d. check on your favourite web browser if your wiki is correctly
49 installed.
50
51Remove an existing wiki
52~~~~~~~~~~~~~~~~~~~~~~~
53
54Edit the file test.config to fit the wiki you want to delete, and then
55execute the command `./install-wiki.sh delete` from the
56contrib/mw-to-git/t directory.
57
58Run the existing tests
59~~~~~~~~~~~~~~~~~~~~~~
60
61The provided tests are currently in the `contrib/mw-to-git/t` directory.
62The files are all the t936[0-9]-*.sh shell scripts.
63
64a. Run all tests:
65To do so, run "make test" from the contrib/mw-to-git/ directory.
66
67b. Run a specific test:
68To run a given test <test_name>, run ./<test_name> from the
69contrib/mw-to-git/t directory.
70
71How to create new tests
72-----------------------
73
74Available functions
75~~~~~~~~~~~~~~~~~~~
76
77The test environment of git-remote-mediawiki provides some functions
78useful to test its behaviour. for more details about the functions'
79parameters, please refer to the `test-gitmw-lib.sh` and
80`test-gitmw.pl` files.
81
82** `test_check_wiki_precond`:
83Check if the tests must be skipped or not. Please use this function
2582ab18 84at the beginning of each new test file.
8435b289
GS
85
86** `wiki_getpage`:
87Fetch a given page from the wiki and puts its content in the
88directory in parameter.
89
90** `wiki_delete_page`:
91Delete a given page from the wiki.
92
93** `wiki_edit_page`:
94Create or modify a given page in the wiki. You can specify several
95parameters like a summary for the page edition, or add the page to a
96given category.
97See test-gitmw.pl for more details.
98
99** `wiki_getallpage`:
100Fetch all pages from the wiki into a given directory. The directory
101is created if it does not exists.
102
103** `test_diff_directories`:
104Compare the content of two directories. The content must be the same.
105Use this function to compare the content of a git directory and a wiki
106one created by wiki_getallpage.
107
108** `test_contains_N_files`:
109Check if the given directory contains a given number of file.
110
111** `wiki_page_exists`:
112Tests if a given page exists on the wiki.
113
114** `wiki_reset`:
115Reset the wiki, i.e. flush the database. Use this function at the
2582ab18 116beginning of each new test, except if the test re-uses the same wiki
8435b289
GS
117(and history) as the previous test.
118
119How to write a new test
120~~~~~~~~~~~~~~~~~~~~~~~
121
122Please, follow the standards given by git. See git/t/README.
123New file should be named as t936[0-9]-*.sh.
124Be sure to reset your wiki regulary with the function `wiki_reset`.