forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			133 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /*
 | |
|  * This file is part of the Symfony package.
 | |
|  *
 | |
|  * (c) Fabien Potencier <fabien@symfony.com>
 | |
|  *
 | |
|  * For the full copyright and license information, please view the LICENSE
 | |
|  * file that was distributed with this source code.
 | |
|  */
 | |
| 
 | |
| namespace Symfony\Component\Finder\Tests\Iterator;
 | |
| 
 | |
| class MockSplFileInfo extends \SplFileInfo
 | |
| {
 | |
|     const TYPE_DIRECTORY = 1;
 | |
|     const TYPE_FILE = 2;
 | |
|     const TYPE_UNKNOWN = 3;
 | |
| 
 | |
|     private $contents = null;
 | |
|     private $mode = null;
 | |
|     private $type = null;
 | |
|     private $relativePath = null;
 | |
|     private $relativePathname = null;
 | |
| 
 | |
|     public function __construct($param)
 | |
|     {
 | |
|         if (\is_string($param)) {
 | |
|             parent::__construct($param);
 | |
|         } elseif (\is_array($param)) {
 | |
|             $defaults = array(
 | |
|                 'name' => 'file.txt',
 | |
|                 'contents' => null,
 | |
|                 'mode' => null,
 | |
|                 'type' => null,
 | |
|                 'relativePath' => null,
 | |
|                 'relativePathname' => null,
 | |
|             );
 | |
|             $defaults = array_merge($defaults, $param);
 | |
|             parent::__construct($defaults['name']);
 | |
|             $this->setContents($defaults['contents']);
 | |
|             $this->setMode($defaults['mode']);
 | |
|             $this->setType($defaults['type']);
 | |
|             $this->setRelativePath($defaults['relativePath']);
 | |
|             $this->setRelativePathname($defaults['relativePathname']);
 | |
|         } else {
 | |
|             throw new \RuntimeException(sprintf('Incorrect parameter "%s"', $param));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function isFile()
 | |
|     {
 | |
|         if (null === $this->type) {
 | |
|             return false !== strpos($this->getFilename(), 'file');
 | |
|         }
 | |
| 
 | |
|         return self::TYPE_FILE === $this->type;
 | |
|     }
 | |
| 
 | |
|     public function isDir()
 | |
|     {
 | |
|         if (null === $this->type) {
 | |
|             return false !== strpos($this->getFilename(), 'directory');
 | |
|         }
 | |
| 
 | |
|         return self::TYPE_DIRECTORY === $this->type;
 | |
|     }
 | |
| 
 | |
|     public function isReadable()
 | |
|     {
 | |
|         if (null === $this->mode) {
 | |
|             return preg_match('/r\+/', $this->getFilename());
 | |
|         }
 | |
| 
 | |
|         return preg_match('/r\+/', $this->mode);
 | |
|     }
 | |
| 
 | |
|     public function getContents()
 | |
|     {
 | |
|         return $this->contents;
 | |
|     }
 | |
| 
 | |
|     public function setContents($contents)
 | |
|     {
 | |
|         $this->contents = $contents;
 | |
|     }
 | |
| 
 | |
|     public function setMode($mode)
 | |
|     {
 | |
|         $this->mode = $mode;
 | |
|     }
 | |
| 
 | |
|     public function setType($type)
 | |
|     {
 | |
|         if (\is_string($type)) {
 | |
|             switch ($type) {
 | |
|                 case 'directory':
 | |
|                 case 'd':
 | |
|                     $this->type = self::TYPE_DIRECTORY;
 | |
|                     break;
 | |
|                 case 'file':
 | |
|                 case 'f':
 | |
|                     $this->type = self::TYPE_FILE;
 | |
|                     break;
 | |
|                 default:
 | |
|                     $this->type = self::TYPE_UNKNOWN;
 | |
|             }
 | |
|         } else {
 | |
|             $this->type = $type;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function setRelativePath($relativePath)
 | |
|     {
 | |
|         $this->relativePath = $relativePath;
 | |
|     }
 | |
| 
 | |
|     public function setRelativePathname($relativePathname)
 | |
|     {
 | |
|         $this->relativePathname = $relativePathname;
 | |
|     }
 | |
| 
 | |
|     public function getRelativePath()
 | |
|     {
 | |
|         return $this->relativePath;
 | |
|     }
 | |
| 
 | |
|     public function getRelativePathname()
 | |
|     {
 | |
|         return $this->relativePathname;
 | |
|     }
 | |
| }
 |