1515use Symfony \Bridge \PhpUnit \DeprecationErrorHandler \Configuration ;
1616use Symfony \Bridge \PhpUnit \DeprecationErrorHandler \Deprecation ;
1717use Symfony \Bridge \PhpUnit \DeprecationErrorHandler \DeprecationGroup ;
18+ use Symfony \Component \ErrorHandler \DebugClassLoader ;
1819
1920class ConfigurationTest extends TestCase
2021{
@@ -356,7 +357,7 @@ public function testBaselineGenerationEmptyFile()
356357 $ this ->assertTrue ($ configuration ->isBaselineDeprecation (new Deprecation ('Test message 1 ' , $ trace , '' )));
357358 $ configuration ->writeBaseline ();
358359 $ this ->assertEquals ($ filename , $ configuration ->getBaselineFile ());
359- $ expected_baseline = [
360+ $ expected = [
360361 [
361362 'location ' => 'Symfony\Bridge\PhpUnit\Tests\DeprecationErrorHandler\ConfigurationTest::runTest ' ,
362363 'message ' => 'Test message 1 ' ,
@@ -368,7 +369,7 @@ public function testBaselineGenerationEmptyFile()
368369 'count ' => 1 ,
369370 ],
370371 ];
371- $ this ->assertEquals (json_encode ($ expected_baseline , \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ), file_get_contents ($ filename ));
372+ $ this ->assertEquals (json_encode ($ expected , \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ), file_get_contents ($ filename ));
372373 }
373374
374375 public function testBaselineGenerationNoFile ()
@@ -383,7 +384,7 @@ public function testBaselineGenerationNoFile()
383384 $ this ->assertTrue ($ configuration ->isBaselineDeprecation (new Deprecation ('Test message 1 ' , $ trace , '' )));
384385 $ configuration ->writeBaseline ();
385386 $ this ->assertEquals ($ filename , $ configuration ->getBaselineFile ());
386- $ expected_baseline = [
387+ $ expected = [
387388 [
388389 'location ' => 'Symfony\Bridge\PhpUnit\Tests\DeprecationErrorHandler\ConfigurationTest::runTest ' ,
389390 'message ' => 'Test message 1 ' ,
@@ -395,7 +396,7 @@ public function testBaselineGenerationNoFile()
395396 'count ' => 2 ,
396397 ],
397398 ];
398- $ this ->assertEquals (json_encode ($ expected_baseline , \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ), file_get_contents ($ filename ));
399+ $ this ->assertEquals (json_encode ($ expected , \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ), file_get_contents ($ filename ));
399400 }
400401
401402 public function testExistingBaseline ()
@@ -447,7 +448,7 @@ public function testExistingBaselineAndGeneration()
447448 $ this ->assertTrue ($ configuration ->isBaselineDeprecation (new Deprecation ('Test message 3 ' , $ trace , '' )));
448449 $ configuration ->writeBaseline ();
449450 $ this ->assertEquals ($ filename , $ configuration ->getBaselineFile ());
450- $ expected_baseline = [
451+ $ expected = [
451452 [
452453 'location ' => 'Symfony\Bridge\PhpUnit\Tests\DeprecationErrorHandler\ConfigurationTest::runTest ' ,
453454 'message ' => 'Test message 2 ' ,
@@ -459,7 +460,44 @@ public function testExistingBaselineAndGeneration()
459460 'count ' => 1 ,
460461 ],
461462 ];
462- $ this ->assertEquals (json_encode ($ expected_baseline , \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ), file_get_contents ($ filename ));
463+ $ this ->assertEquals (json_encode ($ expected , \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ), file_get_contents ($ filename ));
464+ }
465+
466+ public function testBaselineGenerationWithDeprecationTriggeredByDebugClassLoader ()
467+ {
468+ $ filename = $ this ->createFile ();
469+ $ configuration = Configuration::fromUrlEncodedString ('generateBaseline=true&baselineFile= ' .urlencode ($ filename ));
470+
471+ $ trace = debug_backtrace ();
472+ $ this ->assertTrue ($ configuration ->isBaselineDeprecation (new Deprecation ('Regular deprecation ' , $ trace , '' )));
473+
474+ $ trace [2 ] = [
475+ 'class ' => DebugClassLoader::class,
476+ 'function ' => 'testBaselineGenerationWithDeprecationTriggeredByDebugClassLoader ' ,
477+ 'args ' => [self ::class]
478+ ];
479+
480+ $ deprecation = new Deprecation ('Deprecation by debug class loader ' , $ trace , '' );
481+
482+ $ this ->assertTrue ($ deprecation ->originatesFromDebugClassLoader ());
483+
484+ $ this ->assertTrue ($ configuration ->isBaselineDeprecation ($ deprecation ));
485+
486+ $ configuration ->writeBaseline ();
487+ $ this ->assertEquals ($ filename , $ configuration ->getBaselineFile ());
488+ $ expected = [
489+ [
490+ 'location ' => 'Symfony\Bridge\PhpUnit\Tests\DeprecationErrorHandler\ConfigurationTest::runTest ' ,
491+ 'message ' => 'Regular deprecation ' ,
492+ 'count ' => 1 ,
493+ ],
494+ [
495+ 'location ' => self ::class,
496+ 'message ' => 'Deprecation by debug class loader ' ,
497+ 'count ' => 1 ,
498+ ],
499+ ];
500+ $ this ->assertEquals (json_encode ($ expected , \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES ), file_get_contents ($ filename ));
463501 }
464502
465503 public function testBaselineArgumentException ()
0 commit comments