Modified:
development/trunk/administrator/modules/mod_menu/helper.php
development/trunk/administrator/modules/mod_menu/tmpl/default_enabled.php
development/trunk/installation/CHANGELOG
development/trunk/libraries/joomla/utilities/arrayhelper.php
development/trunk/tests/unit/suite/libraries/joomla/utilities/JArrayHelperTest.php
Log:
Fixed issue [#21862] Backend menu components are not ordered alphabetically (Hannes Papenberg).
Modified: development/trunk/administrator/modules/mod_menu/helper.php
===================================================================
--- development/trunk/administrator/modules/mod_menu/helper.php 2010-09-01 02:01:33 UTC (rev 18743)
+++ development/trunk/administrator/modules/mod_menu/helper.php 2010-09-01 05:15:09 UTC (rev 18744)
@@ -93,30 +93,29 @@
}
if (!empty($component->element)) {
- $langs[$component->element.'.sys'] = true;
+ // Load the core file then
+ // Load extension-local file.
+ $lang->load($component->element.'.sys', JPATH_BASE, null, false, false)
+ || $lang->load($component->element.'.sys', JPATH_ADMINISTRATOR.'/components/'.$component->element, null, false, false)
+ || $lang->load($component->element.'.sys', JPATH_BASE, $lang->getDefault(), false, false)
+ || $lang->load($component->element.'.sys', JPATH_ADMINISTRATOR.'/components/'.$component->element, $lang->getDefault(), false, false);
}
+ $component->text = $lang->hasKey($component->title) ? JText::_($component->title) : $component->alias;
}
} else {
// Sub-menu level.
if (isset($result[$component->parent_id])) {
// Add the submenu link if it is defined.
if (isset($result[$component->parent_id]->submenu) && !empty($component->link)) {
+ $component->text = $lang->hasKey($component->title) ? JText::_($component->title) : $component->alias;
$result[$component->parent_id]->submenu[] = &$component;
}
}
}
}
+
+ $result = JArrayHelper::sortObjects($result, 'text', 1, false);
- // Load additional language files.
- foreach (array_keys($langs) as $langName) {
- // Load the core file then
- // Load extension-local file.
- $lang->load($langName, JPATH_BASE, null, false, false)
- || $lang->load($langName, JPATH_ADMINISTRATOR.'/components/'.str_replace('.sys', '', $langName), null, false, false)
- || $lang->load($langName, JPATH_BASE, $lang->getDefault(), false, false)
- || $lang->load($langName, JPATH_ADMINISTRATOR.'/components/'.str_replace('.sys', '', $langName), $lang->getDefault(), false, false);
- }
-
return $result;
}
}
\ No newline at end of file
Modified: development/trunk/administrator/modules/mod_menu/tmpl/default_enabled.php
===================================================================
--- development/trunk/administrator/modules/mod_menu/tmpl/default_enabled.php 2010-09-01 02:01:33 UTC (rev 18743)
+++ development/trunk/administrator/modules/mod_menu/tmpl/default_enabled.php 2010-09-01 05:15:09 UTC (rev 18744)
@@ -193,21 +193,18 @@
foreach ($components as &$component)
{
- $text = $lang->hasKey($component->title) ? JText::_($component->title) : $component->alias;
-
if (!empty($component->submenu))
{
// This component has a db driven submenu.
- $menu->addChild(new JMenuNode($text, $component->link, $component->img), true);
+ $menu->addChild(new JMenuNode($component->text, $component->link, $component->img), true);
foreach ($component->submenu as $sub)
{
- $text = $lang->hasKey($sub->title) ? JText::_($sub->title) : $sub->alias;
- $menu->addChild(new JMenuNode($text, $sub->link, $sub->img));
+ $menu->addChild(new JMenuNode($sub->text, $sub->link, $sub->img));
}
$menu->getParent();
}
else {
- $menu->addChild(new JMenuNode($text, $component->link, $component->img));
+ $menu->addChild(new JMenuNode($component->text, $component->link, $component->img));
}
}
$menu->getParent();
Modified: development/trunk/installation/CHANGELOG
===================================================================
--- development/trunk/installation/CHANGELOG 2010-09-01 02:01:33 UTC (rev 18743)
+++ development/trunk/installation/CHANGELOG 2010-09-01 05:15:09 UTC (rev 18744)
@@ -30,6 +30,7 @@
01-Sep-2010 Andrew Eddie (and Happy 5th Birthday Joomla!)
# Fixed issue [#22118] The setRedirect method() overwrites an already set messageType (Roland Dalmulder, Artyom Bisyarin).
# Fixed issue [#21604] The "Memory Usage" debug info has no measurement unit (Javier Gómez, Nikolai Plath, Omar Ramos).
+ # Fixed issue [#21862] Backend menu components are not ordered alphabetically (Hannes Papenberg).
31-Aug-2010 Jean-Marie Simonet
# [#22150] hathor menu type - unable to select type. Thanks Bill.
Modified: development/trunk/libraries/joomla/utilities/arrayhelper.php
===================================================================
--- development/trunk/libraries/joomla/utilities/arrayhelper.php 2010-09-01 02:01:33 UTC (rev 18743)
+++ development/trunk/libraries/joomla/utilities/arrayhelper.php 2010-09-01 05:15:09 UTC (rev 18744)
@@ -252,14 +252,16 @@
* @param array $arr An array of objects
* @param string|array $k The key or a array of key to sort on
* @param int|array $direction Direction or an array of direction to sort in [1 = Ascending] [-1 = Descending]
+ * @param bool $casesensitive Let sort occur casesensitive or insensitive
* @return array The sorted array of objects
* @since 1.5
*/
- public static function sortObjects(&$a, $k, $direction=1)
+ public static function sortObjects(&$a, $k, $direction=1, $casesensitive=true)
{
$GLOBALS['JAH_so'] = array(
'key' => (array)$k,
- 'direction' => (array)$direction
+ 'direction' => (array)$direction,
+ 'casesensitive' => $casesensitive
);
usort($a, array('JArrayHelper', '_sortObjects'));
unset($GLOBALS['JAH_so']);
@@ -281,19 +283,32 @@
{
$params = $GLOBALS['JAH_so'];
- for($i=0,$count=count($params['key']);$i<$count;$i++) {
- if (array_key_exists($i,$params['direction'])) {
+ for ($i = 0, $count = count($params['key']); $i < $count; $i++)
+ {
+ if (array_key_exists($i, $params['direction'])) {
$direction = $params['direction'][$i];
}
- if ($a->$params['key'][$i] > $b->$params['key'][$i]) {
- return $direction;
+ if ($params['casesensitive']) {
+ if ($a->$params['key'][$i] > $b->$params['key'][$i]) {
+ return $direction;
+ }
+
+ if ($a->$params['key'][$i] < $b->$params['key'][$i]) {
+ return -1 * $direction;
+ }
}
+ else {
+ if (JString::strtoupper($a->$params['key'][$i]) > JString::strtoupper($b->$params['key'][$i])) {
+ return $direction;
+ }
- if ($a->$params['key'][$i] < $b->$params['key'][$i]) {
- return -1 * $direction;
+ if (JString::strtoupper($a->$params['key'][$i]) < JString::strtoupper($b->$params['key'][$i])) {
+ return -1 * $direction;
+ }
}
}
+
return 0;
}
}
Modified: development/trunk/tests/unit/suite/libraries/joomla/utilities/JArrayHelperTest.php
===================================================================
--- development/trunk/tests/unit/suite/libraries/joomla/utilities/JArrayHelperTest.php 2010-09-01 02:01:33 UTC (rev 18743)
+++ development/trunk/tests/unit/suite/libraries/joomla/utilities/JArrayHelperTest.php 2010-09-01 05:15:09 UTC (rev 18744)
@@ -22,11 +22,6 @@
class JArrayHelperTest extends PHPUnit_Framework_TestCase
{
/**
- * @var JArrayHelper
- */
- protected $object;
-
- /**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
@@ -34,25 +29,15 @@
*/
protected function setUp()
{
- $this->object = new JArrayHelper;
+ jimport('joomla.utilities.string');
}
/**
- * Tears down the fixture, for example, closes a network connection.
- * This method is called after a test is executed.
- *
- * @return void
- */
- protected function tearDown()
- {
- }
-
- /**
* Data provider for numeric inputs
*
* @return array
*/
- function numericInputs()
+ function getTestToIntegerData()
{
return array(
'floating with single argument' => array(
@@ -89,7 +74,7 @@
}
/**
- * Test using member call to convert an array to all integers.
+ * Test convert an array to all integers.
*
* @param string $input The array being input
* @param string $default The default value
@@ -97,29 +82,12 @@
* @param string $message The failure message
*
* @return void
- * @dataProvider numericInputs
+ * @dataProvider getTestToIntegerData
*/
- public function testToIntegerByCallingMember($input, $default, $expect, $message)
+ public function testToInteger($input, $default, $expect, $message)
{
- $this->object->toInteger($input, $default);
- $this->assertEquals($expect, $input, "Called as member - " . $message);
- }
-
- /**
- * Test using static call to convert an array to all integers.
- *
- * @param string $input The array being input
- * @param string $default The default value
- * @param string $expect The expected return value
- * @param string $message The failure message
- *
- * @return void
- * @dataProvider numericInputs
- */
- public function testToIntegerByCallingStatic($input, $default, $expect, $message)
- {
JArrayHelper::toInteger($input, $default);
- $this->assertEquals($expect, $input, "Called as static - " . $message);
+ $this->assertEquals($expect, $input, $message);
}
/**
@@ -127,13 +95,13 @@
*
* @return array
*/
- function objectInputs()
+ function getTestToObjectData()
{
return array(
'single object' => array(
array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
null,
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
'Should turn array into single object'
),
'multiple objects' => array(
@@ -143,17 +111,17 @@
'third' => array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
null,
- (object)array(
- 'first' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'second' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'third' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array(
+ 'first' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'second' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'third' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
'Should turn multiple dimension array into nested objects'
),
'single object with class' => array(
array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
'stdClass',
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
'Should turn array into single object'
),
'multiple objects with class' => array(
@@ -163,10 +131,10 @@
'third' => array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
'stdClass',
- (object)array(
- 'first' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'second' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'third' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array(
+ 'first' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'second' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'third' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
'Should turn multiple dimension array into nested objects'
),
@@ -174,7 +142,7 @@
}
/**
- * Test using member call to convert array to object.
+ * Test convert array to object.
*
* @param string $input The array being input
* @param string $className The class name to build
@@ -182,34 +150,14 @@
* @param string $message The failure message
*
* @return void
- * @dataProvider objectInputs
+ * @dataProvider getTestToObjectData
*/
- public function testToObjectByCallingMember($input, $className, $expect, $message)
+ public function testToObject($input, $className, $expect, $message)
{
$this->assertEquals(
$expect,
- $this->object->toObject($input),
- "Called as member - " . $message
- );
- }
-
- /**
- * Test using static call to convert array to object.
- *
- * @param string $input The array being input
- * @param string $className The class name to build
- * @param string $expect The expected return value
- * @param string $message The failure message
- *
- * @return void
- * @dataProvider objectInputs
- */
- public function testToObjectByCallingStatic($input, $className, $expect, $message)
- {
- $this->assertEquals(
- $expect,
JArrayHelper::toObject($input),
- "Called as static - " . $message
+ $message
);
}
@@ -218,7 +166,7 @@
*
* @return array
*/
- function stringInputs()
+ function getTestToStringData()
{
return array(
'single dimension 1' => array(
@@ -312,7 +260,7 @@
}
/**
- * Tests converting array to string as a member function call.
+ * Tests converting array to string.
*
* @param array $input The array being input
* @param string $inner The inner glue
@@ -323,62 +271,34 @@
* @param bool $defaults Use function defaults (true) or full argument list
*
* @return void
- * @dataProvider stringInputs
+ * @dataProvider getTestToStringData
*/
- public function testToStringByCallingMember($input, $inner, $outer, $keepKey, $expect,
- $message, $defaults) {
+ public function testToString(
+ $input, $inner, $outer, $keepKey, $expect, $message, $defaults)
+ {
if ($defaults) {
- $output = $this->object->toString($input);
+ $output = JArrayHelper::toString($input);
} else {
- $output = $this->object->toString($input, $inner, $outer, $keepKey);
+ $output = JArrayHelper::toString($input, $inner, $outer, $keepKey);
}
$this->assertEquals(
$expect,
$output,
- "Called as member - " . $message
+ $message
);
}
/**
- * Tests converting array to string as a static function call.
- *
- * @param array $input The array being input
- * @param string $inner The inner glue
- * @param string $outer The outer glue
- * @param bool $keepKey Keep the outer key
- * @param string $expect The expected return value
- * @param string $message The failure message
- * @param bool $defaults Use function defaults (true) or full argument list
- *
- * @return void
- * @dataProvider stringInputs
- */
- public function testToStringByCallingStatic($input, $inner, $outer, $keepKey, $expect,
- $message, $defaults) {
- if ($defaults) {
- $output = $this->object->toString($input);
- } else {
- $output = $this->object->toString($input, $inner, $outer, $keepKey);
- }
-
- $this->assertEquals(
- $expect,
- $output,
- "Called as static - " . $message
- );
- }
-
- /**
* Data provider for from object inputs
*
* @return array
*/
- function fromObjectInputs()
+ function getTestFromObjectData()
{
return array(
'single 1' => array(
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
null,
null,
array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
@@ -386,7 +306,7 @@
true
),
'single 2' => array(
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
true,
null,
array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
@@ -394,7 +314,7 @@
false
),
'single 3' => array(
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
true,
'/^(integer|float)/',
array('integer' => 12, 'float' => 1.29999),
@@ -402,10 +322,10 @@
false
),
'multiple 1' => array(
- (object)array(
- 'first' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'second' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'third' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array(
+ 'first' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'second' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'third' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
null,
null,
@@ -418,10 +338,10 @@
true
),
'multiple 2' => array(
- (object)array(
- 'first' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'second' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'third' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array(
+ 'first' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'second' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'third' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
true,
null,
@@ -434,10 +354,10 @@
true
),
'multiple 3' => array(
- (object)array(
- 'first' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'second' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'third' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array(
+ 'first' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'second' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'third' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
false,
null,
@@ -446,10 +366,10 @@
false
),
'multiple 4' => array(
- (object)array(
+ (object) array(
'first' => 'Me',
- 'second' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'third' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'second' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'third' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
false,
null,
@@ -458,10 +378,10 @@
false
),
'multiple 5' => array(
- (object)array(
- 'first' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'second' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- 'third' => (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array(
+ 'first' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'second' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ 'third' => (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
true,
'/(first|second|integer|string)/',
@@ -476,7 +396,7 @@
}
/**
- * Tests conversion of object to string called as a member function.
+ * Tests conversion of object to string.
*
* @param array $input The array being input
* @param bool $recurse Recurse through multiple dimensions?
@@ -486,48 +406,22 @@
* @param bool $defaults Use function defaults (true) or full argument list
*
* @return void
- * @dataProvider fromObjectInputs
+ * @dataProvider getTestFromObjectData
*/
- public function testFromObjectByCallingMember($input, $recurse, $regex, $expect, $message, $defaults)
+ public function testFromObject(
+ $input, $recurse, $regex, $expect, $message, $defaults)
{
if ($defaults) {
- $output = $this->object->fromObject($input);
- } else {
- $output = $this->object->fromObject($input, $recurse, $regex);
- }
-
- $this->assertEquals(
- $expect,
- $output,
- "Called as member - " . $message
- );
- }
-
- /**
- * Tests conversion of object to string called as a static function.
- *
- * @param array $input The array being input
- * @param bool $recurse Recurse through multiple dimensions?
- * @param string $regex Regex to select only some attributes
- * @param string $expect The expected return value
- * @param string $message The failure message
- * @param bool $defaults Use function defaults (true) or full argument list
- *
- * @return void
- * @dataProvider fromObjectInputs
- */
- public function testFromObjectByCallingStatic($input, $recurse, $regex, $expect,
- $message, $defaults) {
- if ($defaults) {
$output = JArrayHelper::fromObject($input);
- } else {
+ }
+ else {
$output = JArrayHelper::fromObject($input, $recurse, $regex);
}
$this->assertEquals(
$expect,
$output,
- "Called as static - " . $message
+ $message
);
}
@@ -536,7 +430,7 @@
*
* @return array
*/
- function getColumnInputs()
+ function getTestGetColumnData()
{
return array(
'generic array' => array(
@@ -563,10 +457,10 @@
),
'object array' => array(
array(
- (object)array('one' => 1, 'two' => 2, 'three' => 3, 'four' => 4, 'five' => 5),
- (object)array('one' => 6, 'two' => 7, 'three' => 8, 'four' => 9, 'five' => 10),
- (object)array('one' => 11, 'two' => 12, 'three' => 13, 'four' => 14, 'five' => 15),
- (object)array('one' => 16, 'two' => 17, 'three' => 18, 'four' => 19, 'five' => 20)
+ (object) array('one' => 1, 'two' => 2, 'three' => 3, 'four' => 4, 'five' => 5),
+ (object) array('one' => 6, 'two' => 7, 'three' => 8, 'four' => 9, 'five' => 10),
+ (object) array('one' => 11, 'two' => 12, 'three' => 13, 'four' => 14, 'five' => 15),
+ (object) array('one' => 16, 'two' => 17, 'three' => 18, 'four' => 19, 'five' => 20)
),
'four',
array(4, 9, 14, 19),
@@ -576,7 +470,7 @@
}
/**
- * Test pulling data from a single column (by index or association) called as member.
+ * Test pulling data from a single column (by index or association).
*
* @param array $input Input array
* @param mixed $index Column to pull, either by association or number
@@ -584,32 +478,12 @@
* @param string $message The failure message
*
* @return void
- * @dataProvider getColumnInputs
+ * @dataProvider getTestGetColumnData
*/
- public function testGetColumnByCallingMember($input, $index, $expect, $message)
+ public function testGetColumn($input, $index, $expect, $message)
{
$this->assertEquals(
$expect,
- $this->object->getColumn($input, $index),
- $message
- );
- }
-
- /**
- * Test pulling data from a single column (by index or association) called as static.
- *
- * @param array $input Input array
- * @param mixed $index Column to pull, either by association or number
- * @param array $expect The expected results
- * @param string $message The failure message
- *
- * @return void
- * @dataProvider getColumnInputs
- */
- public function testGetColumnByCallingStatic($input, $index, $expect, $message)
- {
- $this->assertEquals(
- $expect,
JArrayHelper::getColumn($input, $index),
$message
);
@@ -620,7 +494,7 @@
*
* @return array
*/
- function getValueInputs()
+ function getTestGetValueData()
{
$input = array('one' => 1, 'two' => 2, 'three' => 3, 'four' => 4, 'five' => 5,
'six' => 6, 'seven' => 7, 'eight' => 8, 'nine' => 'It\'s nine', 'ten' => 10,
@@ -705,7 +579,7 @@
}
/**
- * Test get value from an array called as member function.
+ * Test get value from an array.
*
* @param array $input Input array
* @param mixed $index Element to pull, either by association or number
@@ -716,42 +590,12 @@
* @param bool $defaults Use the defaults (true) or full argument list
*
* @return void
- * @dataProvider getValueInputs
+ * @dataProvider getTestGetValueData
*/
- public function testGetValueByCallingMember(
+ public function testGetValue(
$input, $index, $default, $type, $expect, $message, $defaults)
{
if ($defaults) {
- $output = $this->object->getValue($input, $index);
- } else {
- $output = $this->object->getValue($input, $index, $default, $type);
- }
-
- $this->assertEquals(
- $expect,
- $output,
- $message
- );
- }
-
- /**
- * Test get value from an array called as static function.
- *
- * @param array $input Input array
- * @param mixed $index Element to pull, either by association or number
- * @param mixed $default The defualt value, if element not present
- * @param $type $type The type of value returned
- * @param array $expect The expected results
- * @param string $message The failure message
- * @param bool $defaults Use the defaults (true) or full argument list
- *
- * @return void
- * @dataProvider getValueInputs
- */
- public function testGetValueByCallingStatic(
- $input, $index, $default, $type, $expect, $message, $defaults)
- {
- if ($defaults) {
$output = JArrayHelper::getValue($input, $index);
} else {
$output = JArrayHelper::getValue($input, $index, $default, $type);
@@ -793,157 +637,182 @@
*
* @return array
*/
- function sortObjectInputs()
+ function getTestSortObjectData()
{
- $input = array(
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- (object)array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
- (object)array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
- (object)array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ $input1 = array(
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
);
+ $input2 = array(
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 't Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'g Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ );
+
+
return array(
'by int defaults' => array(
- $input,
+ $input1,
'integer',
null,
+ false,
array(
- (object)array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
- (object)array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- (object)array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
- (object)array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
),
'Should be sorted by the integer field in ascending order',
true
),
'by int ascending' => array(
- $input,
+ $input1,
'integer',
1,
+ false,
array(
- (object)array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
- (object)array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- (object)array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
- (object)array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
),
'Should be sorted by the integer field in ascending order full argument list',
false
),
'by int descending' => array(
- $input,
+ $input1,
'integer',
-1,
+ false,
array(
- (object)array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
- (object)array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
- (object)array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
- (object)array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
),
'Should be sorted by the integer field in descending order',
false
),
'by string ascending' => array(
- $input,
+ $input1,
'string',
1,
+ false,
array(
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
- (object)array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
- (object)array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
- (object)array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
),
'Should be sorted by the string field in ascending order full argument list',
false
),
'by string descending' => array(
- $input,
+ $input1,
'string',
-1,
+ false,
array(
- (object)array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
- (object)array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
- (object)array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
- (object)array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
- (object)array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
- (object)array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 'T Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'G Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
),
'Should be sorted by the string field in descending order',
false
),
+ 'by casesensitive string ascending' => array(
+ $input2,
+ 'string',
+ 1,
+ true,
+ array(
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'g Test String'),
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 't Test String'),
+ ),
+ 'Should be sorted by the string field in ascending order with casesensitive comparisons',
+ false
+ ),
+ 'by casesensitive string descending' => array(
+ $input2,
+ 'string',
+ -1,
+ true,
+ array(
+ (object) array('integer' => 5, 'float' => 1.29999, 'string' => 't Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'g Test String'),
+ (object) array('integer' => 1, 'float' => 1.29999, 'string' => 'N Test String'),
+ (object) array('integer' => 6, 'float' => 1.29999, 'string' => 'L Test String'),
+ (object) array('integer' => 22, 'float' => 1.29999, 'string' => 'E Test String'),
+ (object) array('integer' => 35, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 15, 'float' => 1.29999, 'string' => 'C Test String'),
+ (object) array('integer' => 12, 'float' => 1.29999, 'string' => 'A Test String'),
+ ),
+ 'Should be sorted by the string field in descending order with casesensitive comparisons',
+ false
+ ),
);
}
/**
- * test sorting an array of objects called as static function.
+ * test sorting an array of objects.
*
- * @param array $input Input array of objects
- * @param mixed $key Key to sort on
- * @param mixed $direction Ascending (1) or Descending(-1)
- * @param array $expect The expected results
- * @param string $message The failure message
- * @param bool $defaults Use the defaults (true) or full argument list
+ * @param array $input Input array of objects
+ * @param mixed $key Key to sort on
+ * @param mixed $direction Ascending (1) or Descending(-1)
+ * @param array $expect The expected results
+ * @param string $message The failure message
+ * @param bool $defaults Use the defaults (true) or full argument list
*
* @return void
- * @dataProvider sortObjectInputs
+ * @dataProvider getTestSortObjectData
*/
- public function testSortObjectsByCallingStatic(
- $input, $key, $direction, $expect, $message, $defaults)
+ public function testSortObjects(
+ $input, $key, $direction, $casesensitive, $expect, $message, $defaults)
{
if ($defaults) {
$output = JArrayHelper::sortObjects($input, $key);
- } else {
- $output = JArrayHelper::sortObjects($input, $key, $direction);
}
-
- $this->assertEquals(
- $expect,
- $output,
- $message
- );
- }
-
- /**
- * test sorting an array of objects called as member function.
- *
- * @param array $input Input array of objects
- * @param mixed $key Key to sort on
- * @param mixed $direction Ascending (1) or Descending(-1)
- * @param array $expect The expected results
- * @param string $message The failure message
- * @param bool $defaults Use the defaults (true) or full argument list
- *
- * @return void
- * @dataProvider sortObjectInputs
- */
- public function testSortObjectsByCallingMember(
- $input, $key, $direction, $expect, $message, $defaults)
- {
- if ($defaults) {
- $output = $this->object->sortObjects($input, $key);
- } else {
- $output = $this->object->sortObjects($input, $key, $direction);
+ else {
+ $output = JArrayHelper::sortObjects($input, $key, $direction, $casesensitive);
}
$this->assertEquals(
_______________________________________________
Joomla-commits mailing list
Joomla-...@joomlacode.org
http://joomlacode.org/mailman/listinfo/joomla-commits