Development

Changeset 6376

You must first sign up to be able to contribute.

Changeset 6376

Show
Ignore:
Timestamp:
12/07/07 21:11:36 (8 months ago)
Author:
fabien
Message:

changed implementation of sfCultureInfo::simplify (closes #1821)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/i18n/sfCultureInfo.class.php

    r5777 r6376  
    638638   * @return array simplified array. 
    639639   */ 
    640   protected function simplify($array) 
    641   { 
    642     for ($i = 0, $max = count($array); $i < $max; $i++) 
    643     { 
    644       $key = key($array); 
    645       if (is_array($array[$key]) && count($array[$key]) == 1) 
     640  static protected function simplify($array) 
     641  { 
     642    foreach ($array as &$item) 
     643    { 
     644      if (is_array($item) && count($item) == 1) 
    646645      { 
    647         $array[$key] = $array[$key][0]; 
     646        $item = $item[0]; 
    648647      } 
    649       next($array); 
    650648    } 
    651649 
  • trunk/test/unit/i18n/sfCultureInfoTest.php

    r2834 r6376  
    1111require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 
    1212 
    13 $t = new lime_test(52, new lime_output_color()); 
     13$t = new lime_test(56, new lime_output_color()); 
    1414 
    1515// __construct() 
     
    189189$c->NumberFormat = '#'; 
    190190$t->is($c->getNumberFormat(), '#', '->setNumberFormat() is equivalent to ->NumberFormat = '); 
     191 
     192// ->simplify() 
     193$t->diag('->simplify()'); 
     194 
     195class myCultureInfo extends sfCultureInfo 
     196{ 
     197  static public function simplify($array) 
     198  { 
     199    return parent::simplify($array); 
     200  } 
     201} 
     202 
     203$array1 = array(0 => 'hello', 1 => 'world'); 
     204$array2 = array(0 => array('hello'), 1 => 'world'); 
     205$array3 = array(0 => array('hello', 'hi'), 1 => 'world'); 
     206 
     207$ci = new myCultureInfo(); 
     208 
     209$t->isa_ok($ci->simplify($array1), 'array', '::simplify() returns an array'); 
     210$t->is_deeply($ci->simplify($array1), $array1, '::simplify() leaves 1D-arrays unchanged'); 
     211$t->is_deeply($ci->simplify($array2), $array1, '::simplify() simplifies arrays'); 
     212$t->is_deeply($ci->simplify($array3), $array3, '::simplify() leaves not-simplifiable arrays unchanged');