jenkins-bot has submitted this change and it was merged.

Change subject: Make use of UnitTestsList hook & Fix compat
......................................................................


Make use of UnitTestsList hook & Fix compat

Introduces JsonSerializable interface for use before
version 5.4 php

Change-Id: I60586d497c561e9d12fc3a76b7aec9afbdfa2495
---
M MassAction.php
A compat/JsonSerializable.php
A config/empty.php
M src/MassActionHooks.php
M src/Targets/WikiPage/Matchers/RedirectMatcher.php
5 files changed, 50 insertions(+), 1 deletion(-)

Approvals:
  Legoktm: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/MassAction.php b/MassAction.php
index 64f0c96..b500f5d 100644
--- a/MassAction.php
+++ b/MassAction.php
@@ -23,8 +23,19 @@
        }
 });
 
+// Load compat files where needed
+if ( !interface_exists( 'JsonSerializable', false ) ) {
+       require_once __DIR__ . '/compat/JsonSerializable.php';
+}
+
 // Setup the extension!
 call_user_func( function() {
+       # If no config is yet loaded load an empty one
+       global $wgMassActionConfig;
+       if( !isset( $wgMassActionConfig ) ) {
+               require_once __DIR__ . '/config/empty.php';
+       }
+
        # Register Special:Version details
        global $wgExtensionCredits;
        $wgExtensionCredits['MassAction'][] = array(
@@ -48,6 +59,7 @@
        # Schema updates for update.php
        global $wgHooks;
        $wgHooks['LoadExtensionSchemaUpdates'][] = 
'MassAction\\MassActionHooks::onLoadExtensionSchemaUpdates';
+       $wgHooks['UnitTestsList'][] = 
'MassAction\\MassActionHooks::onUnitTestsList';
 
        # Add own log type
        global $wgLogTypes;
@@ -74,3 +86,4 @@
        );
 
 } );
+
diff --git a/compat/JsonSerializable.php b/compat/JsonSerializable.php
new file mode 100644
index 0000000..2258ef9
--- /dev/null
+++ b/compat/JsonSerializable.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * PHP 5.3 compatibility for PHP 5.4's \JsonSerializable
+ */
+interface JsonSerializable {
+
+       public function jsonSerialize();
+
+}
\ No newline at end of file
diff --git a/config/empty.php b/config/empty.php
new file mode 100644
index 0000000..54c1718
--- /dev/null
+++ b/config/empty.php
@@ -0,0 +1,8 @@
+<?php
+
+call_user_func( function() {
+       global $wgMassActionConfig;
+       $wgMassActionConfig = array(
+               'targets' => array(),
+       );
+} );
\ No newline at end of file
diff --git a/src/MassActionHooks.php b/src/MassActionHooks.php
index 3bc677f..34c90a5 100644
--- a/src/MassActionHooks.php
+++ b/src/MassActionHooks.php
@@ -3,6 +3,9 @@
 namespace MassAction;
 
 use DatabaseUpdater;
+use RecursiveDirectoryIterator;
+use RecursiveIteratorIterator;
+use SplFileInfo;
 
 /**
  * @licence GNU GPL v2+
@@ -25,4 +28,19 @@
                return true;
        }
 
+       public static function onUnitTestsList( &$files ) {
+               $directoryIterator = new RecursiveDirectoryIterator( __DIR__ . 
'/../tests/phpunit/' );
+               /**
+                * @var SplFileInfo $fileInfo
+                */
+               $ourFiles = array();
+               foreach ( new RecursiveIteratorIterator( $directoryIterator ) 
as $fileInfo ) {
+                       if ( substr( $fileInfo->getFilename(), -8 ) === 
'Test.php' ) {
+                               $ourFiles[] = $fileInfo->getPathname();
+                       }
+               }
+               $files = array_merge( $files, $ourFiles );
+               return true;
+       }
+
 }
diff --git a/src/Targets/WikiPage/Matchers/RedirectMatcher.php 
b/src/Targets/WikiPage/Matchers/RedirectMatcher.php
index f1cd26e..1fd2e3a 100644
--- a/src/Targets/WikiPage/Matchers/RedirectMatcher.php
+++ b/src/Targets/WikiPage/Matchers/RedirectMatcher.php
@@ -20,7 +20,7 @@
         * @param bool $redirectState
         */
        public function __construct( $redirectState ) {
-               $this->redirectState = boolval( $redirectState );
+               $this->redirectState = (bool) $redirectState;
        }
 
        public function getDescription() {

-- 
To view, visit https://gerrit.wikimedia.org/r/205275
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I60586d497c561e9d12fc3a76b7aec9afbdfa2495
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/MassAction
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to