From 341dd5dd1dec50c1a0f5c2f24312088b8ee0a551 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 5 Feb 2020 11:18:03 +0100 Subject: [PATCH] [PhpUnitBridge] fix getting the vendor/ dir for tests --- .../DeprecationTest.php | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php index d1faa0cad850..33b021c6012d 100644 --- a/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php +++ b/src/Symfony/Bridge/PhpUnit/Tests/DeprecationErrorHandler/DeprecationTest.php @@ -19,22 +19,32 @@ class DeprecationTest extends TestCase { - public static function setUpBeforeClass(): void + private static $vendorDir; + + private static function getVendorDir(): string { - $vendorDir = self::getVendorDir(); + if (null !== self::$vendorDir) { + return self::$vendorDir; + } + + foreach (get_declared_classes() as $class) { + if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { + $r = new \ReflectionClass($class); + $vendorDir = \dirname(\dirname($r->getFileName())); + if (file_exists($vendorDir.'/composer/installed.json') && @mkdir($vendorDir.'/myfakevendor/myfakepackage1', 0777, true)) { + break; + } + } + } - mkdir($vendorDir.'/myfakevendor/myfakepackage1', 0777, true); + self::$vendorDir = $vendorDir; mkdir($vendorDir.'/myfakevendor/myfakepackage2'); touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile1.php'); touch($vendorDir.'/myfakevendor/myfakepackage1/MyFakeFile2.php'); touch($vendorDir.'/myfakevendor/myfakepackage2/MyFakeFile.php'); - } - private static function getVendorDir(): string - { - $reflection = new \ReflectionClass(ClassLoader::class); - return \dirname($reflection->getFileName(), 2); + return self::$vendorDir; } public function testItCanDetermineTheClassWhereTheDeprecationHappened() @@ -184,7 +194,7 @@ public function testGetTypeDetectsSelf(string $expectedType, string $message, st ['class' => $traceClass, 'function' => 'myMethod'], ]; $deprecation = new Deprecation($message, $trace, $file); - $this->assertEquals($expectedType, $deprecation->getType()); + $this->assertSame($expectedType, $deprecation->getType()); } public function providerGetTypeUsesRightTrace(): array @@ -240,7 +250,7 @@ public function testGetTypeUsesRightTrace(string $expectedType, string $message, $trace, self::getVendorDir().'/myfakevendor/myfakepackage2/MyFakeFile.php' ); - $this->assertEquals($expectedType, $deprecation->getType()); + $this->assertSame($expectedType, $deprecation->getType()); } /**