Personal tools
Make a donation
$ 




Selenium.php

From OrganicDesign Wiki

Jump to: navigation, search
<?php
/**
 * Selenium extension
 * 
 * See http://www.mediawiki.org/Extension:Selenium for installation and usage details
 * See http://www.organicdesign.co.nz/Extension_talk:Selenium.php for development notes and disucssion
 * 
 * @package MediaWiki
 * @subpackage Extensions
 * @author Marcus Davy [http://www.organicdesign.co.nz/User:Sven User:Sven]
 * @copyright © 2007 Marcus Davy
 * @licence GNU General Public Licence 2.0 or later
 */
 
if (!defined('MEDIAWIKI')) die('Not an entry point.');
 
define('SELENIUM_VERSION', '0.8.1, 2008-08-27');
 
$dir                = dirname(__FILE__);
$egSeleniumPath     = preg_replace("|^.+(?=[/\\\\]extensions)|", $wgScriptPath, $dir)."/selenium-core";
$egResultsUrlPath   = "../../tmp/results.php";
$egSeleniumCategory = "Selenium test suites";   # Category that selenium tests will automatically be categorised in
$egSeleniumTag      = 'selenium';               # Name of tags to wrap selenium tests in
$egSeleniumSchdeule = array();                  # Times, tests and domains, see http://www.mediawiki.org/wiki/Extension:Selenium
$egSeleniumLog      = "MediaWiki:Selenium log"; # Article that scheduled test runs should be logged to
 
$wgSpecialPages['Selenium']           = 'SpecialSelenium';
$wgAutoloadClasses['SpecialSelenium'] = "$dir/SpecialSelenium.php";
$wgAutoloadClasses['Selenium']        = "$dir/Selenium.class.php";
$wgExtensionFunctions[]               = 'efSetupSelenium';
$wgHooks['LanguageGetMagic'][]        = 'efSeleniumLanguageGetMagic';
$wgExtensionCredits['specialpage'][]  = array(
	'name'        => 'Selenium',
	'author'      => "[http://www.organicdesign.co.nz/User:Sven Sven], [http://www.organicdesign.co.nz/User:Nad Nad]",
	'description' => "Incorporating [http://selenium-core.openqa.org Selenium tests] into the MediaWiki environment",
	'url'         => "http://www.mediawiki.org/wiki/Extension:Selenium",
	'version'     => SELENIUM_VERSION
);
 
function efSetupSelenium() {
	global $wgRequest, $wgOut, $egSelenium, $wgLanguageCode, $wgMessageCache;
 
	# If requesting a suite or inidividual test, then output will be raw
	if ($wgRequest->getText('suite')) {
		$wgOut->disable();
		wfResetOutputBuffers();
	}
 
	# Add the messages used by the specialpage
	if ($wgLanguageCode == 'en') {
		$wgMessageCache->addMessages(array(
			'selenium'            => "Selenium test management",
			'selenium-run'        => "Run test manually",
			'selenium-last'       => "Last log entry",
			'selenium-schedule'   => "Run suite on these domains daily at $1",
			'selenium-create'     => "Create new tests",
			'selenium-createinfo' => "Use the [$1 Selenium IDE] environrment to create new tests.",
			'selenium-loginfo'    => "Information from tests run on schedule is logged in [[$1]]."
		));
	}
 
	# Add specialpage and create an instance of the class
	SpecialPage::addPage(new SpecialSelenium());
	$egSelenium = new Selenium();
}
 
/**
 * Needed in MediaWiki >1.8.0 for magic word hooks to work properly
 */
function efSeleniumLanguageGetMagic(&$magicWords, $langCode = 0) {
	global $egSeleniumMagic;
	$magicWords[$egSeleniumMagic] = array($langCode, $egSeleniumMagic);
	return true;
}

The GNU Project Debian Linux Ubuntu Linux Wikipedia Affiliate Button MediaWiki

Content under the www.organicdesign.co.nz domain is available under the Creative Commons Attribution-ShareAlike License