|
11 | 11 |
|
12 | 12 | namespace Symfony\Bridge\PhpUnit\DeprecationErrorHandler; |
13 | 13 |
|
| 14 | +use PHPUnit\Framework\TestCase; |
| 15 | +use PHPUnit\Framework\TestSuite; |
14 | 16 | use PHPUnit\Util\Test; |
15 | 17 | use Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerFor; |
16 | 18 | use Symfony\Component\Debug\DebugClassLoader as LegacyDebugClassLoader; |
@@ -82,37 +84,41 @@ public function __construct($message, array $trace, $file) |
82 | 84 | } |
83 | 85 | } |
84 | 86 |
|
85 | | - if (isset($line['object']) || isset($line['class'])) { |
86 | | - if (!isset($line['class'], $trace[$i - 2]['function']) || 0 !== strpos($line['class'], SymfonyTestsListenerFor::class)) { |
87 | | - $this->originClass = isset($line['object']) ? \get_class($line['object']) : $line['class']; |
88 | | - $this->originMethod = $line['function']; |
| 87 | + if (!isset($line['object']) && !isset($line['class'])) { |
| 88 | + return; |
| 89 | + } |
89 | 90 |
|
90 | | - return; |
91 | | - } |
| 91 | + if (!isset($line['class'], $trace[$i - 2]['function']) || 0 !== strpos($line['class'], SymfonyTestsListenerFor::class)) { |
| 92 | + $this->originClass = isset($line['object']) ? \get_class($line['object']) : $line['class']; |
| 93 | + $this->originMethod = $line['function']; |
92 | 94 |
|
93 | | - if ('trigger_error' !== $trace[$i - 2]['function'] || isset($trace[$i - 2]['class'])) { |
94 | | - $this->originClass = \get_class($line['args'][0]); |
95 | | - $this->originMethod = $line['args'][0]->getName(); |
| 95 | + return; |
| 96 | + } |
96 | 97 |
|
97 | | - return; |
98 | | - } |
| 98 | + $test = isset($line['args'][0]) ? $line['args'][0] : null; |
99 | 99 |
|
100 | | - set_error_handler(function () {}); |
101 | | - $parsedMsg = unserialize($this->message); |
102 | | - restore_error_handler(); |
103 | | - $this->message = $parsedMsg['deprecation']; |
104 | | - $this->originClass = $parsedMsg['class']; |
105 | | - $this->originMethod = $parsedMsg['method']; |
106 | | - if (isset($parsedMsg['files_stack'])) { |
107 | | - $this->originalFilesStack = $parsedMsg['files_stack']; |
108 | | - } |
109 | | - // If the deprecation has been triggered via |
110 | | - // \Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerTrait::endTest() |
111 | | - // then we need to use the serialized information to determine |
112 | | - // if the error has been triggered from vendor code. |
113 | | - if (isset($parsedMsg['triggering_file'])) { |
114 | | - $this->triggeringFile = $parsedMsg['triggering_file']; |
115 | | - } |
| 100 | + if (($test instanceof TestCase || $test instanceof TestSuite) && ('trigger_error' !== $trace[$i - 2]['function'] || isset($trace[$i - 2]['class']))) { |
| 101 | + $this->originClass = \get_class($line['args'][0]); |
| 102 | + $this->originMethod = $line['args'][0]->getName(); |
| 103 | + |
| 104 | + return; |
| 105 | + } |
| 106 | + |
| 107 | + set_error_handler(function () {}); |
| 108 | + $parsedMsg = unserialize($this->message); |
| 109 | + restore_error_handler(); |
| 110 | + $this->message = $parsedMsg['deprecation']; |
| 111 | + $this->originClass = $parsedMsg['class']; |
| 112 | + $this->originMethod = $parsedMsg['method']; |
| 113 | + if (isset($parsedMsg['files_stack'])) { |
| 114 | + $this->originalFilesStack = $parsedMsg['files_stack']; |
| 115 | + } |
| 116 | + // If the deprecation has been triggered via |
| 117 | + // \Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerTrait::endTest() |
| 118 | + // then we need to use the serialized information to determine |
| 119 | + // if the error has been triggered from vendor code. |
| 120 | + if (isset($parsedMsg['triggering_file'])) { |
| 121 | + $this->triggeringFile = $parsedMsg['triggering_file']; |
116 | 122 | } |
117 | 123 | } |
118 | 124 |
|
|
0 commit comments