‪TYPO3CMS  ‪main
DebuggerUtilityTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
26 
27 final class ‪DebuggerUtilityTest extends UnitTestCase
28 {
29  #[Test]
30  public function ‪debuggerRewindsInstancesOfIterator(): void
31  {
32  $objectStorage = $this->getMockBuilder(ObjectStorage::class)->onlyMethods([])->getMock();
33  for ($i = 0; $i < 5; $i++) {
34  $obj = new \stdClass();
35  $obj->property = $i;
36  $objectStorage->attach($obj);
37  }
38  ‪DebuggerUtility::var_dump($objectStorage, null, 8, true, false, true);
39  self::assertTrue($objectStorage->valid());
40  }
41 
42  #[Test]
44  {
45  $generator = (static function () {
46  yield 1;
47  yield 2;
48  yield 3;
49  })();
50  $result = ‪DebuggerUtility::var_dump($generator, null, 8, true, false, true);
51  self::assertStringContainsString('Generator', $result);
52  }
53 
54  #[Test]
56  {
57  $testObject = new \stdClass();
58  $testObject->foo = 'bar';
59  $result = ‪DebuggerUtility::var_dump($testObject, null, 8, true, false, true);
60  self::assertMatchesRegularExpression('/foo.*bar/', $result);
61  }
62 
63  #[Test]
64  public function ‪varDumpHandlesVariadicArguments(): void
65  {
66  $result = ‪DebuggerUtility::var_dump(static function (...‪$args) {}, null, 8, true, false, true);
67  self::assertStringContainsString('function (...$args)', $result);
68  }
69 
70  #[Test]
72  {
73  $testClass = new \stdClass();
74  $testClass->secretData = 'I like cucumber.';
75  $testClass->notSoSecretData = 'I like burger.';
76 
77  $result = ‪DebuggerUtility::var_dump($testClass, null, 8, true, false, true, null, ['secretData']);
78  self::assertStringNotContainsString($testClass->secretData, $result);
79  }
80 
81  #[Test]
82  public function ‪varDumpRespectsBlacklistedClasses(): void
83  {
84  $testClass = new \stdClass();
85  $testClass->data = 'I like burger.';
86 
87  $result = ‪DebuggerUtility::var_dump($testClass, null, 8, true, false, true, [\stdClass::class]);
88  self::assertStringNotContainsString($testClass->data, $result);
89  }
90 
91  #[Test]
92  public function ‪varDumpShowsDumpOfDateTime(): void
93  {
94  $date = \DateTime::createFromFormat('Y-m-d H:i:s', '2018-11-26 09:27:28', new \DateTimeZone('UTC'));
95 
96  $result = ‪DebuggerUtility::var_dump($date, null, 8, true, false, true, [\stdClass::class]);
97  self::assertStringContainsString('2018-11-26T09:27:28', $result);
98  }
99 
100  #[Test]
102  {
103  $date = \DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2018-11-26 09:27:28', new \DateTimeZone('UTC'));
104 
105  $result = ‪DebuggerUtility::var_dump($date, null, 8, true, false, true, [\stdClass::class]);
106  self::assertStringContainsString('2018-11-26T09:27:28', $result);
107  }
108 
109  #[Test]
111  {
112  $closure = (static function (array $array) {});
113 
114  $result = ‪DebuggerUtility::var_dump($closure, null, 8, true, false, true, [\stdClass::class]);
115  self::assertStringContainsString('function (array $array)', $result);
116  }
117 
118  #[Test]
120  {
121  $closure = (static function (?array $array) {});
122 
123  $result = ‪DebuggerUtility::var_dump($closure, null, 8, true, false, true, [\stdClass::class]);
124  self::assertStringContainsString('function (array $array)', $result);
125  }
126 
127  #[Test]
129  {
130  $closure = (static function (‪DummyClass $class) {});
131 
132  $result = ‪DebuggerUtility::var_dump($closure, null, 8, true, false, true, [\stdClass::class]);
133  self::assertStringContainsString('function (TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DummyClass $class)', $result);
134  }
135 
136  #[Test]
138  {
139  $closure = (static function (int $int) {});
140 
141  $result = ‪DebuggerUtility::var_dump($closure, null, 8, true, false, true, [\stdClass::class]);
142  self::assertStringContainsString('function ($int)', $result);
143  }
144 
145  #[Test]
147  {
148  $closure = (static function (string $string) {});
149 
150  $result = ‪DebuggerUtility::var_dump($closure, null, 8, true, false, true, [\stdClass::class]);
151  self::assertStringContainsString('function ($string)', $result);
152  }
153 
154  #[Test]
156  {
157  $closure = (static function ($typeless) {});
158 
159  $result = ‪DebuggerUtility::var_dump($closure, null, 8, true, false, true, [\stdClass::class]);
160  self::assertStringContainsString('function ($typeless)', $result);
161  }
162 
163  #[Test]
164  public function ‪varDumpShowsUninitializedVariable(): void
165  {
166  $class = new class () {
167  protected \stdClass $test;
168  };
169 
170  $result = ‪DebuggerUtility::var_dump($class, null, 8, true, false, true);
171  self::assertStringContainsString('test => protected uninitialized', $result);
172  }
173 
174  #[Test]
175  public function ‪varDumpUsesNonceValue(): void
176  {
178  $class = new class () {
179  protected \stdClass $test;
180  };
181  $result = ‪DebuggerUtilityAccessibleProxy::var_dump($class, null, 8, false, false, true);
183  self::assertMatchesRegularExpression('#<style nonce="[^"]+">[^>]+</style>#m', $result);
184  }
185 }
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfDateTime
‪varDumpShowsDumpOfDateTime()
Definition: DebuggerUtilityTest.php:92
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsUninitializedVariable
‪varDumpShowsUninitializedVariable()
Definition: DebuggerUtilityTest.php:164
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfClosureWithStringClassParameterType
‪varDumpShowsDumpOfClosureWithStringClassParameterType()
Definition: DebuggerUtilityTest.php:146
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsPropertiesOfStdClassObjects
‪varDumpShowsPropertiesOfStdClassObjects()
Definition: DebuggerUtilityTest.php:55
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DebuggerUtilityAccessibleProxy\setStylesheetEchoed
‪static setStylesheetEchoed(bool $stylesheetEchoed)
Definition: DebuggerUtilityAccessibleProxy.php:32
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfDateTimeImmutable
‪varDumpShowsDumpOfDateTimeImmutable()
Definition: DebuggerUtilityTest.php:101
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\debuggerRewindsInstancesOfIterator
‪debuggerRewindsInstancesOfIterator()
Definition: DebuggerUtilityTest.php:30
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpRespectsBlacklistedClasses
‪varDumpRespectsBlacklistedClasses()
Definition: DebuggerUtilityTest.php:82
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfClosureWithArrayParameterType
‪varDumpShowsDumpOfClosureWithArrayParameterType()
Definition: DebuggerUtilityTest.php:110
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfClosureWithNullableArrayParameterTypeShowingOnlyArray
‪varDumpShowsDumpOfClosureWithNullableArrayParameterTypeShowingOnlyArray()
Definition: DebuggerUtilityTest.php:119
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpRespectsBlacklistedProperties
‪varDumpRespectsBlacklistedProperties()
Definition: DebuggerUtilityTest.php:71
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest
Definition: DebuggerUtilityTest.php:28
‪TYPO3\CMS\Extbase\Persistence\ObjectStorage
Definition: ObjectStorage.php:34
‪TYPO3\CMS\Extbase\Utility\DebuggerUtility\var_dump
‪static string var_dump( $variable, string $title=null, int $maxDepth=8, bool $plainText=false, bool $ansiColors=true, bool $return=false, array $blacklistedClassNames=null, array $blacklistedPropertyNames=null)
Definition: DebuggerUtility.php:490
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfClosureWithDummyClassParameterType
‪varDumpShowsDumpOfClosureWithDummyClassParameterType()
Definition: DebuggerUtilityTest.php:128
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfClosureWithoutClassParameterType
‪varDumpShowsDumpOfClosureWithoutClassParameterType()
Definition: DebuggerUtilityTest.php:155
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpHandlesVariadicArguments
‪varDumpHandlesVariadicArguments()
Definition: DebuggerUtilityTest.php:64
‪TYPO3\CMS\Extbase\Tests\Unit\Utility
Definition: DebuggerUtilityTest.php:18
‪TYPO3\CMS\Extbase\Utility\DebuggerUtility
Definition: DebuggerUtility.php:41
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DebuggerUtilityAccessibleProxy\getStylesheetEchoed
‪static getStylesheetEchoed()
Definition: DebuggerUtilityAccessibleProxy.php:27
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpUsesNonceValue
‪varDumpUsesNonceValue()
Definition: DebuggerUtilityTest.php:175
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\varDumpShowsDumpOfClosureWithIntClassParameterType
‪varDumpShowsDumpOfClosureWithIntClassParameterType()
Definition: DebuggerUtilityTest.php:137
‪$args
‪$args
Definition: validateRstFiles.php:258
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DebuggerUtilityAccessibleProxy
Definition: DebuggerUtilityAccessibleProxy.php:26
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DummyClass
Definition: DummyClass.php:24
‪TYPO3\CMS\Extbase\Tests\Unit\Utility\DebuggerUtilityTest\debuggerDoesNotRewindInstancesOfGenerator
‪debuggerDoesNotRewindInstancesOfGenerator()
Definition: DebuggerUtilityTest.php:43