registration: Improve duplicate config setting exception
[lhc/web/wiklou.git] / maintenance / convertExtensionToRegistration.php
index 4ae9558..6c1edc2 100644 (file)
@@ -13,7 +13,7 @@ class ConvertExtensionToRegistration extends Maintenance {
                'ResourceModuleSkinStyles' => 'handleResourceModules',
                'Hooks' => 'handleHooks',
                'ExtensionFunctions' => 'handleExtensionFunctions',
-               'ParserTestFiles' => 'removeAbsolutePath',
+               'ParserTestFiles' => 'removeAutodiscoveredParserTestFiles',
        ];
 
        /**
@@ -222,6 +222,22 @@ class ConvertExtensionToRegistration extends Maintenance {
                $this->json[$realName] = $out;
        }
 
+       protected function removeAutodiscoveredParserTestFiles( $realName, $value ) {
+               $out = [];
+               foreach ( $value as $key => $val ) {
+                       $path = $this->stripPath( $val, $this->dir );
+                       // When path starts with tests/parser/ the file would be autodiscovered with
+                       // extension registry, so no need to add it to extension.json
+                       if ( substr( $path, 0, 13 ) !== 'tests/parser/' || substr( $path, -4 ) !== '.txt' ) {
+                               $out[$key] = $path;
+                       }
+               }
+               // in the best case all entries are filtered out
+               if ( $out ) {
+                       $this->json[$realName] = $out;
+               }
+       }
+
        protected function handleCredits( $realName, $value ) {
                $keys = array_keys( $value );
                $this->json['type'] = $keys[0];