8000 Test change vendor dir search · symfony/symfony@2835bcb · GitHub
[go: up one dir, main page]

Skip to content

Commit 2835bcb

Browse files
committed
Test change vendor dir search
1 parent 5494b45 commit 2835bcb

File tree

1 file changed

+53
-15
lines changed

1 file changed

+53
-15
lines changed

src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php

Lines changed: 53 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,30 @@
1111

1212
namespace Symfony\Bridge\PhpUnit\Tests\DeprecationErrorHandler;
1313

14+
use Composer\Autoload\ClassLoader;
1415
use PHPUnit\Framework\TestCase;
1516
use Symfony\Bridge\PhpUnit\DeprecationErrorHandler\Deprecation;
1617
use Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerForV5;
1718

1819
class DeprecationTest extends TestCase
1920
{
21+
public static function setUpBeforeClass(): void
22+
{
23+
$vendorDir = self::getVendorDir();
24+
25+
mkdir($vendorDir.'/myfakevendor/myfakepackage1', 0777, true);
26+
mkdir($vendorDir.'/myfakevendor/myfakepackage2');
27+
touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php');
28+
touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile2.php');
29+
touch($vendorDir.'/myfakevendor/myfakepackage2/MyFakeFile.php');
30+
}
31+
32+
private static function getVendorDir(): string
33+
{
34+
$reflection = new \ReflectionClass(ClassLoader::class);
35+
return dirname($reflection->getFileName(), 2);
36+
}
37+
2038
public function testItCanDetermineTheClassWhereTheDeprecationHappened()
2139
{
2240
$deprecation = new Deprecation('💩', $this->debugBacktrace(), __FILE__);
@@ -91,51 +109,53 @@ public function providerIsSelf(): array
91109
/**
92110
* @dataProvider providerIsSelf
93111
*/
94-
public function testIsSelf(bool $expectedIsSelf, string $message, string $traceClass, string $file): void
112+
/*public function testIsSelf(bool $expectedIsSelf, string $message, string $traceClass, string $file): void
95113
{
96114
$trace = [
97115
['class' => 'MyClass1', 'function' => 'myMethod'],
98116
['class' => $traceClass, 'function' => 'myMethod'],
99117
];
100118
$deprecation = new Deprecation($message, $trace, $file);
101119
$this->assertEquals($expectedIsSelf, $deprecation->isSelf());
102-
}
120+
}*/
103121

104122
public function providerIsIndirectUsesRightTrace(): array
105123
{
124+
$vendorDir = self::getVendorDir();
125+
106126
return [
107-
[false, '', [['function' => 'myfunc1'], ['function' => 'myfunc2']]],
108-
[
127+
'no_file_in_stack' => [false, '', [['function' => 'myfunc1'], ['function' => 'myfunc2']]],
128+
'files_in_stack_from_various_packages' => [
109129
true,
110130
'',
111131
[
112-
['function' => 'myfunc1', 'file' => __DIR__.'/../../../../../../vendor/composer/ClassLoader.php'],
113-
['function' => 'myfunc2', 'file' => __DIR__.'/../../../../../../vendor/bin/simple-phpunit'],
132+
['function' => 'myfunc1', 'file' => $vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php'],
133+
['function' => 'myfunc2', 'file' => $vendorDir.'/myfakevendor/myfakepackage2/MyFakeFile.php'],
114134
],
115135
],
116-
[
136+
'serialized_stack_files_from_same_package' => [
117137
false,
118138
serialize([
119139
'deprecation' => 'My deprecation message',
120140
'class' => 'MyClass',
121141
'method' => 'myMethod',
122142
'files_stack' => [
123-
__DIR__.'/../../../../../../vendor/symfony/phpunit-bridge/DeprecationErrorHandler.php',
124-
__DIR__.'/../../../../../../vendor/bin/simple-phpunit',
143+
$vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php',
144+
$vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile2.php',
125145
],
126146
]),
127147
[['function' => 'myfunc1'], ['class' => SymfonyTestsListenerForV5::class, 'method' => 'mymethod']],
128148
],
129-
[
149+
'serialized_stack_files_from_various_packages' => [
130150
true,
131151
serialize([
132152
'deprecation' => 'My deprecation message',
133153
'class' => 'MyClass',
134154
'method' => 'myMethod',
135155
'files_stack' => [
136-
__DIR__.'/../../../../../../vendor/composer/ClassLoader.php',
137-
__DIR__.'/../../../../../../vendor/bin/simple-phpunit',
138-
],
156+
$vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php',
157+
$vendorDir.'/myfakevendor/myfakepackage2/MyFakeFile.php',
158+
],
139159
]),
140160
[['function' => 'myfunc1'], ['class' => SymfonyTestsListenerForV5::class, 'method' => 'mymethod']],
141161
],
@@ -145,11 +165,11 @@ public function providerIsIndirectUsesRightTrace(): array
145165
/**
146166
* @dataProvider providerIsIndirectUsesRightTrace
147167
*/
148-
public function testIsIndirectUsesRightTrace(bool $expectedIsIndirect, string $message, array $trace): void
168+
/*public function testIsIndirectUsesRightTrace(bool $expectedIsIndirect, string $message, array $trace): void
149169
{
150170
$deprecation = new Deprecation($message, $trace, '');
151171
$this->assertEquals($expectedIsIndirect, $deprecation->isIndirect());
152-
}
172+
}*/
153173

154174
/**
155175
* This method is here to simulate the extra level from the piece of code
@@ -159,4 +179,22 @@ public function debugBacktrace(): array
159179
{
160180
return debug_backtrace();
161181
}
182+
183+
private static function removeDir($dir): void
184+
{
185+
$files = glob($dir.'/*');
186+
foreach ($files as $file) {
187+
if (is_file($file)) {
188+
unlink($file);
189+
} else {
190+
self::removeDir($file);
191+
}
192+
}
193+
rmdir($dir);
194+
}
195+
196+
public static function tearDownAfterClass(): void
197+
{
198+
self::removeDir(self::getVendorDir().'/myfakevendor');
199+
}
162200
}

0 commit comments

Comments
 (0)
0