/**
* Record an individual test item's success or failure to the db
*
- * @param $test String
- * @param $result Boolean
+ * @param string $test
+ * @param bool $result
*/
function record( $test, $result ) {
parent::record( $test, $result );
}
if ( $input == false || $result == false ||
- ( ( preg_match( '/\\bdisabled\\b/i', $this->sectionData['options'] ) && !$this->parserTest->runDisabled )
+ ( ( preg_match( '/\\bdisabled\\b/i', $this->sectionData['options'] ) && !$this->parserTest->runDisabled )
|| ( preg_match( '/\\bparsoid\\b/i', $this->sectionData['options'] ) && $result != 'html/php' && !$this->parserTest->runParsoid )
|| !preg_match( "/" . $this->parserTest->regex . "/i", $this->sectionData['test'] ) )
) {
* Throw an exception if it is not set, referencing current section
* and adding the current file name and line number
*
- * @param $token String|Array: expected token(s) that should have been
+ * @param string|array $token Expected token(s) that should have been
* mentioned before closing this section
- * @param $fatal Boolean: true iff an exception should be thrown if
+ * @param bool $fatal True iff an exception should be thrown if
* the section is not found.
*/
private function checkSection( $tokens, $fatal = true ) {
/**
* Called whenever we actually want to run the hook.
* Should be the case if we found the parserTest is not disabled
+ * @param ParserTest|NewParserTest $parserTest
*/
public function unleash( &$parserTest ) {
if ( !( $parserTest instanceof ParserTest || $parserTest instanceof NewParserTest ) ) {
/**
* Similar to ParserTest object but does not run anything
* Use unleash() to really execute the hook
+ * @param string $hook
*/
public function requireHook( $hook ) {
$this->hooks[] = $hook;
/**
* Similar to ParserTest object but does not run anything
* Use unleash() to really execute the hook function
+ * @param string $fnHook
*/
public function requireFunctionHook( $fnHook ) {
$this->fnHooks[] = $fnHook;
}
}
+
+/**
+ * Initialize and detect the DjVu files support
+ */
+class DjVuSupport {
+
+ /**
+ * Initialises DjVu tools global with default values
+ */
+ public function __construct() {
+ global $wgDjvuRenderer, $wgDjvuDump, $wgDjvuToXML, $wgFileExtensions;
+
+ $wgDjvuRenderer = $wgDjvuRenderer ? $wgDjvuRenderer : '/usr/bin/ddjvu';
+ $wgDjvuDump = $wgDjvuDump ? $wgDjvuDump : '/usr/bin/djvudump';
+ $wgDjvuToXML = $wgDjvuToXML ? $wgDjvuToXML : '/usr/bin/djvutoxml';
+
+ if ( !in_array( 'djvu', $wgFileExtensions ) ) {
+ $wgFileExtensions[] = 'djvu';
+ }
+ }
+
+ /**
+ * Returns if the DjVu tools are usable
+ *
+ * @return bool
+ */
+ public function isEnabled() {
+ global $wgDjvuRenderer, $wgDjvuDump, $wgDjvuToXML;
+
+ return is_executable( $wgDjvuRenderer )
+ && is_executable( $wgDjvuDump )
+ && is_executable( $wgDjvuToXML );
+ }
+}