 1ac0f42a58
			
		
	
	1ac0f42a58
	
	
	
		
			
			Travis config update Removed HHVM script as Laravel no longer support HHVM after releasing 5.3
		
			
				
	
	
		
			208 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			4.6 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\VarDumper\Tests\Caster;
 | |
| 
 | |
| use PHPUnit\Framework\TestCase;
 | |
| use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
 | |
| 
 | |
| /**
 | |
|  * @author Grégoire Pineau <lyrixx@lyrixx.info>
 | |
|  */
 | |
| class SplCasterTest extends TestCase
 | |
| {
 | |
|     use VarDumperTestTrait;
 | |
| 
 | |
|     public function getCastFileInfoTests()
 | |
|     {
 | |
|         return array(
 | |
|             array(__FILE__, <<<'EOTXT'
 | |
| SplFileInfo {
 | |
| %Apath: "%sCaster"
 | |
|   filename: "SplCasterTest.php"
 | |
|   basename: "SplCasterTest.php"
 | |
|   pathname: "%sSplCasterTest.php"
 | |
|   extension: "php"
 | |
|   realPath: "%sSplCasterTest.php"
 | |
|   aTime: %s-%s-%d %d:%d:%d
 | |
|   mTime: %s-%s-%d %d:%d:%d
 | |
|   cTime: %s-%s-%d %d:%d:%d
 | |
|   inode: %d
 | |
|   size: %d
 | |
|   perms: 0%d
 | |
|   owner: %d
 | |
|   group: %d
 | |
|   type: "file"
 | |
|   writable: true
 | |
|   readable: true
 | |
|   executable: false
 | |
|   file: true
 | |
|   dir: false
 | |
|   link: false
 | |
| %A}
 | |
| EOTXT
 | |
|             ),
 | |
|             array('https://google.com/about', <<<'EOTXT'
 | |
| SplFileInfo {
 | |
| %Apath: "https://google.com"
 | |
|   filename: "about"
 | |
|   basename: "about"
 | |
|   pathname: "https://google.com/about"
 | |
|   extension: ""
 | |
|   realPath: false
 | |
| %A}
 | |
| EOTXT
 | |
|             ),
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     /** @dataProvider getCastFileInfoTests */
 | |
|     public function testCastFileInfo($file, $dump)
 | |
|     {
 | |
|         $this->assertDumpMatchesFormat($dump, new \SplFileInfo($file));
 | |
|     }
 | |
| 
 | |
|     public function testCastFileObject()
 | |
|     {
 | |
|         $var = new \SplFileObject(__FILE__);
 | |
|         $var->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY);
 | |
|         $dump = <<<'EOTXT'
 | |
| SplFileObject {
 | |
| %Apath: "%sCaster"
 | |
|   filename: "SplCasterTest.php"
 | |
|   basename: "SplCasterTest.php"
 | |
|   pathname: "%sSplCasterTest.php"
 | |
|   extension: "php"
 | |
|   realPath: "%sSplCasterTest.php"
 | |
|   aTime: %s-%s-%d %d:%d:%d
 | |
|   mTime: %s-%s-%d %d:%d:%d
 | |
|   cTime: %s-%s-%d %d:%d:%d
 | |
|   inode: %d
 | |
|   size: %d
 | |
|   perms: 0%d
 | |
|   owner: %d
 | |
|   group: %d
 | |
|   type: "file"
 | |
|   writable: true
 | |
|   readable: true
 | |
|   executable: false
 | |
|   file: true
 | |
|   dir: false
 | |
|   link: false
 | |
| %AcsvControl: array:%d [
 | |
|     0 => ","
 | |
|     1 => """
 | |
| %A]
 | |
|   flags: DROP_NEW_LINE|SKIP_EMPTY
 | |
|   maxLineLen: 0
 | |
|   fstat: array:26 [
 | |
|     "dev" => %d
 | |
|     "ino" => %d
 | |
|     "nlink" => %d
 | |
|     "rdev" => 0
 | |
|     "blksize" => %i
 | |
|     "blocks" => %i
 | |
|      …20
 | |
|   ]
 | |
|   eof: false
 | |
|   key: 0
 | |
| }
 | |
| EOTXT;
 | |
|         $this->assertDumpMatchesFormat($dump, $var);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @dataProvider provideCastSplDoublyLinkedList
 | |
|      */
 | |
|     public function testCastSplDoublyLinkedList($modeValue, $modeDump)
 | |
|     {
 | |
|         $var = new \SplDoublyLinkedList();
 | |
|         $var->setIteratorMode($modeValue);
 | |
|         $dump = <<<EOTXT
 | |
| SplDoublyLinkedList {
 | |
| %Amode: $modeDump
 | |
|   dllist: []
 | |
| }
 | |
| EOTXT;
 | |
|         $this->assertDumpMatchesFormat($dump, $var);
 | |
|     }
 | |
| 
 | |
|     public function provideCastSplDoublyLinkedList()
 | |
|     {
 | |
|         return array(
 | |
|             array(\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'),
 | |
|             array(\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'),
 | |
|             array(\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'),
 | |
|             array(\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'),
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public function testCastObjectStorageIsntModified()
 | |
|     {
 | |
|         $var = new \SplObjectStorage();
 | |
|         $var->attach(new \stdClass());
 | |
|         $var->rewind();
 | |
|         $current = $var->current();
 | |
| 
 | |
|         $this->assertDumpMatchesFormat('%A', $var);
 | |
|         $this->assertSame($current, $var->current());
 | |
|     }
 | |
| 
 | |
|     public function testCastObjectStorageDumpsInfo()
 | |
|     {
 | |
|         $var = new \SplObjectStorage();
 | |
|         $var->attach(new \stdClass(), new \DateTime());
 | |
| 
 | |
|         $this->assertDumpMatchesFormat('%ADateTime%A', $var);
 | |
|     }
 | |
| 
 | |
|     public function testCastArrayObject()
 | |
|     {
 | |
|         $var = new \ArrayObject(array(123));
 | |
|         $var->foo = 234;
 | |
| 
 | |
|         $expected = <<<EOTXT
 | |
| ArrayObject {
 | |
|   +"foo": 234
 | |
|   flag::STD_PROP_LIST: false
 | |
|   flag::ARRAY_AS_PROPS: false
 | |
|   iteratorClass: "ArrayIterator"
 | |
|   storage: array:1 [
 | |
|     0 => 123
 | |
|   ]
 | |
| }
 | |
| EOTXT;
 | |
|         $this->assertDumpEquals($expected, $var);
 | |
|     }
 | |
| 
 | |
|     public function testArrayIterator()
 | |
|     {
 | |
|         $var = new MyArrayIterator(array(234));
 | |
| 
 | |
|         $expected = <<<EOTXT
 | |
| Symfony\Component\VarDumper\Tests\Caster\MyArrayIterator {
 | |
|   -foo: 123
 | |
|   flag::STD_PROP_LIST: false
 | |
|   flag::ARRAY_AS_PROPS: false
 | |
|   storage: array:1 [
 | |
|     0 => 234
 | |
|   ]
 | |
| }
 | |
| EOTXT;
 | |
|         $this->assertDumpEquals($expected, $var);
 | |
|     }
 | |
| }
 | |
| 
 | |
| class MyArrayIterator extends \ArrayIterator
 | |
| {
 | |
|     private $foo = 123;
 | |
| }
 |