Difference between revisions of "Extension:Selenium.php"

From Organic Design wiki
(rm Foo magic)
m
 
(111 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<?php
+
{{legacy}}
# Extension:Selenium {{Category:Extensions}}{{php}}{{Category:Extensions created with Template:SpecialPage}}
+
This extensions is composed of the following scripts:
# - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
+
*[[Selenium.php]]
# - Author: [http://www.organicdesign.co.nz/User:Sven User:Sven]
+
*[[Selenium.class.php]]
 +
*[[SpecialSelenium.php]]
 +
*[[postResults.php]]
  
 
+
== Notes ==
if (!defined('MEDIAWIKI')) die('Not an entry point.');
+
* The [[mw:Extension:Selenium|extension documentation]] is hosted on http://mediawiki.org.
+
* [[Example Selenium test suite]]
define('SELENIUM_VERSION','0.0.1, 2007-12-03 (selenium-core version 0.8.3');
+
[[Category:Legacy Extensions]]
 
$wgSeleniumTag              = "selenium";
 
$wgExtensionFunctions[]        = 'wfSetupSelenium';
 
$wgExtensionFunctions[]        = 'wfSetupSpecialSelenium';
 
$wgHooks['LanguageGetMagic'][] = 'wfSeleniumLanguageGetMagic';
 
 
 
$wgExtensionCredits['specialpage'][] = array(
 
'name'        => 'Special:Selenium',
 
'author'      => '[http://www.organicdesign.co.nz/User:Sven 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'));
 
 
}
 
 
 
# Convert the <selenium> tags to HTML
 
function tagSelenium($text,$argv,&$parser) {
 
$args = '';
 
foreach ($argv as $k => $v) $args .= "<li><b>$k:</b> <i>$v</i></li>\n";
 
return "<h3>tagSelenium():</h3>\n<ul>$args<li>Content:</b> $text</ul>\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 {
 
 
# 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
 
);
 
}
 
 
 
#logFile("/tmp/FOO","this is a test message...");
 
 
 
# Logging to a file
 
function logFile($file, $msg) {
 
$fh = fopen($file,'w');
 
# $ts = $GLOBALS['wgLang']->timeanddate(wfTimestampNow(),true);
 
        $ts = `date`;
 
if(is_array($msg)) $msg = print_r($msg, true);
 
fwrite($fh, "\n$ts: $msg");
 
}
 
 
 
# logFile("FOO", "FODDA");
 
 
 
# 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>'
 
);
 
}
 
 
}
 
 
# ---------------------- TODO ------------------- #
 
# 1) Deploy tags to allow additional html table tags
 
# 2) Create form for Special:Selenium
 
# 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: <tt>$1</tt>",
 
));
 
}
 
 
# Add the specialpage to the environment
 
SpecialPage::addPage(new SpecialSelenium());
 
}
 
?>
 

Latest revision as of 15:00, 22 October 2014

Legacy.svg Legacy: This article describes a concept that has been superseded in the course of ongoing development on the Organic Design wiki. Please do not develop this any further or base work on this concept, now this page is for historic record only.

This extensions is composed of the following scripts:

Notes