 8435b28989
			
		
	
	8435b28989
	
	
	
		
			
			In order to test git-remote-mediawiki, a set of functions is needed to manage a MediaWiki: edit a page, remove a page, fetch a page, fetch all pages on a given wiki. A few helper function are also provided to check the content of directories. In addition, this patch provides Makefiles to execute tests. See the README file for more details. Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr> Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr> Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr> Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr> Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			125 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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 priviledge (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 beggining 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
 | |
| begining 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 regulary with the function `wiki_reset`.
 |