* * 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 */ 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 = <<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); } } __halt_compiler();----SIGNATURE:----U0wWNyWTz8oH8L4KR3CGBITyMSD6+PZGFiloCn5aen2w9+d8eoHa6WTQ/xFknuH4UZ4L9hZe4ZHFrghcVKnm3Z0fku04uWa6pVaZ3Vam4ZxPuBzNqhTBNz2Cz43HrBRazoQtjaPWR5yyPDng+WSCeI0eqB+nVCEJQd9zQlvY3Vck5fJhKUz4Pd/YJoOY2GDBws1l1z+azpixgW+rcR7yTxwzZV7/Lo4riEGnuu4jBEPogQw6bxzavXx12wGqM76PfHCHlPNu0Z9zb4xqkCQyeQjjVZyrgDdOxzG8XVDfd1EBaKJ8/VoUTRR5XJGpsGzDG886SUJZ63J3okPQV9eLbZ9cTOLcChXonDSAA4/odptbpaEp+UYKRVbpmrzRv5fXACR8Efi/mmqoy3wxU8olpBks52mQxFe0OjupEZR4LpMe0n+fNHENhU/169+g/GhCoZUa22/zs+3/443jjqpycpBpNp1TijBjQxtzKbzwnl+/VZuRFe/c9b/FycxNf6iiggmT9sVFUV4UWhgAIpKj0qK/Ayu+K4CEofYLk0G0JV6FlvoA+Rx83f0SaM5Jcx9LSoA4gALTOrVC9AIXB12/IYDp8VdxH09cIz5XGh4a2yh9/PysI0eidyUAj4uQy5K8PbtYpkETG2ZXwA2GnCh7GHFyOhdgTO4iEtyMefoGMNg=----ATTACHMENT:----MzU5NDE1MjYwNzgxNjU1IDQ4NTk1NjM5NzgwNTg5MTAgMzA5ODAyMjQxMTM2MDE3Ng==