Skip to content

Commit 41b3e08

Browse files
committed
Merge branch '5.2' into 5.3
* 5.2: [PhpUnitBridge] Fix deprecation handler with PHPUnit 10 Revert CI workaround for masterminds/html5
2 parents 79dbbd9 + 7a8e561 commit 41b3e08

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

DeprecationErrorHandler.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Bridge\PhpUnit;
1313

1414
use PHPUnit\Framework\TestResult;
15+
use PHPUnit\Util\Error\Handler;
1516
use PHPUnit\Util\ErrorHandler;
1617
use Symfony\Bridge\PhpUnit\DeprecationErrorHandler\Configuration;
1718
use Symfony\Bridge\PhpUnit\DeprecationErrorHandler\Deprecation;
@@ -38,7 +39,7 @@ class DeprecationErrorHandler
3839
private $deprecationGroups = [];
3940

4041
private static $isRegistered = false;
41-
private static $isAtLeastPhpUnit83;
42+
private static $errorHandler;
4243

4344
public function __construct()
4445
{
@@ -347,16 +348,23 @@ private function displayDeprecations($groups, $configuration, $isFailing)
347348

348349
private static function getPhpUnitErrorHandler()
349350
{
350-
if (!isset(self::$isAtLeastPhpUnit83)) {
351-
self::$isAtLeastPhpUnit83 = class_exists(ErrorHandler::class) && method_exists(ErrorHandler::class, '__invoke');
351+
if (!$eh = self::$errorHandler) {
352+
if (class_exists(Handler::class)) {
353+
$eh = self::$errorHandler = Handler::class;
354+
} elseif (method_exists(ErrorHandler::class, '__invoke')) {
355+
$eh = self::$errorHandler = ErrorHandler::class;
356+
} else {
357+
return self::$errorHandler = 'PHPUnit\Util\ErrorHandler::handleError';
358+
}
352359
}
353-
if (!self::$isAtLeastPhpUnit83) {
354-
return 'PHPUnit\Util\ErrorHandler::handleError';
360+
361+
if ('PHPUnit\Util\ErrorHandler::handleError' === $eh) {
362+
return $eh;
355363
}
356364

357365
foreach (debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS) as $frame) {
358366
if (isset($frame['object']) && $frame['object'] instanceof TestResult) {
359-
return new ErrorHandler(
367+
return new $eh(
360368
$frame['object']->getConvertDeprecationsToExceptions(),
361369
$frame['object']->getConvertErrorsToExceptions(),
362370
$frame['object']->getConvertNoticesToExceptions(),

DeprecationErrorHandler/Deprecation.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
use PHPUnit\Framework\TestCase;
1515
use PHPUnit\Framework\TestSuite;
16+
use PHPUnit\Metadata\Api\Groups;
17+
use PHPUnit\Util\Error\Handler;
1618
use PHPUnit\Util\Test;
1719
use Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerFor;
1820
use Symfony\Component\Debug\DebugClassLoader as LegacyDebugClassLoader;
@@ -201,12 +203,13 @@ public function isLegacy()
201203
}
202204

203205
$method = $this->originatingMethod();
206+
$groups = class_exists(Groups::class) ? [new Groups(), 'groups'] : [Test::class, 'getGroups'];
204207

205208
return 0 === strpos($method, 'testLegacy')
206209
|| 0 === strpos($method, 'provideLegacy')
207210
|| 0 === strpos($method, 'getLegacy')
208211
|| strpos($this->originClass, '\Legacy')
209-
|| \in_array('legacy', Test::getGroups($this->originClass, $method), true);
212+
|| \in_array('legacy', $groups($this->originClass, $method), true);
210213
}
211214

212215
/**

0 commit comments

Comments
 (0)