Difference between revisions of "Extension:Selenium.php"
(parser detail for User:Nad) |
(Move {{{VARIABLES}}} expansion code) |
||
Line 41: | Line 41: | ||
# Convert the <selenium> tags to HTML | # Convert the <selenium> tags to HTML | ||
function tagSelenium($text,$argv,&$parser) { | function tagSelenium($text,$argv,&$parser) { | ||
− | |||
# Want the selenium tag to strip out and <html>...</html> enclosing tags | # Want the selenium tag to strip out and <html>...</html> enclosing tags | ||
$text = eregi_replace('<html>.+<table', '<table', $text); | $text = eregi_replace('<html>.+<table', '<table', $text); | ||
$text = eregi_replace('</table>.+', '</table>', $text); | $text = eregi_replace('</table>.+', '</table>', $text); | ||
+ | |||
+ | # Need to convert {{{VARIABLES}}} with parser; [[MWManual:Tag_extensions#Extensions_and_Templates]] | ||
+ | #$parser->replaceVariables($wikitext,$args,true); | ||
# Bypass the 2nd stage of the wiki parser returning htmlspecialchars($text) | # Bypass the 2nd stage of the wiki parser returning htmlspecialchars($text) |
Revision as of 10:37, 11 December 2007
<?php
- Extension:Selenium
Template:PhpCategory:Extensions created with Template:SpecialPage
- - Licenced under LGPL http://www.gnu.org/copyleft/lesser.html
- - Author: http://www.organicdesign.co.nz/User:Sven
if (!defined('MEDIAWIKI')) die('Not an entry point.');
define('SELENIUM_VERSION','0.1.1, 2007-12-03 (selenium-core version 0.8.3');
$wgSeleniumTag = "selenium"; $wgExtensionFunctions[] = 'wfSetupSelenium'; $wgExtensionFunctions[] = 'wfSetupSpecialSelenium'; $wgHooks['LanguageGetMagic'][] = 'wfSeleniumLanguageGetMagic';
$wgExtensionCredits['specialpage'][] = array( 'name' => 'Special:Selenium', 'author' => 'User:Sven', 'description' => 'Incorporating Selenium tests into the MediaWiki environment', 'url' => 'http://www.mediawiki.org/wiki/Extension:Selenium', 'version' => SELENIUM_VERSION );
require_once "$IP/includes/SpecialPage.php";
class Selenium {
- Properties
var $prop1 = 'default value'; var $prop2 = 'default value';
- Constructor
function Selenium() { global $wgHooks,$wgParser,$wgSeleniumTag;
- Add the tagHook
$wgParser->setHook($wgSeleniumTag,array($this,'tagSelenium'));
}
- 1) ------------ Deploy tags to allow additional html table tags ------------- #
- Convert the <selenium> tags to HTML
function tagSelenium($text,$argv,&$parser) {
- Want the selenium tag to strip out and ... enclosing tags
$text = eregi_replace('.+
\n"; return "
tagSelenium():
\n
- $args
- Content:$text
\n"; } # Needed in some versions to prevent Special:Version from breaking function __toString() { return 'Selenium'; } } # Called from $wgExtensionFunctions array when initialising extensions function wfSetupSelenium() { global $wgSelenium; $wgSelenium = new Selenium(); } # Needed in MediaWiki >1.8.0 for magic word hooks to work properly function wfSeleniumLanguageGetMagic(&$magicWords,$langCode = 0) { global $wgSeleniumMagic; $magicWords[$wgSeleniumMagic] = array(0,$wgSeleniumMagic); return true; } # Define a new class based on the SpecialPage class class SpecialSelenium extends SpecialPage { # Properties var $suiteTitle = 'Selenium suite'; var $testName = 'Selenium test'; var $htmlSnippet = array( 'suiteHeader' => '
', 'testHeader' => '
', 'Footer' => '', );
- Constructor
function SpecialSelenium() { SpecialPage::SpecialPage( 'Selenium', # name as seen in links etc 'sysop', # user rights required true, # listed in special:specialpages false, # function called by execute() - defaults to wfSpecial{$name} false, # file included by execute() - defaults to Special{$name}.php, only used if no function false # includable ); }
- 2) -------------------- Create form for Special:Selenium -------------------- #
- Override SpecialPage::execute() $param is from the URL, eg Special:Selenium/param
function execute($param) { global $wgOut; $this->setHeaders(); $title = Title::makeTitle(NS_SPECIAL,'Selenium'); $wgOut->addWikiText(wfMsg('example-message','exampleParameter')); $wgOut->addHTML( wfElement('form',array('action' => $title->getLocalURL('action=submit'),'method' => 'post'),null) . '<textarea name="target" cols=25 rows=10></textarea>' . wfElement('input',array('type' => 'submit')) . '</form>' ); }
- 3) -- Create rendering on the fly of a test article to the suite html code -- #
- 4) ---------------- Some sort of validation of article ---------------------- #
}
- Called from $wgExtensionFunctions array when initialising extensions
function wfSetupSpecialSelenium() { global $wgLanguageCode,$wgMessageCache;
- Add the messages used by the specialpage
if ($wgLanguageCode == 'en') { $wgMessageCache->addMessages(array( 'selenium' => 'Example Specialpage', # The friendly page title 'exampleMessage' => "Example message: $1", )); }
- Add the specialpage to the environment
SpecialPage::addPage(new SpecialSelenium()); } ?>