8000 disable global test listener when not registered · symfony/symfony@e068661 · GitHub
[go: up one dir, main page]

Skip to content

Commit e068661

Browse files
committed
disable global test listener when not registered
The global test listener is always initialized to register the clock mock and DNS mock as soon as possible. However, when the listener is registered locally through the PHPUnit config, it will never be registered as a listener. In thise case, the state of the local listener must be reset to correctly report expected deprecation test results.
1 parent 4b27628 commit e068661

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/Symfony/Bridge/PhpUnit/SymfonyTestsListener.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ public function __destruct()
6868
}
6969
}
7070

71+
public function globalListenerDisabled()
72+
{
73+
self::$globallyEnabled = false;
74+
$this->state = -1;
75+
}
76+
7177
public function startTestSuite(\PHPUnit_Framework_TestSuite $suite)
7278
{
7379
$suiteName = $suite->getName();

src/Symfony/Bridge/PhpUnit/TextUI/TestRunner.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,17 @@ protected function handleConfiguration(array &$arguments)
3333

3434
$arguments['listeners'] = isset($arguments['listeners']) ? $arguments['listeners'] : array();
3535

36-
if (!array_filter($arguments['listeners'], function ($listener) { return $listener instanceof SymfonyTestsListener; })) {
36+
$registeredLocally = false;
37+
38+
foreach ($arguments['listeners'] as $registeredListener) {
39+
if ($registeredListener instanceof SymfonyTestsListener) {
40+
$registeredListener->globalListenerDisabled();
41+
$registeredLocally = true;
42+
break;
43+
}
44+
}
45+
46+
if (!$registeredLocally) {
3747
$arguments['listeners'][] = $listener;
3848
}
3949

0 commit comments

Comments
 (0)
0