Merge "Fix findHooks.php"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 18 Sep 2017 09:17:06 +0000 (09:17 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 18 Sep 2017 09:17:06 +0000 (09:17 +0000)
docs/hooks.txt
maintenance/findHooks.php

index b7fe8c1..a19e9fc 100644 (file)
@@ -996,13 +996,10 @@ $special: ChangesListSpecialPage instance
 'ChangesListSpecialPageQuery': Called when building SQL query on pages
 inheriting from ChangesListSpecialPage (in core: RecentChanges,
 RecentChangesLinked and Watchlist).
-
 Do not use this to implement individual filters if they are compatible with the
 ChangesListFilter and ChangesListFilterGroup structure.
-
 Instead, use sub-classes of those classes, in conjunction with the
 ChangesListSpecialPageStructuredFilters hook.
-
 This hook can be used to implement filters that do not implement that structure,
 or custom behavior that is not an individual filter.
 $name: name of the special page, e.g. 'Watchlist'
@@ -1017,20 +1014,16 @@ $opts: FormOptions for this request
 filters for pages inheriting from ChangesListSpecialPage (in core: RecentChanges,
 RecentChangesLinked, and Watchlist).  Generally, you will want to construct
 new ChangesListBooleanFilter or ChangesListStringOptionsFilter objects.
-
 When constructing them, you specify which group they belong to.  You can reuse
 existing groups (accessed through $special->getFilterGroup), or create your own
 (ChangesListBooleanFilterGroup or ChangesListStringOptionsFilterGroup).
 If you create new groups, you must register them with $special->registerFilterGroup.
-
 Note that this is called regardless of whether the user is currently using
 the new (structured) or old (unstructured) filter UI.  If you want your boolean
 filter to show on both the new and old UI, specify all the supported fields.
 These include showHide, label, and description.
-
 See the constructor of each ChangesList* class for documentation of supported
 fields.
-
 $special: ChangesListSpecialPage instance
 
 'ChangeTagAfterDelete': Called after a change tag has been deleted (that is,
index 81e18c9..fd36db1 100644 (file)
@@ -79,6 +79,9 @@ class FindHooks extends Maintenance {
                $nonRecurseDirs = [
                        "$IP/",
                ];
+               $extraFiles = [
+                       "$IP/tests/phpunit/MediaWikiTestCase.php",
+               ];
 
                foreach ( $recurseDirs as $dir ) {
                        $ret = $this->getHooksFromDir( $dir, self::FIND_RECURSIVE );
@@ -90,6 +93,10 @@ class FindHooks extends Maintenance {
                        $potentialHooks = array_merge( $potentialHooks, $ret['good'] );
                        $badHooks = array_merge( $badHooks, $ret['bad'] );
                }
+               foreach ( $extraFiles as $file ) {
+                       $potentialHooks = array_merge( $potentialHooks, $this->getHooksFromFile( $file ) );
+                       $badHooks = array_merge( $badHooks, $this->getBadHooksFromFile( $file ) );
+               }
 
                $documented = array_keys( $documentedHooks );
                $potential = array_keys( $potentialHooks );
@@ -262,6 +269,8 @@ class FindHooks extends Maintenance {
                                $n = [];
                                if ( preg_match_all( '/((?:[^,\(\)]|\([^\(\)]*\))+)/', $match[4], $n ) ) {
                                        $args = array_map( 'trim', $n[1] );
+                                       // remove empty entries from trailing spaces
+                                       $args = array_filter( $args );
                                }
                        } elseif ( isset( $match[3] ) ) {
                                // Found a parameter for Hooks::run,