public function testArrayMapRecursive()
 {
     $array = array('a ', array('  b', 'c'));
     $strtoupper = array('A ', array('  B', 'C'));
     $trim = array('a', array('b', 'c'));
     $this->assertEquals($strtoupper, ArrayLib::array_map_recursive('strtoupper', $array));
     $this->assertEquals($trim, ArrayLib::array_map_recursive('trim', $array));
 }
 public function getList()
 {
     $context = $this->getSearchContext();
     $params = $this->getRequest()->requestVar('q');
     if (is_array($params)) {
         $params = ArrayLib::array_map_recursive('trim', $params);
         // Parse all DateFields to handle user input non ISO 8601 dates
         foreach ($context->getFields() as $field) {
             if ($field instanceof DatetimeField) {
                 $params[$field->getName()] = date('Y-m-d', strtotime($params[$field->getName()]));
             }
         }
     }
     $list = $context->getResults($params);
     $this->extend('updateList', $list);
     return $list;
 }