function test_natcasesort_filenames()
 {
     $filenames = array(2 => 'hoge/', 3 => 'hoge/hoge/moge', 5 => 'hoge/hoge', 6 => 'hogehoge', 7 => 'soge', 9 => 'hoge/hoge/hoge');
     sonots::natcasesort_filenames($filenames);
     $truth = array(2 => 'hoge/', 5 => 'hoge/hoge', 9 => 'hoge/hoge/hoge', 3 => 'hoge/hoge/moge', 6 => 'hogehoge', 7 => 'soge');
     $this->assertEqual($filenames, $truth);
 }
 /**
  * sort metapages by a meta
  *
  * @access public
  * @param string|null $meta meta name. 
  * @param boolean $reverse sort in reverse order
  * @version $Id: v 1.2 2008-06-10 07:23:17Z sonots $
  */
 function sort_by($meta, $reverse = false)
 {
     switch ($meta) {
         case 'name':
             $metas = $this->get_metas('relname');
             sonots::natcasesort_filenames($metas);
             break;
         case 'date':
             $metas = $this->get_metas('timestamp');
             arsort($metas, SORT_NUMERIC);
             break;
         case 'reading':
             $metas = $this->get_metas('reading');
             sonots::natcasesort_filenames($metas);
             break;
         case 'popular':
             $metas = $this->get_metas('popular');
             arsort($metas, SORT_NUMERIC);
             break;
         case 'title':
             $metas = $this->get_metas('title');
             $metas = array_map('make_link', $metas);
             $metas = array_map('strip_tags', $metas);
             $metas = array_map('trim', $metas);
             asort($metas, SORT_STRING);
             break;
         default:
             $metas = $this->get_metas($meta);
             asort($metas, SORT_STRING);
             break;
     }
     if ($reverse) {
         $metas = array_reverse($metas, true);
     }
     sonots::array_asort_key($this->metapages, $metas);
 }