static private $maxparams = 10;
/**
- ** Returns random number between finish and start.
+ * Returns random number between finish and start.
+ * @param $finish
+ * @param $start int
+ * @return int
*/
static public function randnum( $finish, $start = 0 ) {
return mt_rand( $start, $finish );
}
/**
- ** Returns a mix of random text and random wiki syntax.
+ * Returns a mix of random text and random wiki syntax.
+ * @return string
*/
static private function randstring() {
$thestring = "";
}
/**
- ** Returns either random text, or random wiki syntax, or random data from "ints",
- ** or random data from "other".
+ * Returns either random text, or random wiki syntax, or random data from "ints",
+ * or random data from "other".
+ * @return string
*/
static private function makestring() {
$what = wikiFuzz::randnum( 2 );
if ( $what == 0 ) {
return wikiFuzz::randstring();
- }
- elseif ( $what == 1 ) {
+ } elseif ( $what == 1 ) {
return wikiFuzz::$ints[wikiFuzz::randnum( count( wikiFuzz::$ints ) - 1 )];
- }
- else {
+ } else {
return wikiFuzz::$other[wikiFuzz::randnum( count( wikiFuzz::$other ) - 1 )];
}
}
/**
* Returns the matched character slash-escaped as in a C string
* Helper for makeTitleSafe callback
+ * @param $matches
+ * @return atring
*/
static private function stringEscape( $matches ) {
return sprintf( "\\x%02x", ord( $matches[1] ) );
/**
** Strips out the stuff that Mediawiki balks at in a page's title.
** Implementation copied/pasted from cleanupTable.inc & cleanupImages.php
+ * @param $str string
+ * @return string
*/
static public function makeTitleSafe( $str ) {
$legalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF";
/**
** Returns a string of fuzz text.
+ * @return string
*/
static private function loop() {
switch ( wikiFuzz::randnum( 3 ) ) {
}
/**
- ** Returns one of the three styles of random quote: ', ", and nothing.
+ * Returns one of the three styles of random quote: ', ", and nothing.
+ * @return string
*/
static private function getRandQuote() {
switch ( wikiFuzz::randnum( 3 ) ) {
/**
** Returns fuzz text, with the parameter indicating approximately how many lines of text you want.
+ * @param $maxtypes int
+ * @return string
*/
static public function makeFuzz( $maxtypes = 2 ) {
$page = "";
}
}
-
/**
** selects a page test to run.
+ * @param $count
+ * @return \api|\confirmEmail|\contributionsTest|\editPageTest|\imagelistTest|\imagepageTest|\ipblocklistTest|\listusersTest|\mimeSearchTest|\newImagesTest|\pageDeletion|\pageHistoryTest|\pageProtectionForm|\prefixindexTest|\profileInfo|\recentchangesTest|\redirectTest|\searchTest|\specialAllmessagesTest|\specialAllpagesTest|\specialBlockip|\specialBlockmeTest|\specialBooksourcesTest|\specialCategoryTree|\specialChemicalsourcesTest|\specialCitePageTest|\specialExportTest|\specialFilepathPageTest|\specialImportPageTest|\specialLinksearch|\specialLockdbPageTest|\specialLogTest|\specialMovePage|\specialNewpagesPageTest|\specialRenameuserPageTest|\specialRevisionDeletePageTest|\specialUndeletePageTest|\specialUnlockdbPageTest|\specialUserrights|\successfulUserLoginTest|\thumbTest|\trackbackTest|\userLoginTest|\viewPageTest|\watchlistTest
*/
function selectPageTest( $count ) {
file_put_contents( $name, $data );
}
-
/**
** Returns a test as an experimental GET-to-POST URL.
** This doesn't seem to always work though, and sometimes the output is too long
** to be a valid GET URL, so we also save in other formats.
+ * @param $test pageTest
+ * @return string
*/
function getAsURL( pageTest $test ) {
$used_question_mark = ( strpos( $test->getPagePath(), "?" ) !== false );
saveFile( $str, $filename );
}
-
/**
- ** Escapes a value so that it can be used on the command line by Curl.
- ** Specifically, "<" and "@" need to be escaped if they are the first character,
- ** otherwise curl interprets these as meaning that we want to insert a file.
+ * Escapes a value so that it can be used on the command line by Curl.
+ * Specifically, "<" and "@" need to be escaped if they are the first character,
+ * otherwise curl interprets these as meaning that we want to insert a file.
+ * @param $input_params array
+ * @return array
*/
function escapeForCurl( array $input_params ) {
$output_params = array();
saveTestData ( $test, $base_name . DATA_FILE );
}
-
// ////////////////// MEDIAWIKI OUTPUT /////////////////////////
/**
- ** Asks MediaWiki for the HTML output of a test.
+ * Asks MediaWiki for the HTML output of a test.
+ * @param $test pageTest
+ * @return string
*/
function wikiTestOutput( pageTest $test ) {
$ch = curl_init();
// specify the cookie, if required.
- if ( $test->getCookie() ) curl_setopt( $ch, CURLOPT_COOKIE, $test->getCookie() );
+ if ( $test->getCookie() ) {
+ curl_setopt( $ch, CURLOPT_COOKIE, $test->getCookie() );
+ }
curl_setopt( $ch, CURLOPT_POST, 1 ); // save form using a POST
$params = escapeForCurl( $test->getParams() );
/**
* Asks the validator whether this is valid HTML, or not.
+ * @param $text string
+ * @return array
*/
function validateHTML( $text ) {
return array( $valid, $result );
}
-
/**
- ** Get tidy to check for no HTML errors in the output file (e.g. unescaped strings).
+ * Get tidy to check for no HTML errors in the output file (e.g. unescaped strings).
+ * @param $name
+ * @return bool
*/
function tidyCheckFile( $name ) {
$file = DIRECTORY . "/" . $name;
}
}
-
/**
** Returns whether or not an database error log file has changed in size since
** the last time this was run. This is used to tell if a test caused a DB error.
+ * @return bool
*/
function dbErrorLogged() {
static $filesize;
// //////////////// TOP-LEVEL PROBLEM-FINDING FUNCTION ////////////////////////
/**
- ** takes a page test, and runs it and tests it for problems in the output.
- ** Returns: False on finding a problem, or True on no problems being found.
+ * takes a page test, and runs it and tests it for problems in the output.
+ * Returns: False on finding a problem, or True on no problems being found.
+ * @param $test pageTest
+ * @param $testname
+ * @param $can_overwrite bool
+ * @return bool
*/
function runWikiTest( pageTest $test, &$testname, $can_overwrite = false ) {