https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115022

Revision: 115022
Author:   netbrain
Date:     2012-04-24 14:02:20 +0000 (Tue, 24 Apr 2012)
Log Message:
-----------
added a new state to expanded property of a menu item.

a menu item does no longer show their controls (show/hide) of + or - is not 
specified in the menu definition.

Modified Paths:
--------------
    trunk/extensions/SideBarMenu/SideBarMenu.hooks.php
    trunk/extensions/SideBarMenu/SideBarMenu.i18n.php
    trunk/extensions/SideBarMenu/includes/MenuItem.php
    trunk/extensions/SideBarMenu/includes/MenuParser.php
    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-24 12:08:14 UTC 
(rev 115021)
+++ trunk/extensions/SideBarMenu/SideBarMenu.hooks.php  2012-04-24 14:02:20 UTC 
(rev 115022)
@@ -15,7 +15,7 @@
 
                $output = '<div class="sidebar-menu-container">';
                try {
-                       $menuParser = new MenuParser($config[SBM_EXPANDED]);
+                       $menuParser = new MenuParser($config);
                        $output .= 
$parser->recursiveTagParse($menuParser->getMenuTree($input)->toHTML(), $frame);
                } catch (Exception $x) {
                        wfDebug("An error occured during parsing of: '$input' 
caught exception: $x");

Modified: trunk/extensions/SideBarMenu/SideBarMenu.i18n.php
===================================================================
--- trunk/extensions/SideBarMenu/SideBarMenu.i18n.php   2012-04-24 12:08:14 UTC 
(rev 115021)
+++ trunk/extensions/SideBarMenu/SideBarMenu.i18n.php   2012-04-24 14:02:20 UTC 
(rev 115022)
@@ -16,8 +16,8 @@
        '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 menu'
+       'sidebarmenu-edit' => 'Edit menu',
+       'sidebarmenu-parser-menuitem-expanded-null' => 'Invalid value given, 
value should be one of null,true,false.'
 );
 
 /** Message documentation (Message documentation)
@@ -29,8 +29,8 @@
        'sidebarmenu-parser-input-error' => '$1 is the error message returned',
        'sidebarmenu-parser-syntax-error' => '$1 is the line which failed to be 
parsed',
        'sidebarmenu-js-init-error' => 'General error message',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" is a configuration property.',
        'sidebarmenu-edit' => 'The text/html of the edit link',
+       'sidebarmenu-parser-menuitem-expanded-null' => 'The value of the 
expanded property of a menuitem'
 );
 
 /** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
@@ -41,7 +41,6 @@
        'sidebarmenu-parser-input-error' => 'Парсэр павярнуў памылку: $1',
        'sidebarmenu-parser-syntax-error' => 'Не атрымалася разабраць «$1». 
Запэўніцеся, што сынтэкс карэктны.',
        'sidebarmenu-js-init-error' => 'Не атрымалася загрузіць 
JavaScript-рэсурсы.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'«parser.menuitem.expanded» мусіць павяртаць true ці false, але выстаўлены ў 
null.',
 );
 
 /** German (Deutsch)
@@ -53,7 +52,6 @@
        'sidebarmenu-parser-input-error' => 'Der Parser hat den folgenden 
Fehler ausgegeben: $1',
        'sidebarmenu-parser-syntax-error' => '„$1“ konnte nicht verarbeitet 
werden. Bitte sicherstellen, dass die Syntax richtig ist.',
        'sidebarmenu-js-init-error' => 'Das Laden des JavaScripts ist 
gescheitert.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 'Der Parameter 
„<code>parser.menuitem.expanded</code>“ sollte mit „true“ oder „false“ 
festgelegt sein. Stattdessen wurde nichts festgelegt.',
        'sidebarmenu-edit' => 'Menü bearbeiten',
 );
 
@@ -65,7 +63,6 @@
        'sidebarmenu-parser-input-error' => 'El analizador (parser) devolvió el 
error: $1',
        'sidebarmenu-parser-syntax-error' => 'No se pudo analizar "$1", 
asegúrese de que la sintaxis es correcta.',
        'sidebarmenu-js-init-error' => 'Error al cargar recursos de 
JavaScript.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" debe tener el valor "true" o "false", en vez de 
"null".',
        'sidebarmenu-edit' => 'Editar el menú',
 );
 
@@ -77,7 +74,6 @@
        'sidebarmenu-parser-input-error' => "L'analyseur a renvoyé une erreur: 
$1",
        'sidebarmenu-parser-syntax-error' => 'Impossible d\'analyser "$1", 
assurez-vous que la syntaxe est correcte.',
        'sidebarmenu-js-init-error' => 'Échec au chargement des ressources 
JavaScript.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" doit être true ou false, mais il est null.',
        'sidebarmenu-edit' => 'Modifier le menu',
 );
 
@@ -89,7 +85,6 @@
        'sidebarmenu-parser-input-error' => 'O analizador devolveu o seguinte 
erro: $1',
        'sidebarmenu-parser-syntax-error' => 'Non se puido analizar "$1"; 
asegúrese de que a sintaxe é correcta.',
        'sidebarmenu-js-init-error' => 'Erro ao cargar os recursos do 
JavaScript.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" debe ter o valor "true" ou "false", pero ten 
"null".',
 );
 
 /** Upper Sorbian (Hornjoserbsce)
@@ -100,7 +95,6 @@
        'sidebarmenu-parser-input-error' => 'Parser je zmylk wróćił: $1',
        'sidebarmenu-parser-syntax-error' => '"$1" njeda so parsować, zawěsćće, 
zo syntaksa je korektna.',
        'sidebarmenu-js-init-error' => 'Začitowanje JavaScriptowych resursow je 
so njeporadźiło.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" dyrbjał hódnotu "true" abo "false" měć, Město toho  
hódnota je nul.',
        'sidebarmenu-edit' => 'Meni wobdźěłać',
 );
 
@@ -112,8 +106,7 @@
        'sidebarmenu-parser-input-error' => 'Le analysator syntactic retornava 
un error: $1',
        'sidebarmenu-parser-syntax-error' => 'Non poteva interpretar "$1". 
Assecura que le syntaxe es correcte.',
        'sidebarmenu-js-init-error' => 'Le cargamento de ressources JavaScript 
ha fallite.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" debe esser "true" (ver) o "false" (false), ma illo 
es "null" (sin valor).',
-       'sidebarmenu-edit' => 'Modificar menu',
+       'sidebarmenu-edit' => 'Modificar',
 );
 
 /** Korean (한국어)
@@ -124,7 +117,6 @@
        'sidebarmenu-parser-input-error' => '$1 오류가 발생했습니다.',
        'sidebarmenu-parser-syntax-error' => '"$1"을 분석할 수 없었습니다. 구문이 올바른지 
확인하십시오.',
        'sidebarmenu-js-init-error' => '자바스크립트 리소스를 불러오지 못했습니다.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded"는 참 또는 거짓이어야 하는데 지금 올바르지 않습니다.',
 );
 
 /** Luxembourgish (Lëtzebuergesch)
@@ -133,7 +125,6 @@
 $messages['lb'] = array(
        'sidebarmenu-parser-input-error' => 'Parser-Feeler: $1',
        'sidebarmenu-js-init-error' => 'De JavaScript konnt net geluede ginn.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 'De Parameter 
„<code>parser.menuitem.expanded</code>“ solle entweder „true“ oder „false“ 
sinn. En ass awer eidel (null).',
 );
 
 /** Macedonian (Македонски)
@@ -144,7 +135,6 @@
        'sidebarmenu-parser-input-error' => 'Парсерот се врати со грешката: $1',
        'sidebarmenu-parser-syntax-error' => 'Не можам да го предадам редот 
„$1“. Проверете дали синтаксата е исправна.',
        'sidebarmenu-js-init-error' => 'Вчитувањето на ресурсите на JavaScript 
не успеа.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 'Параметарот 
„parser.menuitem.expanded“ треба да има зададено „true“ или „false“, а 
моментално нема ништо.',
        'sidebarmenu-edit' => 'Уреди',
 );
 
@@ -156,7 +146,6 @@
        'sidebarmenu-parser-input-error' => 'Penghurai dikembalikan dengan 
ralat: $1',
        'sidebarmenu-parser-syntax-error' => '"$1" tidak dapat dihuraikan, sila 
pastikan sintaksnya betul.',
        'sidebarmenu-js-init-error' => 'Sumber-sumber JavaScript gagal 
dimuatkan.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" mestilah benar (true) atau palsu (false), tetapi ia 
nol (null).',
 );
 
 /** Dutch (Nederlands)
@@ -170,7 +159,6 @@
        'sidebarmenu-parser-input-error' => 'Er is een foutmelding uit de 
parser teruggekomen: $1',
        'sidebarmenu-parser-syntax-error' => 'Het was niet mogelijk om "$1" te 
verwerken. Zorg ervoor dat de syntaxis correct is.',
        'sidebarmenu-js-init-error' => 'Het laden van de JavaScriptbronnen is 
mislukt.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" moet waar of onwaar zijn. Deze is nu null.',
        'sidebarmenu-edit' => 'Bewerken',
 );
 
@@ -182,7 +170,6 @@
        'sidebarmenu-parser-input-error' => 'Analizator zwrócił błąd: $1',
        'sidebarmenu-parser-syntax-error' => 'Nie można przeanalizować "$1", 
upewnij się, że składnia jest poprawna.',
        'sidebarmenu-js-init-error' => 'Nie powiodło się ładowanie zasobów z 
kodem JavaScript.',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded" powinien mieć wartość true lub false, zamiast tego 
jest pusty.',
 );
 
 /** Pashto (پښتو)
@@ -200,6 +187,5 @@
        'sidebarmenu-parser-input-error' => '解析器返回错误:$1',
        'sidebarmenu-parser-syntax-error' => '无法解析"$1",请确认语法是否正确。',
        'sidebarmenu-js-init-error' => 'JavaScript资源加载失败。',
-       'sidebarmenu-parser-menuitem-expanded-null' => 
'"parser.menuitem.expanded"应该为 true 或 false;相反,它却为空(null)。',
 );
 

Modified: trunk/extensions/SideBarMenu/includes/MenuItem.php
===================================================================
--- trunk/extensions/SideBarMenu/includes/MenuItem.php  2012-04-24 12:08:14 UTC 
(rev 115021)
+++ trunk/extensions/SideBarMenu/includes/MenuItem.php  2012-04-24 14:02:20 UTC 
(rev 115022)
@@ -1,24 +1,36 @@
 <?php
 
 class MenuItem {
-       private $expanded = false;
+       private $expanded = null;
        private $children = array();
        private $parent = null;
        private $text;
        private $customCSSStyle;
        private $customCSSClasses;
+       private $config;
 
+       function __construct($config) {
+               $this->config = $config;
+       }
 
        public function setExpanded($expanded) {
-               if (is_null($expanded)) {
-                       throw new 
InvalidArgumentException(wfMsg('sidebarmenu-parser-menuitem-expanded-null'));
+               if (is_null($expanded) || $expanded === true || $expanded === 
false) {
+                       $this->expanded = $expanded;
                } else {
-                       $this->expanded = $expanded;
+                       throw new 
InvalidArgumentException(wfMsg('sidebarmenu-parser-menuitem-expanded-invalid'));
                }
        }
 
+       public function isExpandedSpecified(){
+               return !is_null($this->expanded);
+       }
+
        public function isExpanded() {
-               return $this->expanded;
+               if($this->isExpandedSpecified()){
+                       return $this->expanded;
+               }else{
+                       return $this->config[SBM_EXPANDED];
+               }
        }
 
        public function setText($link) {
@@ -76,7 +88,11 @@
                        $itemClasses[] = 'sidebar-menu-item-' . 
$this->getLevel();
 
                        if ($this->hasChildren()) {
-                               $itemClasses[] = $this->isExpanded() ? 
'sidebar-menu-item-expanded' : 'sidebar-menu-item-collapsed';
+                               if($this->isExpandedSpecified()){
+                                       $itemClasses[] = $this->isExpanded() ? 
'sidebar-menu-item-expanded' : 'sidebar-menu-item-collapsed';
+                               }else{
+                                       $itemClasses[] = 
$this->config[SBM_EXPANDED] ? 'sidebar-menu-item-expanded' : 
'sidebar-menu-item-collapsed';
+                               }
                        }
 
                        if ($this->hasCustomCSSClasses()) {
@@ -90,7 +106,7 @@
                        $output .= "<div 
class=\"sidebar-menu-item-text-container\">";
                        $output .= "<span class=\"" . join(' ', $textClasses) . 
"\">" . $this->getText() . "</span>";
 
-                       if ($this->hasChildren()) {
+                       if ($this->hasChildren() && 
$this->isExpandedSpecified()) {
                                $output .= "<span 
class=\"sidebar-menu-item-controls\"></span>";
                        }
 

Modified: trunk/extensions/SideBarMenu/includes/MenuParser.php
===================================================================
--- trunk/extensions/SideBarMenu/includes/MenuParser.php        2012-04-24 
12:08:14 UTC (rev 115021)
+++ trunk/extensions/SideBarMenu/includes/MenuParser.php        2012-04-24 
14:02:20 UTC (rev 115022)
@@ -1,13 +1,12 @@
 <?php
 class MenuParser {
 
-       private $expandedByDefault;
+       private $config;
 
-       function __construct($expandedByDefault) {
-               $this->expandedByDefault = $expandedByDefault;
+       function __construct($config) {
+               $this->config = $config;
        }
 
-
        public function isValidInput($data) {
                return !(is_null($data) || strlen($data) == 0);
        }
@@ -25,7 +24,7 @@
                                return false;
                        }
                }
-               return $this->expandedByDefault;
+               return null;
        }
 
        public function getTextParameter($line) {
@@ -44,7 +43,7 @@
        public function getMenuTree($data) {
                if ($this->isValidInput($data)) {
                        $data = $this->cleanupData($data);
-                       $root = new MenuItem();
+                       $root = new MenuItem($this->config);
                        $root->setExpanded(true);
                        $arrayData = 
$this->parseDataIntoHierarchicalArray($data);
                        $this->addChildrenToMenuItemFromArrayData($root, 
$arrayData);
@@ -57,7 +56,7 @@
        public function getMenuItem($line) {
                $line = trim($line);
                if ($this->isValidInput($line)) {
-                       $menuItem = new MenuItem();
+                       $menuItem = new MenuItem($this->config);
                        
$menuItem->setExpanded($this->getExpandedParameter($line));
                        $menuItem->setText($this->getTextParameter($line));
                        
$menuItem->setCustomCSSStyle($this->getStyleParameter($line));

Modified: trunk/extensions/SideBarMenu/test/MenuItemTest.php
===================================================================
--- trunk/extensions/SideBarMenu/test/MenuItemTest.php  2012-04-24 12:08:14 UTC 
(rev 115021)
+++ trunk/extensions/SideBarMenu/test/MenuItemTest.php  2012-04-24 14:02:20 UTC 
(rev 115022)
@@ -2,9 +2,11 @@
 
 class MenuItemTest extends MediaWikiTestCase {
        private $menuItem;
+       private $config;
 
        protected function setUp() {
-               $this->menuItem = new MenuItem();
+               $this->config = array(SBM_EXPANDED => false);
+               $this->menuItem = new MenuItem($this->config);
        }
 
        public function testIsRoot() {
@@ -12,7 +14,7 @@
        }
 
        public function testIsNotRoot() {
-               $this->menuItem->setParent(new MenuItem());
+               $this->menuItem->setParent(new MenuItem($this->config));
                $this->assertFalse($this->menuItem->isRoot());
        }
 
@@ -21,14 +23,14 @@
        }
 
        public function testGetLevelWhenChild() {
-               $this->menuItem->setParent(new MenuItem());
+               $this->menuItem->setParent(new MenuItem($this->config));
                $this->assertEquals(1, $this->menuItem->getLevel());
        }
 
        public function testGetLevelWhenSeveralChildren() {
                $prev = $this->menuItem;
                for ($x = 0; $x < 10; $x++) {
-                       $child = new MenuItem();
+                       $child = new MenuItem($this->config);
                        $child->setParent($prev);
                        $prev = $child;
 
@@ -37,14 +39,14 @@
        }
 
        public function testAddChildAlsoAddsParent() {
-               $child = new MenuItem();
+               $child = new MenuItem($this->config);
                $this->menuItem->addChild($child);
                $this->assertContains($child, $this->menuItem->getChildren());
                $this->assertEquals($child->getParent(), $this->menuItem);
        }
 
        public function testAddSameChildSeveralTimes() {
-               $child = new MenuItem();
+               $child = new MenuItem($this->config);
                for ($x = 0; $x < 3; $x++) {
                        $this->menuItem->addChild($child);
                }
@@ -52,7 +54,7 @@
        }
 
        public function testAddParentAlsoAddsChild() {
-               $parent = new MenuItem();
+               $parent = new MenuItem($this->config);
                $this->menuItem->setParent($parent);
                $this->assertContains($this->menuItem, $parent->getChildren());
        }
@@ -63,7 +65,7 @@
        }
 
        public function testToHTMLOnProperMenuItem() {
-               $menuItemChild = new MenuItem();
+               $menuItemChild = new MenuItem($this->config);
                $menuItemChild->setText("MenuItem1");
                $this->menuItem->addChild($menuItemChild);
                $html = $this->menuItem->toHTML();
@@ -71,9 +73,9 @@
        }
 
        public function testToHTMLOnSeveralMenuItems() {
-               $menuItemChild1 = new MenuItem();
+               $menuItemChild1 = new MenuItem($this->config);
                $menuItemChild1->setText("MenuItem1");
-               $menuItemChild2 = new MenuItem();
+               $menuItemChild2 = new MenuItem($this->config);
                $menuItemChild2->setText("MenuItem2");
 
                $this->menuItem->addChild($menuItemChild1);
@@ -84,25 +86,55 @@
        }
 
        public function testToHTMLOnSeveralMenuItemsWithSublevels() {
-               $menuItemChild1 = new MenuItem();
+               $menuItemChild1 = new MenuItem($this->config);
                $menuItemChild1->setText("MenuItem1");
-               $menuItemChild2 = new MenuItem();
+               $menuItemChild2 = new MenuItem($this->config);
                $menuItemChild2->setText("MenuItem2");
 
                $this->menuItem->addChild($menuItemChild1);
                $this->menuItem->addChild($menuItemChild2);
 
-               $subLevel1 = new MenuItem();
+               $subLevel1 = new MenuItem($this->config);
                $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);
+               $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></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);
        }
 
+       public function 
testToHTMLOnSeveralMenuItemsWithSublevelsWhereExpandedIsTrue() {
+               $menuItemChild = new MenuItem($this->config);
+               $menuItemChild->setText("MenuItem");
+               $menuItemChild->setExpanded(true);
 
+               $this->menuItem->addChild($menuItemChild);
+
+               $subLevel1 = new MenuItem($this->config);
+               $subLevel1->setText("SubMenuItem1");
+               $subLevel1->setParent($menuItemChild);
+
+               $html = $this->menuItem->toHTML();
+               $this->assertEquals('<ul class="sidebar-menu 
sidebar-menu-0"><li class="sidebar-menu-item sidebar-menu-item-1 
sidebar-menu-item-expanded"><div class="sidebar-menu-item-text-container"><span 
class="sidebar-menu-item-text sidebar-menu-item-text-1">MenuItem</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);
+       }
+
+       public function 
testToHTMLOnSeveralMenuItemsWithSublevelsWhereExpandedIsFalse() {
+               $menuItemChild = new MenuItem($this->config);
+               $menuItemChild->setText("MenuItem");
+               $menuItemChild->setExpanded(false);
+
+               $this->menuItem->addChild($menuItemChild);
+
+               $subLevel1 = new MenuItem($this->config);
+               $subLevel1->setText("SubMenuItem1");
+               $subLevel1->setParent($menuItemChild);
+
+               $html = $this->menuItem->toHTML();
+               $this->assertEquals('<ul class="sidebar-menu 
sidebar-menu-0"><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">MenuItem</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);
+       }
+
+
        public function testToHTMLOnMenuItemWithStyling() {
-               $menuItemChild = new MenuItem();
+               $menuItemChild = new MenuItem($this->config);
                $menuItemChild->setText("MenuItem1");
                $menuItemChild->setCustomCSSStyle('color: red;');
                $this->menuItem->addChild($menuItemChild);
@@ -111,7 +143,7 @@
        }
 
        public function testToHTMLOnMenuItemWithCustomClasses() {
-               $menuItemChild = new MenuItem();
+               $menuItemChild = new MenuItem($this->config);
                $menuItemChild->setText("MenuItem1");
                $menuItemChild->setCustomCSSClasses('testclass1 testclass2');
                $this->menuItem->addChild($menuItemChild);

Modified: trunk/extensions/SideBarMenu/test/MenuParserTest.php
===================================================================
--- trunk/extensions/SideBarMenu/test/MenuParserTest.php        2012-04-24 
12:08:14 UTC (rev 115021)
+++ trunk/extensions/SideBarMenu/test/MenuParserTest.php        2012-04-24 
14:02:20 UTC (rev 115022)
@@ -3,9 +3,11 @@
 class MenuParserTest extends MediaWikiTestCase {
 
        private $menuParser;
+       private $config;
 
        protected function setUp() {
-               $this->menuParser = new MenuParser(true);
+               $this->config = array(SBM_EXPANDED => true);
+               $this->menuParser = new MenuParser($this->config);
        }
 
        public function testValidInputWhenNull() {
@@ -37,10 +39,10 @@
        }
 
        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"));
+               $menuParser = new MenuParser(array(SBM_EXPANDED => true));
+               
$this->assertNull($menuParser->getExpandedParameter("MenuItem"));
+               $menuParser = new MenuParser(array(SBM_EXPANDED => false));
+               
$this->assertNull($menuParser->getExpandedParameter("MenuItem"));
        }
 
        public function testGetExpandedParameterWhenNotExpanded() {


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to