| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * Limb PHP Framework 4 * 5 * @link http://limb-project.com 6 * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com) 7 * @license LGPL http://www.gnu.org/copyleft/lesser.html 8 */ 9 require_once(dirname(__FILE__) . '/lmbTestTreeShallowDirNode.class.php'); 10 require_once(dirname(__FILE__) . '/lmbTestTreeFileNode.class.php'); 11 require_once(dirname(__FILE__) . '/lmbDetachedFixture.class.php'); 12 require_once(dirname(__FILE__) . '/lmbTestFileFilter.class.php'); 13 14 /** 15 * class lmbTestTreeDirNode. 16 * 17 * @package tests_runner 18 * @version $Id: lmbTestTreeDirNode.class.php 6022 2007-06-28 13:35:51Z pachanga $ 19 */ 20 class lmbTestTreeDirNode extends lmbTestTreeShallowDirNode 21 { 22 protected static $file_filter = '*Test.class.php;*.test.php;*_test.php'; 23 protected $loaded; 24 25 function createTestCase() 26 { 27 $this->_loadChildren(); 28 return parent :: createTestCase(); 29 } 30 31 static function getFileFilter() 32 { 33 if(is_object(self :: $file_filter)) 34 return self :: $file_filter; 35 elseif(is_array(self :: $file_filter)) 36 return new lmbTestFileFilter(self :: $file_filter); 37 else 38 return new lmbTestFileFilter(explode(';', self :: $file_filter)); 39 } 40 41 static function setFileFilter($filter) 42 { 43 $prev = self :: getFileFilter(); 44 self :: $file_filter = $filter; 45 return $prev; 46 } 47 48 function _loadChildren() 49 { 50 if(!is_null($this->loaded) && $this->loaded) 51 return; 52 53 $dir_items = $this->getDirItems(); 54 55 foreach($dir_items as $item) 56 { 57 if(is_dir($item)) 58 $this->addChild(new lmbTestTreeDirNode($item)); 59 else 60 $this->addChild(new lmbTestTreeFileNode($item)); 61 } 62 $this->loaded = true; 63 } 64 65 function getDirItems() 66 { 67 $clean_and_sorted = array(); 68 $dir_items = scandir($this->dir); 69 70 foreach($dir_items as $item) 71 { 72 if($item{0} == '.' || (!is_dir($this->dir . '/' . $item) && !$this->_isFileAllowed($item))) 73 continue; 74 $clean_and_sorted[$item] = $this->dir . '/' . $item; 75 } 76 77 uasort($clean_and_sorted, array($this, '_dirSorter')); 78 return $clean_and_sorted; 79 } 80 81 protected function _isFileAllowed($file) 82 { 83 $filter = self :: getFileFilter(); 84 85 if($filter && !$filter->match($file)) 86 return false; 87 return true; 88 } 89 90 protected function _dirSorter($a, $b) 91 { 92 if(is_dir($a) && !is_dir($b)) 93 return -1; 94 elseif(!is_dir($a) && is_dir($b)) 95 return 1; 96 return strcmp($a, $b); 97 } 98 } 99 100 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Tue Dec 2 03:54:09 2008 | Cross-referenced by PHPXref 0.7 |