git/contrib/mw-to-git/t
Junio C Hamano 6789275d37 tests: teach callers of test_i18ngrep to use test_grep
They are equivalents and the former still exists, so as long as the
only change this commit makes are to rewrite test_i18ngrep to
test_grep, there won't be any new bug, even if there still are
callers of test_i18ngrep remaining in the tree, or when merged to
other topics that add new uses of test_i18ngrep.

This patch was produced more or less with

    git grep -l -e 'test_i18ngrep ' 't/t[0-9][0-9][0-9][0-9]-*.sh' |
    xargs perl -p -i -e 's/test_i18ngrep /test_grep /'

and a good way to sanity check the result yourself is to run the
above in a checkout of c4603c1c (test framework: further deprecate
test_i18ngrep, 2023-10-31) and compare the resulting working tree
contents with the result of applying this patch to the same commit.
You'll see that test_i18ngrep in a few t/lib-*.sh files corrected,
in addition to the manual reproduction.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-02 17:13:44 +09:00
..
.gitignore remote-mediawiki tests: use CLI installer 2020-09-21 12:37:38 -07:00
Makefile git-remote-mediawiki: test environment of git-remote-mediawiki 2012-07-06 12:20:45 -07:00
README remote-mediawiki doc: don't hardcode Debian PHP versions 2020-09-21 12:37:38 -07:00
install-wiki.sh git-remote-mediawiki: allow stop/start-ing the test server 2014-04-23 15:22:53 -07:00
push-pull-tests.sh git-remote-mediawiki: fix incorrect test usage in test 2012-07-17 11:51:45 -07:00
t9360-mw-to-git-clone.sh t: fix whitespace around && 2021-06-08 10:08:01 +09:00
t9361-mw-to-git-push-pull.sh git-remote-mediawiki (t9361): test git-remote-mediawiki pull and push 2012-07-06 12:20:46 -07:00
t9362-mw-to-git-utf8.sh t: fix whitespace around && 2021-06-08 10:08:01 +09:00
t9363-mw-to-git-export-import.sh tests: teach callers of test_i18ngrep to use test_grep 2023-11-02 17:13:44 +09:00
t9364-pull-by-rev.sh git-remote-mediawiki: more efficient 'pull' in the best case 2012-07-06 12:20:46 -07:00
t9365-continuing-queries.sh t6000-t9999: detect and signal failure within loop 2021-12-13 10:29:48 -08:00
test-gitmw-lib.sh remote-mediawiki tests: use CLI installer 2020-09-21 12:37:38 -07:00
test-gitmw.pl remote-mediawiki tests: use inline PerlIO for readability 2020-09-21 12:37:38 -07:00
test.config remote-mediawiki tests: use CLI installer 2020-09-21 12:37:38 -07:00

README

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
* php
* php-cgi
* php-cli
* php-curl
* php-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`.