From 7f9aaf26e3b1a8dbf4a3f172a9a69aef820c931f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20Dziewo=C5=84ski?= Date: Fri, 27 May 2022 20:13:28 +0200 Subject: [PATCH] resourceloader: Allow using FilePath directly in 'packageFiles' array This already works in 'scripts', 'styles' etc. Change-Id: I56a0ee74595404e1c40483b84400056d6f87b07d --- includes/ResourceLoader/FileModule.php | 4 ++-- tests/qunit/QUnitTestResources.php | 10 ++-------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/includes/ResourceLoader/FileModule.php b/includes/ResourceLoader/FileModule.php index f5f89009ae1..b9ce3dfede4 100644 --- a/includes/ResourceLoader/FileModule.php +++ b/includes/ResourceLoader/FileModule.php @@ -1262,7 +1262,7 @@ class FileModule extends Module { $mainFile = null; foreach ( $this->packageFiles as $key => $fileInfo ) { - if ( is_string( $fileInfo ) ) { + if ( !is_array( $fileInfo ) ) { $fileInfo = [ 'name' => $fileInfo, 'file' => $fileInfo ]; } if ( !isset( $fileInfo['name'] ) ) { @@ -1271,7 +1271,7 @@ class FileModule extends Module { $this->getLogger()->error( $msg ); throw new LogicException( $msg ); } - $fileName = $fileInfo['name']; + $fileName = $this->getPath( $fileInfo['name'] ); // Infer type from alias if needed $type = $fileInfo['type'] ?? self::getPackageFileType( $fileName ); diff --git a/tests/qunit/QUnitTestResources.php b/tests/qunit/QUnitTestResources.php index 525353195dc..c94a6f81f1b 100644 --- a/tests/qunit/QUnitTestResources.php +++ b/tests/qunit/QUnitTestResources.php @@ -27,14 +27,8 @@ return [ 'localBasePath' => "{$GLOBALS['IP']}/resources/src/mediawiki.language/languages", 'remoteBasePath' => "{$GLOBALS['wgResourceBasePath']}/resources/src/mediawiki.language/languages", 'packageFiles' => [ - [ - 'name' => 'mediawiki.jqueryMsg.testdata.js', - 'file' => new FilePath( __DIR__ . '/data/mediawiki.jqueryMsg.testdata.js', '' ), - ], - [ - 'name' => 'mediawiki.jqueryMsg.data.json', - 'file' => new FilePath( __DIR__ . '/data/mediawiki.jqueryMsg.data.json', '' ), - ], + new FilePath( 'mediawiki.jqueryMsg.testdata.js', __DIR__ . '/data' ), + new FilePath( 'mediawiki.jqueryMsg.data.json', __DIR__ . '/data' ), 'bs.js', 'dsb.js', 'fi.js',