From 634c2ec2afd93827e5aaf571396eb76d35948188 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Mon, 25 Jun 2018 13:32:30 +0200 Subject: [PATCH] Use pathinfo() in AutoLoaderStructureTest::testPSR4Completeness When setting AutoloadNamespaces to './' in extension.json, the test AutoLoaderStructureTest::testPSR4Completeness would fail. The directory path is not made canonical while the file is, which causes the substr() call being used to strip too many characters. For example: $dir : /mediawiki/extensions/Wikidata.org/./ $file: /mediawiki/extensions/Wikidata.org/Hooks.php $abbrFileName = substr( substr( $file, strlen( $dir ) ), 0, -4 ); >>> oks Use pathinfo() to parse the filename. Yields 'Hooks' as expected. Bug: T198077 Change-Id: Ia8a11d87788b32ddb426a16a61b410b05ff5f15e --- tests/phpunit/structure/AutoLoaderStructureTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/phpunit/structure/AutoLoaderStructureTest.php b/tests/phpunit/structure/AutoLoaderStructureTest.php index 2800d021f8..7163916225 100644 --- a/tests/phpunit/structure/AutoLoaderStructureTest.php +++ b/tests/phpunit/structure/AutoLoaderStructureTest.php @@ -46,7 +46,7 @@ class AutoLoaderStructureTest extends MediaWikiTestCase { // Check that the expected class name (based on the filename) is the // same as the one we found. // Strip directory prefix from front of filename, and .php extension - $abbrFileName = substr( substr( $file, strlen( $dir ) ), 0, -4 ); + $abbrFileName = pathinfo( $file, PATHINFO_FILENAME ); $expectedClassName = $prefix . str_replace( '/', '\\', $abbrFileName ); $this->assertSame( -- 2.20.1