This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/VarDumper/Tests/CliDumperTest.php

497 lines
10 KiB
PHP
Raw Normal View History

2014-04-05 20:31:16 +01:00
<?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;
use Symfony\Component\VarDumper\Cloner\VarCloner;
2014-04-05 20:31:16 +01:00
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
2014-04-05 20:31:16 +01:00
/**
* @author Nicolas Grekas <p@tchwork.com>
*/
class CliDumperTest extends \PHPUnit_Framework_TestCase
2014-04-05 20:31:16 +01:00
{
use VarDumperTestTrait;
2014-04-05 20:31:16 +01:00
public function testGet()
{
require __DIR__.'/Fixtures/dumb-var.php';
$dumper = new CliDumper('php://output');
$dumper->setColors(false);
$cloner = new VarCloner();
$cloner->addCasters(array(
':stream' => function ($res, $a) {
2015-06-30 18:32:40 +01:00
unset($a['uri'], $a['wrapper_data']);
return $a;
},
));
2014-04-05 20:31:16 +01:00
$data = $cloner->cloneVar($var);
ob_start();
$dumper->dump($data);
$out = ob_get_clean();
$out = preg_replace('/[ \t]+$/m', '', $out);
2014-09-26 08:07:47 +01:00
$intMax = PHP_INT_MAX;
2015-06-30 18:32:40 +01:00
$res = (int) $var['res'];
2014-04-05 20:31:16 +01:00
Merge branch '2.8' * 2.8: (65 commits) [VarDumper] Fix tests for HHVM Update DateTimeToArrayTransformer.php Mock microtime() and time() in transient tests Azerbaijani language pluralization rule Move HHVM tests out of the allowed failures Fix merge [2.6] Towards 100% HHVM compat [Security/Http] Fix test [Stopwatch] Fix test Minor fixes [Validator] Added missing error codes and turned codes into UUIDs Towards 100% HHVM compat Warmup twig templates in non-standard paths (closes #12507) [Bridge/PhpUnit] Enforce a consistent locale Fix param order of assertEquals (expected, actual) in test for Finder\Glob Fix choice translation domain for expanded choice widget unify default AccessDeniedExeption message trigger event with right user (add test) [Security] Initialize SwitchUserEvent::targetUser on attemptExitUser fixed CS ... Conflicts: UPGRADE-2.8.md src/Symfony/Bridge/ProxyManager/composer.json src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php src/Symfony/Bundle/FrameworkBundle/Resources/config/old_assets.xml src/Symfony/Bundle/FrameworkBundle/Resources/config/test.xml src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.xml src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/CsrfFormLoginBundle/Form/UserLoginFormType.php src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/CsrfFormLogin/config.yml src/Symfony/Bundle/SecurityBundle/composer.json src/Symfony/Component/Debug/ErrorHandler.php src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php src/Symfony/Component/DependencyInjection/Definition.php src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/legacy-container9.php src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/legacy-services9.dot src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/legacy-services6.xml src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/legacy-services9.xml src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/legacy-services6.yml src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/legacy-services9.yml src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php src/Symfony/Component/Form/ResolvedFormType.php src/Symfony/Component/Form/Tests/CompoundFormTest.php src/Symfony/Component/Process/Tests/AbstractProcessTest.php src/Symfony/Component/VarDumper/Tests/CliDumperTest.php src/Symfony/Component/VarDumper/Tests/HtmlDumperTest.php
2015-07-01 21:40:29 +01:00
$r = defined('HHVM_VERSION') ? '' : '#%d';
2014-10-10 16:31:59 +01:00
$this->assertStringMatchesFormat(
2014-04-05 20:31:16 +01:00
<<<EOTXT
2015-06-30 18:32:40 +01:00
array:24 [
2014-04-05 20:31:16 +01:00
"number" => 1
2014-10-10 16:31:59 +01:00
0 => &1 null
2014-04-05 20:31:16 +01:00
"const" => 1.1
1 => true
2 => false
3 => NAN
4 => INF
5 => -INF
2014-09-26 08:07:47 +01:00
6 => {$intMax}
"str" => "déjà\\n"
7 => b"é\\x00"
2014-04-05 20:31:16 +01:00
"[]" => []
2015-06-30 18:32:40 +01:00
"res" => stream resource {@{$res}
2016-02-12 17:39:33 +00:00
%A wrapper_type: "plainfile"
stream_type: "STDIO"
2014-04-05 20:31:16 +01:00
mode: "r"
unread_bytes: 0
seekable: true
2016-02-12 17:39:33 +00:00
%A options: []
2014-04-05 20:31:16 +01:00
}
2014-10-10 16:31:59 +01:00
"obj" => Symfony\Component\VarDumper\Tests\Fixture\DumbFoo {#%d
+foo: "foo"
+"bar": "bar"
2014-04-05 20:31:16 +01:00
}
Merge branch '2.8' * 2.8: (65 commits) [VarDumper] Fix tests for HHVM Update DateTimeToArrayTransformer.php Mock microtime() and time() in transient tests Azerbaijani language pluralization rule Move HHVM tests out of the allowed failures Fix merge [2.6] Towards 100% HHVM compat [Security/Http] Fix test [Stopwatch] Fix test Minor fixes [Validator] Added missing error codes and turned codes into UUIDs Towards 100% HHVM compat Warmup twig templates in non-standard paths (closes #12507) [Bridge/PhpUnit] Enforce a consistent locale Fix param order of assertEquals (expected, actual) in test for Finder\Glob Fix choice translation domain for expanded choice widget unify default AccessDeniedExeption message trigger event with right user (add test) [Security] Initialize SwitchUserEvent::targetUser on attemptExitUser fixed CS ... Conflicts: UPGRADE-2.8.md src/Symfony/Bridge/ProxyManager/composer.json src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php src/Symfony/Bundle/FrameworkBundle/Resources/config/old_assets.xml src/Symfony/Bundle/FrameworkBundle/Resources/config/test.xml src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.xml src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/CsrfFormLoginBundle/Form/UserLoginFormType.php src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/CsrfFormLogin/config.yml src/Symfony/Bundle/SecurityBundle/composer.json src/Symfony/Component/Debug/ErrorHandler.php src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php src/Symfony/Component/DependencyInjection/Definition.php src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/legacy-container9.php src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/legacy-services9.dot src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/legacy-services6.xml src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/legacy-services9.xml src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/legacy-services6.yml src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/legacy-services9.yml src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php src/Symfony/Component/Form/ResolvedFormType.php src/Symfony/Component/Form/Tests/CompoundFormTest.php src/Symfony/Component/Process/Tests/AbstractProcessTest.php src/Symfony/Component/VarDumper/Tests/CliDumperTest.php src/Symfony/Component/VarDumper/Tests/HtmlDumperTest.php
2015-07-01 21:40:29 +01:00
"closure" => Closure {{$r}
Merge branch '2.7' * 2.7: (60 commits) [Translation][Profiler] fixed Collect empty Messages. [VarDumper] Towards PHP7 support Fix currently broken tests [Form][choice] added choice_translation_domain to avoid trans options. [Translation][Profiler] added the number of times a translation has been used. [DoctrineBridge] Removed useless code [Debug] Updated CHANGELOG [Debug] Use symfony_debug_backtrace() in FatalErrorException when available [Debug] Add debug extension to the test suite [Debug] Add symfony_debug_backtrace() that works with fatal errors [Form] Updated CHANGELOG and UPGRADE files [HttpKernel] Embed the original exception as previous to bounced exceptions Added feedback about the current symfony version Deprecated precision option in favor of scale [Enhancement] netbeans - force interactive shell when limited detection Automatically start server:run if server:start failed Tweaked some console command styles [FrameworkBundle] fixes displaying of deprecation notices. make date formats and number formats configurable Revert "Added missing changelog entry" ... Conflicts: CHANGELOG-2.3.md CHANGELOG-2.6.md src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php src/Symfony/Bridge/Twig/composer.json src/Symfony/Bundle/FrameworkBundle/Resources/config/translation.xml src/Symfony/Bundle/FrameworkBundle/composer.json src/Symfony/Bundle/TwigBundle/DependencyInjection/Configuration.php src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php src/Symfony/Component/Debug/CHANGELOG.md src/Symfony/Component/Debug/ErrorHandler.php src/Symfony/Component/Form/CHANGELOG.md src/Symfony/Component/VarDumper/Tests/CliDumperTest.php src/Symfony/Component/VarDumper/Tests/HtmlDumperTest.php
2015-04-05 09:20:29 +01:00
class: "Symfony\Component\VarDumper\Tests\CliDumperTest"
Merge branch '2.8' * 2.8: (65 commits) [VarDumper] Fix tests for HHVM Update DateTimeToArrayTransformer.php Mock microtime() and time() in transient tests Azerbaijani language pluralization rule Move HHVM tests out of the allowed failures Fix merge [2.6] Towards 100% HHVM compat [Security/Http] Fix test [Stopwatch] Fix test Minor fixes [Validator] Added missing error codes and turned codes into UUIDs Towards 100% HHVM compat Warmup twig templates in non-standard paths (closes #12507) [Bridge/PhpUnit] Enforce a consistent locale Fix param order of assertEquals (expected, actual) in test for Finder\Glob Fix choice translation domain for expanded choice widget unify default AccessDeniedExeption message trigger event with right user (add test) [Security] Initialize SwitchUserEvent::targetUser on attemptExitUser fixed CS ... Conflicts: UPGRADE-2.8.md src/Symfony/Bridge/ProxyManager/composer.json src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php src/Symfony/Bundle/FrameworkBundle/Resources/config/old_assets.xml src/Symfony/Bundle/FrameworkBundle/Resources/config/test.xml src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_public.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_services.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tag1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/builder_1_tags.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/definition_2.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_1.xml src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.json src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.md src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.txt src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures/Descriptor/legacy_synchronized_service_definition_2.xml src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/CsrfFormLoginBundle/Form/UserLoginFormType.php src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/CsrfFormLogin/config.yml src/Symfony/Bundle/SecurityBundle/composer.json src/Symfony/Component/Debug/ErrorHandler.php src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php src/Symfony/Component/DependencyInjection/Definition.php src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/legacy-container9.php src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/legacy-services9.dot src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/legacy-services6.xml src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/legacy-services9.xml src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/legacy-services6.yml src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/legacy-services9.yml src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php src/Symfony/Component/Form/ResolvedFormType.php src/Symfony/Component/Form/Tests/CompoundFormTest.php src/Symfony/Component/Process/Tests/AbstractProcessTest.php src/Symfony/Component/VarDumper/Tests/CliDumperTest.php src/Symfony/Component/VarDumper/Tests/HtmlDumperTest.php
2015-07-01 21:40:29 +01:00
this: Symfony\Component\VarDumper\Tests\CliDumperTest {{$r} }
parameters: {
\$a: {}
&\$b: {
typeHint: "PDO"
default: null
}
}
file: "{$var['file']}"
line: "{$var['line']} to {$var['line']}"
2014-04-05 20:31:16 +01:00
}
"line" => {$var['line']}
"nobj" => array:1 [
2014-10-10 16:31:59 +01:00
0 => &3 {#%d}
2014-04-05 20:31:16 +01:00
]
2014-10-10 16:31:59 +01:00
"recurs" => &4 array:1 [
0 => &4 array:1 [&4]
2014-04-05 20:31:16 +01:00
]
2015-06-30 18:32:40 +01:00
8 => &1 null
2014-10-10 16:31:59 +01:00
"sobj" => Symfony\Component\VarDumper\Tests\Fixture\DumbFoo {#%d}
"snobj" => &3 {#%d}
"snobj2" => {#%d}
2014-04-05 20:31:16 +01:00
"file" => "{$var['file']}"
b"bin-key-é" => ""
]
EOTXT
,
$out
);
}
/**
* @requires extension xml
*/
public function testXmlResource()
{
$var = xml_parser_create();
2015-07-01 13:07:40 +01:00
$this->assertDumpMatchesFormat(
<<<EOTXT
xml resource {
2015-07-01 13:07:40 +01:00
current_byte_index: %i
current_column_number: %i
current_line_number: 1
error_code: XML_ERROR_NONE
}
EOTXT
,
$var
);
}
public function testJsonCast()
{
$var = (array) json_decode('{"0":{},"1":null}');
foreach ($var as &$v) {
}
$var[] = &$v;
$var[''] = 2;
$this->assertDumpMatchesFormat(
<<<EOTXT
array:4 [
"0" => {}
"1" => &1 null
0 => &1 null
"" => 2
]
EOTXT
,
$var
);
}
public function testObjectCast()
{
$var = (object) array(1 => 1);
$var->{1} = 2;
$this->assertDumpMatchesFormat(
<<<EOTXT
{
+1: 1
+"1": 2
}
EOTXT
,
$var
);
}
2015-06-30 18:32:40 +01:00
public function testClosedResource()
{
if (defined('HHVM_VERSION') && HHVM_VERSION_ID < 30600) {
$this->markTestSkipped();
}
$var = fopen(__FILE__, 'r');
fclose($var);
$dumper = new CliDumper('php://output');
$dumper->setColors(false);
$cloner = new VarCloner();
$data = $cloner->cloneVar($var);
ob_start();
$dumper->dump($data);
$out = ob_get_clean();
$res = (int) $var;
$this->assertStringMatchesFormat(
<<<EOTXT
Unknown resource @{$res}
EOTXT
,
$out
);
}
public function testFlags()
{
putenv('DUMP_LIGHT_ARRAY=1');
putenv('DUMP_STRING_LENGTH=1');
$var = array(
2016-06-21 07:03:42 +01:00
range(1, 3),
array('foo', 2 => 'bar'),
);
$this->assertDumpEquals(
<<<EOTXT
[
[
1
2
3
]
[
0 => (3) "foo"
2 => (3) "bar"
]
]
EOTXT
,
$var
);
putenv('DUMP_LIGHT_ARRAY=');
putenv('DUMP_STRING_LENGTH=');
}
public function testThrowingCaster()
{
$out = fopen('php://memory', 'r+b');
require_once __DIR__.'/Fixtures/Twig.php';
$twig = new \__TwigTemplate_VarDumperFixture_u75a09(new \Twig_Environment(new \Twig_Loader_Filesystem()));
$dumper = new CliDumper();
$dumper->setColors(false);
$cloner = new VarCloner();
2015-06-30 18:32:40 +01:00
$cloner->addCasters(array(
':stream' => function ($res, $a) {
unset($a['wrapper_data']);
return $a;
},
));
$cloner->addCasters(array(
':stream' => eval('return function () use ($twig) {
try {
$twig->render(array());
} catch (\Twig_Error_Runtime $e) {
throw $e->getPrevious();
}
};'),
));
$line = __LINE__ - 2;
$ref = (int) $out;
$data = $cloner->cloneVar($out);
$dumper->dump($data, $out);
rewind($out);
$out = stream_get_contents($out);
if (method_exists($twig, 'getSource')) {
$twig = <<<EOTXT
2016-08-18 11:57:42 +01:00
foo.twig:%d: {
1: foo bar
2: twig source
3:
}
EOTXT;
} else {
$twig = '%A';
}
2015-06-30 18:32:40 +01:00
$r = defined('HHVM_VERSION') ? '' : '#%d';
$this->assertStringMatchesFormat(
<<<EOTXT
stream resource {@{$ref}
2016-02-12 17:39:33 +00:00
%Awrapper_type: "PHP"
stream_type: "MEMORY"
2015-06-30 18:32:40 +01:00
mode: "%s+b"
unread_bytes: 0
seekable: true
uri: "php://memory"
2016-02-12 17:39:33 +00:00
%Aoptions: []
2015-06-30 18:32:40 +01:00
: Symfony\Component\VarDumper\Exception\ThrowingCasterException {{$r}
2015-04-03 18:35:00 +01:00
#message: "Unexpected Exception thrown from a caster: Foobar"
-trace: {
%d. {$twig}
2016-08-18 11:57:42 +01:00
%d. %sTemplate.php:%d: {
%d: try {
%d: \$this->doDisplay(\$context, \$blocks);
%d: } catch (Twig_Error \$e) {
}
2016-08-18 11:57:42 +01:00
%d. %sTemplate.php:%d: {
%d: {
%d: \$this->displayWithErrorHandling(\$this->env->mergeGlobals(\$context), array_merge(\$this->blocks, \$blocks));
%d: }
}
2016-08-18 11:57:42 +01:00
%d. %sTemplate.php:%d: {
%d: try {
%d: \$this->display(\$context);
%d: } catch (Exception \$e) {
}
2016-08-18 11:57:42 +01:00
%d. %sCliDumperTest.php:{$line}: {
%d: }
{$line}: };'),
%d: ));
}
}
}
}
EOTXT
,
$out
);
}
public function testRefsInProperties()
{
$var = (object) array('foo' => 'foo');
$var->bar = &$var->foo;
$dumper = new CliDumper();
$dumper->setColors(false);
$cloner = new VarCloner();
$out = fopen('php://memory', 'r+b');
$data = $cloner->cloneVar($var);
$dumper->dump($data, $out);
rewind($out);
$out = stream_get_contents($out);
2015-06-30 18:32:40 +01:00
$r = defined('HHVM_VERSION') ? '' : '#%d';
$this->assertStringMatchesFormat(
<<<EOTXT
2015-06-30 18:32:40 +01:00
{{$r}
+"foo": &1 "foo"
+"bar": &1 "foo"
}
2014-04-05 20:31:16 +01:00
EOTXT
,
2015-03-30 16:59:31 +01:00
$out
);
}
/**
* @runInSeparateProcess
* @preserveGlobalState disabled
* @requires PHP 5.6
*/
public function testSpecialVars56()
{
$var = $this->getSpecialVars();
$this->assertDumpEquals(
<<<EOTXT
2015-01-13 12:58:22 +00:00
array:3 [
0 => array:1 [
0 => &1 array:1 [
0 => &1 array:1 [&1]
]
]
1 => array:1 [
"GLOBALS" => &2 array:1 [
"GLOBALS" => &2 array:1 [&2]
]
]
2015-01-13 12:58:22 +00:00
2 => &2 array:1 [&2]
]
EOTXT
,
2015-03-31 00:18:05 +01:00
$var
2014-04-05 20:31:16 +01:00
);
}
/**
* @runInSeparateProcess
* @preserveGlobalState disabled
*/
public function testGlobalsNoExt()
{
$var = $this->getSpecialVars();
unset($var[0]);
$out = '';
$dumper = new CliDumper(function ($line, $depth) use (&$out) {
if ($depth >= 0) {
$out .= str_repeat(' ', $depth).$line."\n";
}
});
$dumper->setColors(false);
$cloner = new VarCloner();
$refl = new \ReflectionProperty($cloner, 'useExt');
$refl->setAccessible(true);
$refl->setValue($cloner, false);
$data = $cloner->cloneVar($var);
$dumper->dump($data);
$this->assertSame(
<<<EOTXT
array:2 [
1 => array:1 [
"GLOBALS" => &1 array:1 [
"GLOBALS" => &1 array:1 [&1]
]
]
2 => &1 array:1 [&1]
]
EOTXT
,
$out
);
}
/**
* @runInSeparateProcess
* @preserveGlobalState disabled
*/
public function testBuggyRefs()
{
if (PHP_VERSION_ID >= 50600) {
$this->markTestSkipped('PHP 5.6 fixed refs counting');
}
$var = $this->getSpecialVars();
$var = $var[0];
$dumper = new CliDumper();
$dumper->setColors(false);
$cloner = new VarCloner();
$data = $cloner->cloneVar($var)->withMaxDepth(3);
$out = '';
$dumper->dump($data, function ($line, $depth) use (&$out) {
if ($depth >= 0) {
$out .= str_repeat(' ', $depth).$line."\n";
}
});
$this->assertSame(
<<<EOTXT
array:1 [
0 => array:1 [
0 => array:1 [
0 => array:1 [ …1]
]
]
]
EOTXT
,
$out
);
}
public function testIncompleteClass()
{
$unserializeCallbackHandler = ini_set('unserialize_callback_func', null);
$var = unserialize('O:8:"Foo\Buzz":0:{}');
ini_set('unserialize_callback_func', $unserializeCallbackHandler);
$this->assertDumpMatchesFormat(
<<<EOTXT
__PHP_Incomplete_Class(Foo\Buzz) {}
EOTXT
,
$var
);
}
private function getSpecialVars()
{
foreach (array_keys($GLOBALS) as $var) {
if ('GLOBALS' !== $var) {
unset($GLOBALS[$var]);
}
}
$var = function &() {
$var = array();
$var[] = &$var;
return $var;
};
return array($var(), $GLOBALS, &$GLOBALS);
}
2014-04-05 20:31:16 +01:00
}