https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114681
Revision: 114681
Author: netbrain
Date: 2012-04-03 06:45:17 +0000 (Tue, 03 Apr 2012)
Log Message:
-----------
styled code properly.
Modified Paths:
--------------
trunk/extensions/SideBarMenu/SideBarMenu.hooks.php
trunk/extensions/SideBarMenu/SideBarMenu.i18n.php
trunk/extensions/SideBarMenu/SideBarMenu.php
trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css
trunk/extensions/SideBarMenu/includes/MenuItem.php
trunk/extensions/SideBarMenu/includes/MenuParser.php
trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js
trunk/extensions/SideBarMenu/test/MenuItemTest.php
trunk/extensions/SideBarMenu/test/MenuParserTest.php
Modified: trunk/extensions/SideBarMenu/SideBarMenu.hooks.php
===================================================================
--- trunk/extensions/SideBarMenu/SideBarMenu.hooks.php 2012-04-03 01:42:26 UTC
(rev 114680)
+++ trunk/extensions/SideBarMenu/SideBarMenu.hooks.php 2012-04-03 06:45:17 UTC
(rev 114681)
@@ -1,70 +1,67 @@
<?php
-class SideBarMenuHooks
-{
+class SideBarMenuHooks {
- public static function init(Parser &$parser){
- $parser->setHook('sidebarmenu','SideBarMenuHooks::renderFromTag');
- return true;
- }
+ public static function init(Parser &$parser) {
+ $parser->setHook('sidebarmenu',
'SideBarMenuHooks::renderFromTag');
+ return true;
+ }
- public static function renderFromTag( $input, array $args, Parser $parser,
PPFrame $frame ){
- $parser->getOutput()->addModules('ext.sidebarmenu.core');
+ public static function renderFromTag($input, array $args, Parser
$parser, PPFrame $frame) {
+ $parser->getOutput()->addModules('ext.sidebarmenu.core');
- //default settings
- $config = self::getTagConfig($args);
+ //default settings
+ $config = self::getTagConfig($args);
- $output = '<div class="sidebar-menu-container">';
- try{
- $menuParser = new MenuParser($config[SBM_EXPANDED]);
- $output .=
$parser->recursiveTagParse($menuParser->getMenuTree($input)->toHTML(),$frame);
- }catch(Exception $x){
- wfDebug("An error occured during parsing of: '$input' caught
exception: $x");
- return wfMsg('sidebarmenu-parser-input-error',$x->getMessage());
- }
- if($config[SBM_EDIT_LINK]){
- $output .=
Linker::link($frame->getTitle(),wfMsg('sidebarmenu-edit'),array('title' =>
wfMsg('sidebarmenu-edit')),array('action' => 'edit'));
+ $output = '<div class="sidebar-menu-container">';
+ try {
+ $menuParser = new MenuParser($config[SBM_EXPANDED]);
+ $output .=
$parser->recursiveTagParse($menuParser->getMenuTree($input)->toHTML(), $frame);
+ } catch (Exception $x) {
+ wfDebug("An error occured during parsing of: '$input'
caught exception: $x");
+ return wfMsg('sidebarmenu-parser-input-error',
$x->getMessage());
}
- $output .= '</div>';
+ if ($config[SBM_EDIT_LINK]) {
+ $output .= Linker::link($frame->getTitle(),
wfMsg('sidebarmenu-edit'), array('title' => wfMsg('sidebarmenu-edit')),
array('action' => 'edit'));
+ }
+ $output .= '</div>';
- $jsOutput = self::getJSConfig($config);
+ $jsOutput = self::getJSConfig($config);
- return array( $jsOutput.$output, 'noparse' => true, 'isHTML' => true );
- }
+ return array($jsOutput . $output, 'noparse' => true, 'isHTML'
=> true);
+ }
- public static function registerUnitTests( &$files ) {
- $testDir = dirname( __FILE__ ) . '/test/';
- $testFiles = scandir($testDir);
- foreach($testFiles as $testFile){
- $absoluteFile = $testDir . $testFile;
- if(is_file($absoluteFile)){
- $files[] = $absoluteFile;
- }
- }
- return true;
- }
+ public static function registerUnitTests(&$files) {
+ $testDir = dirname(__FILE__) . '/test/';
+ $testFiles = scandir($testDir);
+ foreach ($testFiles as $testFile) {
+ $absoluteFile = $testDir . $testFile;
+ if (is_file($absoluteFile)) {
+ $files[] = $absoluteFile;
+ }
+ }
+ return true;
+ }
- public static function registerMagicWords(&$magicWords, $langCode){
- $magicWords['sidebarmenu'] = array(0,'sidebarmenu');
- return true;
- }
+ public static function registerMagicWords(&$magicWords, $langCode) {
+ $magicWords['sidebarmenu'] = array(0, 'sidebarmenu');
+ return true;
+ }
- private static function minifyJavascript($js)
- {
- $js = preg_replace("/[\n\r]/", "", $js); //remove newlines
- $js = preg_replace("/[\s]{2,}/", " ", $js); //remove spaces
+ private static function minifyJavascript($js) {
+ $js = preg_replace("/[\n\r]/", "", $js); //remove newlines
+ $js = preg_replace("/[\s]{2,}/", " ", $js); //remove spaces
- return $js;
- }
+ return $js;
+ }
- private static function getAsJSEncodedString($s)
- {
- return "'$s'";
- }
+ private static function getAsJSEncodedString($s) {
+ return "'$s'";
+ }
- private static function getJSConfig($config){
- //javascript config output
- $jsOutput = Html::inlineScript("
+ private static function getJSConfig($config) {
+ //javascript config output
+ $jsOutput = Html::inlineScript("
var sidebarmenu = {
config: {
controls: {
@@ -77,18 +74,17 @@
}
};
");
- //minify js to prevent <p> tags to be rendered
- return self::minifyJavascript($jsOutput);
- }
+ //minify js to prevent <p> tags to be rendered
+ return self::minifyJavascript($jsOutput);
+ }
- private static function getTagConfig($args)
- {
- global $wgSideBarMenuConfig;
- $config[SBM_EXPANDED] = array_key_exists(SBM_EXPANDED, $args) ?
filter_var($args[SBM_EXPANDED], FILTER_VALIDATE_BOOLEAN) :
$wgSideBarMenuConfig[SBM_EXPANDED];
- $config[SBM_CONTROLS_SHOW] = array_key_exists(SBM_CONTROLS_SHOW,
$args) ? $args[SBM_CONTROLS_SHOW] :
(isset($wgSideBarMenuConfig[SBM_CONTROLS_SHOW]) ?
$wgSideBarMenuConfig[SBM_CONTROLS_SHOW] : '['.wfMsg('showtoc').']');
- $config[SBM_CONTROLS_HIDE] = array_key_exists(SBM_CONTROLS_HIDE,
$args) ? $args[SBM_CONTROLS_HIDE] :
(isset($wgSideBarMenuConfig[SBM_CONTROLS_HIDE]) ?
$wgSideBarMenuConfig[SBM_CONTROLS_HIDE] : '['.wfMsg('hidetoc').']');
- $config[SBM_JS_ANIMATE] = array_key_exists(SBM_JS_ANIMATE, $args) ?
$args[SBM_JS_ANIMATE] : $wgSideBarMenuConfig[SBM_JS_ANIMATE];
- $config[SBM_EDIT_LINK] = array_key_exists(SBM_EDIT_LINK, $args) ?
filter_var($args[SBM_EDIT_LINK], FILTER_VALIDATE_BOOLEAN) :
$wgSideBarMenuConfig[SBM_EDIT_LINK];
- return $config;
- }
+ private static function getTagConfig($args) {
+ global $wgSideBarMenuConfig;
+ $config[SBM_EXPANDED] = array_key_exists(SBM_EXPANDED, $args) ?
filter_var($args[SBM_EXPANDED], FILTER_VALIDATE_BOOLEAN) :
$wgSideBarMenuConfig[SBM_EXPANDED];
+ $config[SBM_CONTROLS_SHOW] =
array_key_exists(SBM_CONTROLS_SHOW, $args) ? $args[SBM_CONTROLS_SHOW] :
(isset($wgSideBarMenuConfig[SBM_CONTROLS_SHOW]) ?
$wgSideBarMenuConfig[SBM_CONTROLS_SHOW] : '[' . wfMsg('showtoc') . ']');
+ $config[SBM_CONTROLS_HIDE] =
array_key_exists(SBM_CONTROLS_HIDE, $args) ? $args[SBM_CONTROLS_HIDE] :
(isset($wgSideBarMenuConfig[SBM_CONTROLS_HIDE]) ?
$wgSideBarMenuConfig[SBM_CONTROLS_HIDE] : '[' . wfMsg('hidetoc') . ']');
+ $config[SBM_JS_ANIMATE] = array_key_exists(SBM_JS_ANIMATE,
$args) ? $args[SBM_JS_ANIMATE] : $wgSideBarMenuConfig[SBM_JS_ANIMATE];
+ $config[SBM_EDIT_LINK] = array_key_exists(SBM_EDIT_LINK, $args)
? filter_var($args[SBM_EDIT_LINK], FILTER_VALIDATE_BOOLEAN) :
$wgSideBarMenuConfig[SBM_EDIT_LINK];
+ return $config;
+ }
}
Modified: trunk/extensions/SideBarMenu/SideBarMenu.i18n.php
===================================================================
--- trunk/extensions/SideBarMenu/SideBarMenu.i18n.php 2012-04-03 01:42:26 UTC
(rev 114680)
+++ trunk/extensions/SideBarMenu/SideBarMenu.i18n.php 2012-04-03 06:45:17 UTC
(rev 114681)
@@ -9,15 +9,15 @@
$messages = array();
/** English
- * @author Kim Eik
+ * @author Kim Eik
*/
$messages['en'] = array(
- 'sidebarmenu-desc' => 'A simple sidebar menu
parser which creates collapsable/expandable menus and sub-menus',
- 'sidebarmenu-parser-input-error' => 'Parser returned with
error: $1',
- 'sidebarmenu-parser-syntax-error' => 'Could not parse "$1",
make sure the syntax is correct.',
- 'sidebarmenu-js-init-error' => 'Failed loading
JavaScript resources.',
- 'sidebarmenu-parser-menuitem-expanded-null' =>
'"parser.menuitem.expanded" should be true or false, instead it is null.',
- 'sidebarmenu-edit'
=> 'Edit'
+ 'sidebarmenu-desc' => 'A simple sidebar menu parser which creates
collapsable/expandable menus and sub-menus',
+ 'sidebarmenu-parser-input-error' => 'Parser returned with error: $1',
+ 'sidebarmenu-parser-syntax-error' => 'Could not parse "$1", make sure
the syntax is correct.',
+ 'sidebarmenu-js-init-error' => 'Failed loading JavaScript resources.',
+ 'sidebarmenu-parser-menuitem-expanded-null' =>
'"parser.menuitem.expanded" should be true or false, instead it is null.',
+ 'sidebarmenu-edit' => 'Edit'
);
/** Message documentation (Message documentation)
Modified: trunk/extensions/SideBarMenu/SideBarMenu.php
===================================================================
--- trunk/extensions/SideBarMenu/SideBarMenu.php 2012-04-03 01:42:26 UTC
(rev 114680)
+++ trunk/extensions/SideBarMenu/SideBarMenu.php 2012-04-03 06:45:17 UTC
(rev 114681)
@@ -1,7 +1,7 @@
<?php
if (!defined('MEDIAWIKI')) {
- die('Not an entry point.');
+ die('Not an entry point.');
}
//SideBarMenu constants
@@ -14,18 +14,18 @@
//default settings
$wgSideBarMenuConfig[SBM_CONTROLS_SHOW] = null;
-$wgSideBarMenuConfig[SBM_CONTROLS_HIDE]= null;
+$wgSideBarMenuConfig[SBM_CONTROLS_HIDE] = null;
$wgSideBarMenuConfig[SBM_JS_ANIMATE] = true;
$wgSideBarMenuConfig[SBM_EXPANDED] = true;
$wgSideBarMenuConfig[SBM_EDIT_LINK] = true;
$wgExtensionCredits['parserhook'][] = array(
- 'path' => __FILE__,
- 'name' => 'SideBarMenu',
- 'version' => 0.1,
- 'author' => 'Kim Eik',
- 'url' => 'https://www.mediawiki.org/wiki/Extension:SideBarMenu',
- 'descriptionmsg' => 'sidebarmenu-desc'
+ 'path' => __FILE__,
+ 'name' => 'SideBarMenu',
+ 'version' => 0.1,
+ 'author' => 'Kim Eik',
+ 'url' => 'https://www.mediawiki.org/wiki/Extension:SideBarMenu',
+ 'descriptionmsg' => 'sidebarmenu-desc'
);
@@ -39,7 +39,7 @@
$wgHooks['UnitTestsList'][] = 'SideBarMenuHooks::registerUnitTests';
//Autoload hooks
-$wgAutoloadClasses['SideBarMenuHooks'] = dirname( __FILE__ ) .
'/SideBarMenu.hooks.php';
+$wgAutoloadClasses['SideBarMenuHooks'] = dirname(__FILE__) .
'/SideBarMenu.hooks.php';
//Autoload classes
$wgMyExtensionIncludes = dirname(__FILE__) . '/includes';
@@ -48,25 +48,25 @@
$wgAutoloadClasses['MenuItem'] = $wgMyExtensionIncludes . '/MenuItem.php';
//i18n
-$wgExtensionMessagesFiles['SideBarMenu'] = dirname( __FILE__ ) .
'/SideBarMenu.i18n.php';
+$wgExtensionMessagesFiles['SideBarMenu'] = dirname(__FILE__) .
'/SideBarMenu.i18n.php';
//Resources
$wgResourceModules['ext.sidebarmenu.core'] = array(
- 'scripts' => array(
- 'js/ext.sidebarmenu.js'
- ),
- 'styles' => array(
- 'css/ext.sidebarmenu.css'
- ),
- 'dependencies' => array (
- 'jquery.ui.core',
- 'jquery.effects.core',
+ 'scripts' => array(
+ 'js/ext.sidebarmenu.js'
+ ),
+ 'styles' => array(
+ 'css/ext.sidebarmenu.css'
+ ),
+ 'dependencies' => array(
+ 'jquery.ui.core',
+ 'jquery.effects.core',
- ),
- 'messages' => array(
- 'sidebarmenu-js-init-error'
- ),
- 'group' => 'ext.sidebarmenu',
- 'localBasePath' => dirname( __FILE__ ),
- 'remoteExtPath' => 'SideBarMenu'
+ ),
+ 'messages' => array(
+ 'sidebarmenu-js-init-error'
+ ),
+ 'group' => 'ext.sidebarmenu',
+ 'localBasePath' => dirname(__FILE__),
+ 'remoteExtPath' => 'SideBarMenu'
);
Modified: trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css
===================================================================
--- trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css 2012-04-03
01:42:26 UTC (rev 114680)
+++ trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css 2012-04-03
06:45:17 UTC (rev 114681)
@@ -1,38 +1,38 @@
/* default SideBarMenu extension styling */
-.sidebar-menu-container{
+.sidebar-menu-container {
padding: 5px;
float: left;
clear: left;
margin: 5px;
}
-.sidebar-menu-item-collapsed .sidebar-menu{
+.sidebar-menu-item-collapsed .sidebar-menu {
display: none;
}
+
.sidebar-menu-item-expanded {
display: list-item;
}
-.sidebar-menu-0,.sidebar-menu-1{
+.sidebar-menu-0, .sidebar-menu-1 {
margin: 0px !important;
padding: 0px !important;
list-style: none;
}
-
-.sidebar-menu-item-1{
+.sidebar-menu-item-1 {
margin: 10px 0px;
background-color: #f2f2f2;
}
-.sidebar-menu-item-1 > .sidebar-menu-item-text-container{
+.sidebar-menu-item-1 > .sidebar-menu-item-text-container {
border: 1px solid #aaa;
border-bottom: 0px;
padding: 3px;
}
-.sidebar-menu-item-2{
+.sidebar-menu-item-2 {
background-color: #f9f9f9;
border: 1px solid #aaa;
border-bottom: 0px;
@@ -40,11 +40,11 @@
margin-bottom: 0px !important;
}
-.sidebar-menu-item-text-container{
+.sidebar-menu-item-text-container {
position: relative;
}
-.sidebar-menu-item-controls{
+.sidebar-menu-item-controls {
float: right;
color: #0645AD;
cursor: pointer;
@@ -55,7 +55,7 @@
user-select: none;
}
-.sidebar-menu-item-1{
+.sidebar-menu-item-1 {
border-bottom: 1px solid #aaa;
}
Modified: trunk/extensions/SideBarMenu/includes/MenuItem.php
===================================================================
--- trunk/extensions/SideBarMenu/includes/MenuItem.php 2012-04-03 01:42:26 UTC
(rev 114680)
+++ trunk/extensions/SideBarMenu/includes/MenuItem.php 2012-04-03 06:45:17 UTC
(rev 114681)
@@ -1,125 +1,113 @@
<?php
-class MenuItem
-{
- private $expanded = false;
- private $children = array();
- private $parent = null;
- private $text;
+class MenuItem {
+ private $expanded = false;
+ private $children = array();
+ private $parent = null;
+ private $text;
- public function setExpanded($expanded)
- {
- if(is_null($expanded)){
- throw new
InvalidArgumentException(wfMsg('sidebarmenu-parser-menuitem-expanded-null'));
- }else{
- $this->expanded = $expanded;
- }
- }
+ public function setExpanded($expanded) {
+ if (is_null($expanded)) {
+ throw new
InvalidArgumentException(wfMsg('sidebarmenu-parser-menuitem-expanded-null'));
+ } else {
+ $this->expanded = $expanded;
+ }
+ }
- public function isExpanded()
- {
- return $this->expanded;
- }
+ public function isExpanded() {
+ return $this->expanded;
+ }
- public function setText($link)
- {
- $this->text = $link;
- }
+ public function setText($link) {
+ $this->text = $link;
+ }
- public function getText()
- {
- return $this->text;
- }
+ public function getText() {
+ return $this->text;
+ }
- public function addChild(MenuItem $child)
- {
- if(!in_array($child,$this->children)){
- $this->children[] = $child;
- $child->setParent($this);
- }
- }
+ public function addChild(MenuItem $child) {
+ if (!in_array($child, $this->children)) {
+ $this->children[] = $child;
+ $child->setParent($this);
+ }
+ }
- public function getChildren()
- {
- return $this->children;
- }
+ public function getChildren() {
+ return $this->children;
+ }
- public function hasChildren()
- {
- return sizeof($this->children) > 0;
- }
+ public function hasChildren() {
+ return sizeof($this->children) > 0;
+ }
- public function setParent(MenuItem $parent)
- {
- if($this->parent !== $parent){
- $this->parent = $parent;
- $parent->addChild($this);
- }
- }
+ public function setParent(MenuItem $parent) {
+ if ($this->parent !== $parent) {
+ $this->parent = $parent;
+ $parent->addChild($this);
+ }
+ }
- public function getParent()
- {
- return $this->parent;
- }
-
- public function isRoot(){
- return is_null($this->parent);
- }
+ public function getParent() {
+ return $this->parent;
+ }
- public function getLevel(){
- if($this->isRoot()){
- return 0;
- }else{
- return 1+$this->getParent()->getLevel();
- }
- }
+ public function isRoot() {
+ return is_null($this->parent);
+ }
- public function toHTML()
- {
- $output = "";
- if($this->isRoot()){
- $output .= $this->childrenToHTML();
- }else{
- $itemClasses[] = 'sidebar-menu-item';
- $itemClasses[] = 'sidebar-menu-item-'.$this->getLevel();
+ public function getLevel() {
+ if ($this->isRoot()) {
+ return 0;
+ } else {
+ return 1 + $this->getParent()->getLevel();
+ }
+ }
- if($this->hasChildren()){
- $itemClasses[] = $this->isExpanded() ?
'sidebar-menu-item-expanded' : 'sidebar-menu-item-collapsed';
- }
+ public function toHTML() {
+ $output = "";
+ if ($this->isRoot()) {
+ $output .= $this->childrenToHTML();
+ } else {
+ $itemClasses[] = 'sidebar-menu-item';
+ $itemClasses[] = 'sidebar-menu-item-' .
$this->getLevel();
- $textClasses[] = 'sidebar-menu-item-text';
- $textClasses[] = 'sidebar-menu-item-text-'.$this->getLevel();
+ if ($this->hasChildren()) {
+ $itemClasses[] = $this->isExpanded() ?
'sidebar-menu-item-expanded' : 'sidebar-menu-item-collapsed';
+ }
- $output .= "<li class=\"".join(' ',$itemClasses)."\">";
- $output .= "<div class=\"sidebar-menu-item-text-container\">";
- $output .= "<span class=\"".join('
',$textClasses)."\">".$this->getText()."</span>";
+ $textClasses[] = 'sidebar-menu-item-text';
+ $textClasses[] = 'sidebar-menu-item-text-' .
$this->getLevel();
- if($this->hasChildren()){
- $output .= "<span
class=\"sidebar-menu-item-controls\"></span>";
- }
+ $output .= "<li class=\"" . join(' ', $itemClasses) .
"\">";
+ $output .= "<div
class=\"sidebar-menu-item-text-container\">";
+ $output .= "<span class=\"" . join(' ', $textClasses) .
"\">" . $this->getText() . "</span>";
- $output .= "</div>";
- $output .= $this->childrenToHTML();
- $output .= "</li>";
- }
+ if ($this->hasChildren()) {
+ $output .= "<span
class=\"sidebar-menu-item-controls\"></span>";
+ }
- return $output;
- }
+ $output .= "</div>";
+ $output .= $this->childrenToHTML();
+ $output .= "</li>";
+ }
- private function childrenToHTML()
- {
- if($this->hasChildren()){
- $menuClasses[] = 'sidebar-menu';
- $menuClasses[] = 'sidebar-menu-'.$this->getLevel();
+ return $output;
+ }
- $output = "<ul class=\"".join(' ',$menuClasses)."\">";
- foreach ($this->getChildren() as $child) {
- $output .= $child->toHTML();
- }
- $output .= "</ul>";
- return $output;
- }
- }
+ private function childrenToHTML() {
+ if ($this->hasChildren()) {
+ $menuClasses[] = 'sidebar-menu';
+ $menuClasses[] = 'sidebar-menu-' . $this->getLevel();
+ $output = "<ul class=\"" . join(' ', $menuClasses) .
"\">";
+ foreach ($this->getChildren() as $child) {
+ $output .= $child->toHTML();
+ }
+ $output .= "</ul>";
+ return $output;
+ }
+ }
+
}
Modified: trunk/extensions/SideBarMenu/includes/MenuParser.php
===================================================================
--- trunk/extensions/SideBarMenu/includes/MenuParser.php 2012-04-03
01:42:26 UTC (rev 114680)
+++ trunk/extensions/SideBarMenu/includes/MenuParser.php 2012-04-03
06:45:17 UTC (rev 114681)
@@ -1,123 +1,119 @@
<?php
class MenuParser {
- private $expandedByDefault;
+ private $expandedByDefault;
- function __construct($expandedByDefault)
- {
- $this->expandedByDefault = $expandedByDefault;
- }
+ function __construct($expandedByDefault) {
+ $this->expandedByDefault = $expandedByDefault;
+ }
- public function isValidInput($data)
- {
- return !(is_null($data) || strlen($data) == 0);
- }
+ public function isValidInput($data) {
+ return !(is_null($data) || strlen($data) == 0);
+ }
- public function getLevel($line)
- {
- return substr_count($line, '*');
- }
+ public function getLevel($line) {
+ return substr_count($line, '*');
+ }
- public function getExpandedParameter($line)
- {
- if ($this->startsWith($line, '+')) {
- return true;
- } else if($this->startsWith($line, '-')) {
- return false;
- }
- return $this->expandedByDefault;
- }
+ public function getExpandedParameter($line) {
+ if ($this->startsWith($line, '+')) {
+ return true;
+ } else {
+ if ($this->startsWith($line, '-')) {
+ return false;
+ }
+ }
+ return $this->expandedByDefault;
+ }
- public function getTextParameter($line)
- {
- return preg_filter("/\+|\-?\**(.*)/", "$1", $line);
- }
+ public function getTextParameter($line) {
+ return preg_filter("/\+|\-?\**(.*)/", "$1", $line);
+ }
- public function getMenuTree($data){
- if($this->isValidInput($data)){
- $data = $this->cleanupData($data);
- $root = new MenuItem();
- $root->setExpanded(true);
- $arrayData = $this->parseDataIntoHierarchicalArray($data);
- $this->addChildrenToMenuItemFromArrayData($root,$arrayData);
- return $root;
- }
- return null;
- }
+ public function getMenuTree($data) {
+ if ($this->isValidInput($data)) {
+ $data = $this->cleanupData($data);
+ $root = new MenuItem();
+ $root->setExpanded(true);
+ $arrayData =
$this->parseDataIntoHierarchicalArray($data);
+ $this->addChildrenToMenuItemFromArrayData($root,
$arrayData);
+ return $root;
+ }
+ return null;
+ }
- public function getMenuItem($line)
- {
- $line = trim($line);
- if($this->isValidInput($line)){
- $menuItem = new MenuItem();
- $menuItem->setExpanded($this->getExpandedParameter($line));
- $menuItem->setText($this->getTextParameter($line));
- return $menuItem;
- }else{
- throw new InvalidArgumentException();
- }
- }
+ public function getMenuItem($line) {
+ $line = trim($line);
+ if ($this->isValidInput($line)) {
+ $menuItem = new MenuItem();
+
$menuItem->setExpanded($this->getExpandedParameter($line));
+ $menuItem->setText($this->getTextParameter($line));
+ return $menuItem;
+ } else {
+ throw new InvalidArgumentException();
+ }
+ }
- public function parseDataIntoHierarchicalArray($data)
- {
- $rootArray = array();
- $prevLevel = 0;
- $levelArray[0] = &$rootArray;
- foreach(preg_split("/\n/",$data) as $line){
- $level = $this->getLevel($line);
- if($level == $prevLevel){
- $levelArray[$level][] = $line;
- }else if($level-1 == $prevLevel){
- //child of previous line
- $parent = array_pop($levelArray[$level-1]);
- $levelArray[$level-1][$parent][] = $line;
- $levelArray[$level] = &$levelArray[$level-1][$parent];
- }else if($level < $prevLevel){
- //back some levels
- $levelArray[$level][] = $line;
- }else{
- //syntax error
- throw new
InvalidArgumentException(wfMsg('sidebarmenu-parser-syntax-error',$line));
- }
- $prevLevel = $level;
- }
- return $rootArray;
- }
+ public function parseDataIntoHierarchicalArray($data) {
+ $rootArray = array();
+ $prevLevel = 0;
+ $levelArray[0] = &$rootArray;
+ foreach (preg_split("/\n/", $data) as $line) {
+ $level = $this->getLevel($line);
+ if ($level == $prevLevel) {
+ $levelArray[$level][] = $line;
+ } else {
+ if ($level - 1 == $prevLevel) {
+ //child of previous line
+ $parent = array_pop($levelArray[$level
- 1]);
+ $levelArray[$level - 1][$parent][] =
$line;
+ $levelArray[$level] =
&$levelArray[$level - 1][$parent];
+ } else {
+ if ($level < $prevLevel) {
+ //back some levels
+ $levelArray[$level][] = $line;
+ } else {
+ //syntax error
+ throw new
InvalidArgumentException(wfMsg('sidebarmenu-parser-syntax-error', $line));
+ }
+ }
+ }
+ $prevLevel = $level;
+ }
+ return $rootArray;
+ }
- public function addChildrenToMenuItemFromArrayData(MenuItem
&$rootMenuItem,$arrayData)
- {
- foreach ($arrayData as $key => $val) {
- if (is_string($key)) {
- $menuItem = $this->getMenuItem($key);
- $rootMenuItem->addChild($menuItem);
- $this->addChildrenToMenuItemFromArrayData($menuItem,$val);
- } else {
- $menuItem = $this->getMenuItem($val);
- $rootMenuItem->addChild($menuItem);
- }
- }
- }
+ public function addChildrenToMenuItemFromArrayData(MenuItem
&$rootMenuItem, $arrayData) {
+ foreach ($arrayData as $key => $val) {
+ if (is_string($key)) {
+ $menuItem = $this->getMenuItem($key);
+ $rootMenuItem->addChild($menuItem);
+
$this->addChildrenToMenuItemFromArrayData($menuItem, $val);
+ } else {
+ $menuItem = $this->getMenuItem($val);
+ $rootMenuItem->addChild($menuItem);
+ }
+ }
+ }
- private static function startsWith($haystack, $needle)
- {
- $length = strlen($needle);
- return (substr($haystack, 0, $length) === $needle);
- }
+ private static function startsWith($haystack, $needle) {
+ $length = strlen($needle);
+ return (substr($haystack, 0, $length) === $needle);
+ }
- private static function cleanupData($data){
- return trim($data,"\n ");
- }
+ private static function cleanupData($data) {
+ return trim($data, "\n ");
+ }
- private static function removeLineBreaksFromStartOfString($data)
- {
- while (self::startsWith($data, "\n")) {
- $data = substr($data, 1);
- }
- return $data;
- }
+ private static function removeLineBreaksFromStartOfString($data) {
+ while (self::startsWith($data, "\n")) {
+ $data = substr($data, 1);
+ }
+ return $data;
+ }
}
Modified: trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js
===================================================================
--- trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js 2012-04-03 01:42:26 UTC
(rev 114680)
+++ trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js 2012-04-03 06:45:17 UTC
(rev 114681)
@@ -1,5 +1,5 @@
-$(document).ready(function(){
- if(typeof(sidebarmenu) !== 'undefined'){
+$(document).ready(function () {
+ if (typeof(sidebarmenu) !== 'undefined') {
var showText = sidebarmenu.config.controls.show;
var hideText = sidebarmenu.config.controls.hide;
var useAnimations = sidebarmenu.config.js.animate;
@@ -10,28 +10,28 @@
}
initControls();
- $('.sidebar-menu-item-controls').click(function(){
+ $('.sidebar-menu-item-controls').click(function () {
var currentText = $(this).text();
- if(currentText == showText){
+ if (currentText == showText) {
$(this).text(hideText);
- }else if(currentText == hideText){
+ } else if (currentText == hideText) {
$(this).text(showText);
}
- if(useAnimations){
- //A little "ugly" hack to prevent some gui glitches.
-
$(this).parents('.sidebar-menu-item:first').toggleClass('sidebar-menu-item-collapsed
sidebar-menu-item-expanded',250).children('.sidebar-menu').show(0,function(){
+ if (useAnimations) {
+ //A little "ugly" hack to prevent some gui glitches.
+
$(this).parents('.sidebar-menu-item:first').toggleClass('sidebar-menu-item-collapsed
sidebar-menu-item-expanded', 250).children('.sidebar-menu').show(0, function
() {
var _this = $(this);
- setTimeout(function(){
- _this.css('display','')
- },250);
+ setTimeout(function () {
+ _this.css('display', '')
+ }, 250);
});
- }else{
+ } else {
$(this).parents('.sidebar-menu-item:first').toggleClass('sidebar-menu-item-collapsed
sidebar-menu-item-expanded');
}
});
- }else{
+ } else {
$('.sidebar-menu-container').prepend(mw.msg('sidebar-js-init-error'));
}
});
\ No newline at end of file
Modified: trunk/extensions/SideBarMenu/test/MenuItemTest.php
===================================================================
--- trunk/extensions/SideBarMenu/test/MenuItemTest.php 2012-04-03 01:42:26 UTC
(rev 114680)
+++ trunk/extensions/SideBarMenu/test/MenuItemTest.php 2012-04-03 06:45:17 UTC
(rev 114681)
@@ -1,104 +1,102 @@
<?php
-class MenuItemTest extends MediaWikiTestCase
-{
- private $menuItem;
+class MenuItemTest extends MediaWikiTestCase {
+ private $menuItem;
- protected function setUp()
- {
- $this->menuItem = new MenuItem();
- }
+ protected function setUp() {
+ $this->menuItem = new MenuItem();
+ }
- public function testIsRoot(){
- $this->assertTrue($this->menuItem->isRoot());
- }
+ public function testIsRoot() {
+ $this->assertTrue($this->menuItem->isRoot());
+ }
- public function testIsNotRoot(){
- $this->menuItem->setParent(new MenuItem());
- $this->assertFalse($this->menuItem->isRoot());
- }
+ public function testIsNotRoot() {
+ $this->menuItem->setParent(new MenuItem());
+ $this->assertFalse($this->menuItem->isRoot());
+ }
- public function testGetLevelWhenRoot(){
- $this->assertEquals(0,$this->menuItem->getLevel());
- }
+ public function testGetLevelWhenRoot() {
+ $this->assertEquals(0, $this->menuItem->getLevel());
+ }
- public function testGetLevelWhenChild(){
- $this->menuItem->setParent(new MenuItem());
- $this->assertEquals(1,$this->menuItem->getLevel());
- }
+ public function testGetLevelWhenChild() {
+ $this->menuItem->setParent(new MenuItem());
+ $this->assertEquals(1, $this->menuItem->getLevel());
+ }
- public function testGetLevelWhenSeveralChildren(){
- $prev = $this->menuItem;
- for($x = 0; $x < 10; $x++){
- $child = new MenuItem();
- $child->setParent($prev);
- $prev = $child;
+ public function testGetLevelWhenSeveralChildren() {
+ $prev = $this->menuItem;
+ for ($x = 0; $x < 10; $x++) {
+ $child = new MenuItem();
+ $child->setParent($prev);
+ $prev = $child;
- }
- $this->assertEquals(10,$prev->getLevel());
- }
+ }
+ $this->assertEquals(10, $prev->getLevel());
+ }
- public function testAddChildAlsoAddsParent(){
- $child = new MenuItem();
- $this->menuItem->addChild($child);
- $this->assertContains($child,$this->menuItem->getChildren());
- $this->assertEquals($child->getParent(),$this->menuItem);
- }
+ public function testAddChildAlsoAddsParent() {
+ $child = new MenuItem();
+ $this->menuItem->addChild($child);
+ $this->assertContains($child, $this->menuItem->getChildren());
+ $this->assertEquals($child->getParent(), $this->menuItem);
+ }
- public function testAddSameChildSeveralTimes(){
- $child = new MenuItem();
- for($x = 0; $x < 3; $x++){
- $this->menuItem->addChild($child);
- }
- $this->assertEquals(1,sizeof($this->menuItem->getChildren()));
- }
+ public function testAddSameChildSeveralTimes() {
+ $child = new MenuItem();
+ for ($x = 0; $x < 3; $x++) {
+ $this->menuItem->addChild($child);
+ }
+ $this->assertEquals(1, sizeof($this->menuItem->getChildren()));
+ }
- public function testAddParentAlsoAddsChild(){
- $parent = new MenuItem();
- $this->menuItem->setParent($parent);
- $this->assertContains($this->menuItem,$parent->getChildren());
- }
+ public function testAddParentAlsoAddsChild() {
+ $parent = new MenuItem();
+ $this->menuItem->setParent($parent);
+ $this->assertContains($this->menuItem, $parent->getChildren());
+ }
- public function testToHTMLOnRootMenuItem(){
- $html = $this->menuItem->toHTML();
- $this->assertEquals("",$html);
- }
+ public function testToHTMLOnRootMenuItem() {
+ $html = $this->menuItem->toHTML();
+ $this->assertEquals("", $html);
+ }
- public function testToHTMLOnProperMenuItem(){
- $menuItemChild = new MenuItem();
- $menuItemChild->setText("MenuItem1");
- $this->menuItem->addChild($menuItemChild);
- $html = $this->menuItem->toHTML();
- $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li
class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem1</span></div></li></ul>',$html);
- }
+ public function testToHTMLOnProperMenuItem() {
+ $menuItemChild = new MenuItem();
+ $menuItemChild->setText("MenuItem1");
+ $this->menuItem->addChild($menuItemChild);
+ $html = $this->menuItem->toHTML();
+ $this->assertEquals('<ul class="sidebar-menu
sidebar-menu-0"><li class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem1</span></div></li></ul>', $html);
+ }
- public function testToHTMLOnSeveralMenuItems(){
- $menuItemChild1 = new MenuItem();
- $menuItemChild1->setText("MenuItem1");
- $menuItemChild2 = new MenuItem();
- $menuItemChild2->setText("MenuItem2");
+ public function testToHTMLOnSeveralMenuItems() {
+ $menuItemChild1 = new MenuItem();
+ $menuItemChild1->setText("MenuItem1");
+ $menuItemChild2 = new MenuItem();
+ $menuItemChild2->setText("MenuItem2");
- $this->menuItem->addChild($menuItemChild1);
- $this->menuItem->addChild($menuItemChild2);
+ $this->menuItem->addChild($menuItemChild1);
+ $this->menuItem->addChild($menuItemChild2);
- $html = $this->menuItem->toHTML();
- $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li
class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem1</span></div></li><li
class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem2</span></div></li></ul>',$html);
- }
+ $html = $this->menuItem->toHTML();
+ $this->assertEquals('<ul class="sidebar-menu
sidebar-menu-0"><li class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem1</span></div></li><li
class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem2</span></div></li></ul>', $html);
+ }
- public function testToHTMLOnSeveralMenuItemsWithSublevels(){
- $menuItemChild1 = new MenuItem();
- $menuItemChild1->setText("MenuItem1");
- $menuItemChild2 = new MenuItem();
- $menuItemChild2->setText("MenuItem2");
+ public function testToHTMLOnSeveralMenuItemsWithSublevels() {
+ $menuItemChild1 = new MenuItem();
+ $menuItemChild1->setText("MenuItem1");
+ $menuItemChild2 = new MenuItem();
+ $menuItemChild2->setText("MenuItem2");
- $this->menuItem->addChild($menuItemChild1);
- $this->menuItem->addChild($menuItemChild2);
+ $this->menuItem->addChild($menuItemChild1);
+ $this->menuItem->addChild($menuItemChild2);
- $subLevel1 = new MenuItem();
- $subLevel1->setText("SubMenuItem1");
- $subLevel1->setParent($menuItemChild2);
+ $subLevel1 = new MenuItem();
+ $subLevel1->setText("SubMenuItem1");
+ $subLevel1->setParent($menuItemChild2);
- $html = $this->menuItem->toHTML();
- $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li
class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem1</span></div></li><li
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem2</span><span
class="sidebar-menu-item-controls"></span></div><ul class="sidebar-menu
sidebar-menu-1"><li class="sidebar-menu-item sidebar-menu-item-2"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-2">SubMenuItem1</span></div></li></ul></li></ul>',$html);
- }
+ $html = $this->menuItem->toHTML();
+ $this->assertEquals('<ul class="sidebar-menu
sidebar-menu-0"><li class="sidebar-menu-item sidebar-menu-item-1"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem1</span></div></li><li
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-1">MenuItem2</span><span
class="sidebar-menu-item-controls"></span></div><ul class="sidebar-menu
sidebar-menu-1"><li class="sidebar-menu-item sidebar-menu-item-2"><div
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text
sidebar-menu-item-text-2">SubMenuItem1</span></div></li></ul></li></ul>',
$html);
+ }
}
Modified: trunk/extensions/SideBarMenu/test/MenuParserTest.php
===================================================================
--- trunk/extensions/SideBarMenu/test/MenuParserTest.php 2012-04-03
01:42:26 UTC (rev 114680)
+++ trunk/extensions/SideBarMenu/test/MenuParserTest.php 2012-04-03
06:45:17 UTC (rev 114681)
@@ -1,213 +1,211 @@
<?php
-class MenuParserTest extends MediaWikiTestCase
-{
+class MenuParserTest extends MediaWikiTestCase {
- private $menuParser;
+ private $menuParser;
- protected function setUp()
- {
- $this->menuParser = new MenuParser(true);
- }
+ protected function setUp() {
+ $this->menuParser = new MenuParser(true);
+ }
- public function testValidInputWhenNull(){
- $this->assertFalse($this->menuParser->isValidInput(null));
- }
+ public function testValidInputWhenNull() {
+ $this->assertFalse($this->menuParser->isValidInput(null));
+ }
- public function testValidInputWhenEmpty(){
- $this->assertFalse($this->menuParser->isValidInput(""));
- }
+ public function testValidInputWhenEmpty() {
+ $this->assertFalse($this->menuParser->isValidInput(""));
+ }
- public function testValidInput(){
- $this->assertTrue($this->menuParser->isValidInput("+MenuItem"));
- }
+ public function testValidInput() {
+ $this->assertTrue($this->menuParser->isValidInput("+MenuItem"));
+ }
- public function testGetLevelWhenNull(){
- $this->assertEquals(0,$this->menuParser->getLevel(null));
- }
+ public function testGetLevelWhenNull() {
+ $this->assertEquals(0, $this->menuParser->getLevel(null));
+ }
- public function testGetLevelWhenEmpty(){
- $this->assertEquals(0,$this->menuParser->getLevel(""));
- }
+ public function testGetLevelWhenEmpty() {
+ $this->assertEquals(0, $this->menuParser->getLevel(""));
+ }
- public function testGetLevelWhenValidButNoStars(){
- $this->assertEquals(0,$this->menuParser->getLevel(""));
- }
+ public function testGetLevelWhenValidButNoStars() {
+ $this->assertEquals(0, $this->menuParser->getLevel(""));
+ }
- public function testGetLevelWithValid(){
- $this->assertEquals(3,$this->menuParser->getLevel("***MenuItem"));
- }
+ public function testGetLevelWithValid() {
+ $this->assertEquals(3,
$this->menuParser->getLevel("***MenuItem"));
+ }
- public function testGetExpandedParameterWhenNoneSupplied(){
- $this->menuParser = new MenuParser(true);
- $this->assertTrue($this->menuParser->getExpandedParameter("MenuItem"));
- $this->menuParser = new MenuParser(false);
-
$this->assertFalse($this->menuParser->getExpandedParameter("MenuItem"));
- }
+ public function testGetExpandedParameterWhenNoneSupplied() {
+ $this->menuParser = new MenuParser(true);
+
$this->assertTrue($this->menuParser->getExpandedParameter("MenuItem"));
+ $this->menuParser = new MenuParser(false);
+
$this->assertFalse($this->menuParser->getExpandedParameter("MenuItem"));
+ }
- public function testGetExpandedParameterWhenNotExpanded(){
-
$this->assertFalse($this->menuParser->getExpandedParameter("-MenuItem"));
- }
+ public function testGetExpandedParameterWhenNotExpanded() {
+
$this->assertFalse($this->menuParser->getExpandedParameter("-MenuItem"));
+ }
- public function testGetExpandedParameterWhenExpanded(){
-
$this->assertTrue($this->menuParser->getExpandedParameter("+MenuItem"));
- }
+ public function testGetExpandedParameterWhenExpanded() {
+
$this->assertTrue($this->menuParser->getExpandedParameter("+MenuItem"));
+ }
- public function testGetTextParameter(){
-
$this->assertEquals("MenuItem",$this->menuParser->getTextParameter("+***MenuItem"));
-
$this->assertEquals("+MenuItem",$this->menuParser->getTextParameter("+***+MenuItem"));
-
$this->assertEquals("MenuItem",$this->menuParser->getTextParameter("-MenuItem"));
-
$this->assertEquals("MenuItem",$this->menuParser->getTextParameter("-*MenuItem"));
-
$this->assertEquals("MenuItem",$this->menuParser->getTextParameter("MenuItem"));
-
$this->assertEquals("+*MenuItem",$this->menuParser->getTextParameter("+***+*MenuItem"));
- }
+ public function testGetTextParameter() {
+ $this->assertEquals("MenuItem",
$this->menuParser->getTextParameter("+***MenuItem"));
+ $this->assertEquals("+MenuItem",
$this->menuParser->getTextParameter("+***+MenuItem"));
+ $this->assertEquals("MenuItem",
$this->menuParser->getTextParameter("-MenuItem"));
+ $this->assertEquals("MenuItem",
$this->menuParser->getTextParameter("-*MenuItem"));
+ $this->assertEquals("MenuItem",
$this->menuParser->getTextParameter("MenuItem"));
+ $this->assertEquals("+*MenuItem",
$this->menuParser->getTextParameter("+***+*MenuItem"));
+ }
- public function testGetMenuItemWhenInputIsNull(){
- $this->setExpectedException('InvalidArgumentException');
- $this->assertNull($this->menuParser->getMenuItem(null));
- }
+ public function testGetMenuItemWhenInputIsNull() {
+ $this->setExpectedException('InvalidArgumentException');
+ $this->assertNull($this->menuParser->getMenuItem(null));
+ }
- public function testGetMenuItemWhenInputIsEmpty(){
- $this->setExpectedException('InvalidArgumentException');
- $this->assertNull($this->menuParser->getMenuItem(""));
- }
+ public function testGetMenuItemWhenInputIsEmpty() {
+ $this->setExpectedException('InvalidArgumentException');
+ $this->assertNull($this->menuParser->getMenuItem(""));
+ }
- public function testGetMenuItemWhenInputIsValid(){
- $data = "MenuItem";
- $menuItem = $this->menuParser->getMenuItem($data);
- $this->assertNotNull($menuItem);
- $this->assertEquals($data,$menuItem->getText());
- $this->assertTrue($menuItem->isExpanded());
- }
+ public function testGetMenuItemWhenInputIsValid() {
+ $data = "MenuItem";
+ $menuItem = $this->menuParser->getMenuItem($data);
+ $this->assertNotNull($menuItem);
+ $this->assertEquals($data, $menuItem->getText());
+ $this->assertTrue($menuItem->isExpanded());
+ }
- public function testGetMenuItemWhenInputIsValidAndExpandIsSet(){
- $text = "MenuItem";
- $data = "+".$text;
- $menuItem = $this->menuParser->getMenuItem($data);
- $this->assertNotNull($menuItem);
- $this->assertEquals($text,$menuItem->getText());
- $this->assertTrue($menuItem->isExpanded());
- }
+ public function testGetMenuItemWhenInputIsValidAndExpandIsSet() {
+ $text = "MenuItem";
+ $data = "+" . $text;
+ $menuItem = $this->menuParser->getMenuItem($data);
+ $this->assertNotNull($menuItem);
+ $this->assertEquals($text, $menuItem->getText());
+ $this->assertTrue($menuItem->isExpanded());
+ }
- public function testParseDataIntoHierarchicalArray(){
- $data = "MenuItem";
- $array = $this->menuParser->parseDataIntoHierarchicalArray($data);
- $this->assertNotNull($array);
- $this->assertEquals($data,$array[0]);
- }
+ public function testParseDataIntoHierarchicalArray() {
+ $data = "MenuItem";
+ $array =
$this->menuParser->parseDataIntoHierarchicalArray($data);
+ $this->assertNotNull($array);
+ $this->assertEquals($data, $array[0]);
+ }
- public function testParseDataIntoHierarchicalArrayWithSubLevel(){
- $lines = array("MenuItem","*SubMenuItem");
- $data = join("\n",$lines);
- $array = $this->menuParser->parseDataIntoHierarchicalArray($data);
- $this->assertNotNull($array);
- $this->assertArrayHasKey($lines[0],$array);
- $this->assertEquals(
- array(
- 'MenuItem' => array(
- '*SubMenuItem'
- )
- ),$array
- );
- }
+ public function testParseDataIntoHierarchicalArrayWithSubLevel() {
+ $lines = array("MenuItem", "*SubMenuItem");
+ $data = join("\n", $lines);
+ $array =
$this->menuParser->parseDataIntoHierarchicalArray($data);
+ $this->assertNotNull($array);
+ $this->assertArrayHasKey($lines[0], $array);
+ $this->assertEquals(
+ array(
+ 'MenuItem' => array(
+ '*SubMenuItem'
+ )
+ ), $array
+ );
+ }
- public function testParseDataIntoHierarchicalArrayWithSeveralSubLevels(){
- $lines =
array("MenuItem","*SubMenuItem","*SubMenuItem2","**SubMenuItemOf2");
- $data = join("\n",$lines);
- $array = $this->menuParser->parseDataIntoHierarchicalArray($data);
- $this->assertNotNull($array);
- $this->assertEquals(
- array(
- 'MenuItem' => array(
- '*SubMenuItem',
- '*SubMenuItem2' => array(
- '**SubMenuItemOf2'
- )
- )
- ),$array
- );
- }
+ public function
testParseDataIntoHierarchicalArrayWithSeveralSubLevels() {
+ $lines = array("MenuItem", "*SubMenuItem", "*SubMenuItem2",
"**SubMenuItemOf2");
+ $data = join("\n", $lines);
+ $array =
$this->menuParser->parseDataIntoHierarchicalArray($data);
+ $this->assertNotNull($array);
+ $this->assertEquals(
+ array(
+ 'MenuItem' => array(
+ '*SubMenuItem',
+ '*SubMenuItem2' => array(
+ '**SubMenuItemOf2'
+ )
+ )
+ ), $array
+ );
+ }
- public function testParseDataIntoHierarchicalArrayWithSubLevelAndBack(){
- $lines = array("MenuItem","*SubMenuItem","MenuItem2");
- $data = join("\n",$lines);
- $array = $this->menuParser->parseDataIntoHierarchicalArray($data);
- $this->assertNotNull($array);
- $this->assertEquals(
- array(
- 'MenuItem' => array(
- '*SubMenuItem'
- ),
- 'MenuItem2'
- ),$array
- );
- }
+ public function testParseDataIntoHierarchicalArrayWithSubLevelAndBack()
{
+ $lines = array("MenuItem", "*SubMenuItem", "MenuItem2");
+ $data = join("\n", $lines);
+ $array =
$this->menuParser->parseDataIntoHierarchicalArray($data);
+ $this->assertNotNull($array);
+ $this->assertEquals(
+ array(
+ 'MenuItem' => array(
+ '*SubMenuItem'
+ ),
+ 'MenuItem2'
+ ), $array
+ );
+ }
- public function
testParseDataIntoHierarchicalArrayWithSubLevelAndBackSeveralLevels(){
- $lines =
array("MenuItem","*SubMenuItem1","**SubMenuItem2","***SubMenuItem3","MenuItem2");
- $data = join("\n",$lines);
- $array = $this->menuParser->parseDataIntoHierarchicalArray($data);
- $this->assertNotNull($array);
- $this->assertEquals(
- array(
- 'MenuItem' => array(
- '*SubMenuItem1' => array(
- '**SubMenuItem2' => array(
- '***SubMenuItem3'
- )
- )
- ),
- 'MenuItem2'
- ),$array
- );
- }
+ public function
testParseDataIntoHierarchicalArrayWithSubLevelAndBackSeveralLevels() {
+ $lines = array("MenuItem", "*SubMenuItem1", "**SubMenuItem2",
"***SubMenuItem3", "MenuItem2");
+ $data = join("\n", $lines);
+ $array =
$this->menuParser->parseDataIntoHierarchicalArray($data);
+ $this->assertNotNull($array);
+ $this->assertEquals(
+ array(
+ 'MenuItem' => array(
+ '*SubMenuItem1' => array(
+ '**SubMenuItem2' => array(
+ '***SubMenuItem3'
+ )
+ )
+ ),
+ 'MenuItem2'
+ ), $array
+ );
+ }
- public function testGetMenuWithInvalidInput(){
- $this->assertNull($this->menuParser->getMenuTree(null));
- $this->assertNull($this->menuParser->getMenuTree(""));
- }
+ public function testGetMenuWithInvalidInput() {
+ $this->assertNull($this->menuParser->getMenuTree(null));
+ $this->assertNull($this->menuParser->getMenuTree(""));
+ }
- public function testGetMenuWithValidInput(){
- $menu = $this->menuParser->getMenuTree("MenuItem");
- $this->assertNotNull($menu);
- $this->assertTrue($menu->isRoot());
- $this->assertEquals(1,sizeof($menu->getChildren()));
+ public function testGetMenuWithValidInput() {
+ $menu = $this->menuParser->getMenuTree("MenuItem");
+ $this->assertNotNull($menu);
+ $this->assertTrue($menu->isRoot());
+ $this->assertEquals(1, sizeof($menu->getChildren()));
- $children = $menu->getChildren();
- $this->assertEquals("MenuItem",$children[0]->getText());
- }
+ $children = $menu->getChildren();
+ $this->assertEquals("MenuItem", $children[0]->getText());
+ }
- public function testGetMenuWithValidComplexInput(){
- $data = array(
- 'MenuItem1',
- '*SubMenuItem1',
- '*SubMenuItem2',
- '*SubMenuItem3',
- '**SubMenuItem1Of1',
- '**SubMenuItem2Of1',
- 'MenuItem2',
- '*SubMenuItem1OfMenuItem2'
- );
- $menu = $this->menuParser->getMenuTree(join("\n",$data));
- $this->assertNotNull($menu);
- $this->assertEquals(2,sizeof($menu->getChildren()));
+ public function testGetMenuWithValidComplexInput() {
+ $data = array(
+ 'MenuItem1',
+ '*SubMenuItem1',
+ '*SubMenuItem2',
+ '*SubMenuItem3',
+ '**SubMenuItem1Of1',
+ '**SubMenuItem2Of1',
+ 'MenuItem2',
+ '*SubMenuItem1OfMenuItem2'
+ );
+ $menu = $this->menuParser->getMenuTree(join("\n", $data));
+ $this->assertNotNull($menu);
+ $this->assertEquals(2, sizeof($menu->getChildren()));
- }
+ }
- public function testGetMenuWithSeveralLineBreaks(){
- $data = array(
- '',
- 'MenuItem1',
- '',
- ''
- );
- $menu = $this->menuParser->getMenuTree(join("\n",$data));
- $this->assertNotNull($menu);
- $this->assertEquals(1,sizeof($menu->getChildren()));
+ public function testGetMenuWithSeveralLineBreaks() {
+ $data = array(
+ '',
+ 'MenuItem1',
+ '',
+ ''
+ );
+ $menu = $this->menuParser->getMenuTree(join("\n", $data));
+ $this->assertNotNull($menu);
+ $this->assertEquals(1, sizeof($menu->getChildren()));
- $children = $menu->getChildren();
- $this->assertEquals("MenuItem1",$children[0]->getText());
+ $children = $menu->getChildren();
+ $this->assertEquals("MenuItem1", $children[0]->getText());
- }
+ }
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs