Aude has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/210041

Change subject: Update Wikibase - fix bug with Wikibase interaction w/ 
AbuseFilter
......................................................................

Update Wikibase - fix bug with Wikibase interaction w/ AbuseFilter

Change-Id: I94d3adb2cb4fbc2d04f8127e23a4f8e2c93acc7d
---
M composer.lock
M extensions/Wikibase/repo/includes/EditEntity.php
M extensions/Wikibase/repo/tests/phpunit/includes/EditEntityTest.php
M vendor/composer/ClassLoader.php
M vendor/composer/installed.json
5 files changed, 64 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata 
refs/changes/41/210041/1

diff --git a/composer.lock b/composer.lock
index 1b7223d..404b5f6 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,7 +1,7 @@
 {
     "_readme": [
         "This file locks the dependencies of your project to a known state",
-        "Read more about it at 
http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
+        "Read more about it at 
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
         "This file is @generated automatically"
     ],
     "hash": "70bd36b4d0c521e3a184fdd7e0c95fe3",
@@ -1213,7 +1213,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://git.wikimedia.org/git/mediawiki/extensions/Wikibase.git";,
-                "reference": "b83449d82ca0a5f2fb890e37ef76bb3d0075d463"
+                "reference": "c6df5a162ec8128ff9036217739b3e0927caa2ce"
             },
             "require": {
                 "data-values/common": "~0.2.0",
@@ -1283,7 +1283,7 @@
                 "issues": "https://bugzilla.wikimedia.org/";,
                 "irc": "irc://irc.freenode.net/wikidata"
             },
-            "time": "2015-05-06 01:04:37"
+            "time": "2015-05-11 10:40:03"
         },
         {
             "name": "wikibase/wikimedia-badges",
@@ -1295,7 +1295,7 @@
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wmde/WikimediaBadges/zipball/bb5baa8e74f45b66929cc721a112605ba947dbc1";,
+                "url": 
"https://api.github.com/repos/wmde/WikimediaBadges/zipball/a4cb3fa96adee3f634999873c8bfe432783bf47e";,
                 "reference": "bb5baa8e74f45b66929cc721a112605ba947dbc1",
                 "shasum": ""
             },
diff --git a/extensions/Wikibase/repo/includes/EditEntity.php 
b/extensions/Wikibase/repo/includes/EditEntity.php
index 7b1fcf2..35b5198 100644
--- a/extensions/Wikibase/repo/includes/EditEntity.php
+++ b/extensions/Wikibase/repo/includes/EditEntity.php
@@ -627,6 +627,7 @@
                if ( !$hookStatus->isOK() ) {
                        $this->errorType |= self::FILTERED;
                }
+               $this->status->merge( $hookStatus );
 
                if ( !$this->status->isOK() ) {
                        $this->status->setResult( false, array( 'errorFlags' => 
$this->errorType ) );
diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/EditEntityTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/EditEntityTest.php
index 06f3010..7ea0adf 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/EditEntityTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/EditEntityTest.php
@@ -5,6 +5,7 @@
 use FauxRequest;
 use HashBagOStuff;
 use IContextSource;
+use PHPUnit_Framework_MockObject_Matcher_Invocation;
 use ReflectionMethod;
 use RequestContext;
 use Status;
@@ -18,6 +19,7 @@
 use Wikibase\EditEntity;
 use Wikibase\Lib\Store\EntityRevisionLookup;
 use Wikibase\Lib\Store\EntityTitleLookup;
+use Wikibase\Repo\Hooks\EditFilterHookRunner;
 use Wikibase\Repo\Store\EntityPermissionChecker;
 use Wikibase\Repo\WikibaseRepo;
 
@@ -101,14 +103,23 @@
                return $permissionChecker;
        }
 
-       private function getMockEditFitlerHookRunner () {
+       private function getMockEditFitlerHookRunner (
+               Status $status = null,
+               PHPUnit_Framework_MockObject_Matcher_Invocation $expects = null
+       ) {
+               if( is_null( $status ) ) {
+                       $status = Status::newGood();
+               }
+               if( is_null( $expects ) ) {
+                       $expects = $this->any();
+               }
                $runner = $this->getMockBuilder( 
'Wikibase\Repo\Hooks\EditFilterHookRunner' )
                        ->setMethods( array( 'run' ) )
                        ->disableOriginalConstructor()
                        ->getMock();
-               $runner->expects( $this->any() )
+               $runner->expects( $expects )
                        ->method( 'run' )
-                       ->will( $this->returnValue( Status::newGood() ) );
+                       ->will( $this->returnValue( $status ) );
                return $runner;
        }
 
@@ -118,6 +129,7 @@
         * @param EntityTitleLookup $titleLookup
         * @param User|null $user
         * @param bool $baseRevId
+        * @param EditFilterHookRunner $editFilterHookRunner
         *
         * @param null|array $permissions map of actions to bool, indicating 
which actions are allowed.
         *
@@ -129,13 +141,17 @@
                EntityTitleLookup $titleLookup,
                User $user = null,
                $baseRevId = false,
-               $permissions = null
+               $permissions = null,
+               $editFilterHookRunner = null
        ) {
                $context = new RequestContext();
                $context->setRequest( new FauxRequest() );
 
                if ( $user === null ) {
                        $user = User::newFromName( 'EditEntityTestUser' );
+               }
+               if( $editFilterHookRunner === null ) {
+                       $editFilterHookRunner = 
$this->getMockEditFitlerHookRunner();
                }
 
                $permissionChecker = $this->getEntityPermissionChecker( 
$permissions );
@@ -147,7 +163,7 @@
                        $permissionChecker,
                        $entity,
                        $user,
-                       $this->getMockEditFitlerHookRunner(),
+                       $editFilterHookRunner,
                        $baseRevId,
                        $context
                );
@@ -772,4 +788,35 @@
                $edit = $this->makeEditEntity( $repo, $item, $titleLookup );
                $this->assertFalse( $isNew->invoke( $edit ), "Entity exists" );
        }
+
+       public function provideHookRunnerReturnStatus() {
+               return array(
+                       array( Status::newGood() ),
+                       array( Status::newFatal( 'OMG' ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideHookRunnerReturnStatus
+        */
+       public function testEditFilterHookRunnerInteraction( Status 
$hookReturnStatus ) {
+               $edit = $this->makeEditEntity(
+                       $this->getMockRepository(),
+                       new Item(),
+                       $this->getEntityTitleLookup(),
+                       null,
+                       false,
+                       null,
+                       $this->getMockEditFitlerHookRunner( $hookReturnStatus, 
$this->once() )
+               );
+               $user = $this->getUser( 'EditEntityTestUser' );
+
+               $saveStatus = $edit->attemptSave(
+                       'some Summary',
+                       EDIT_MINOR,
+                       $user->getEditToken()
+               );
+
+               $this->assertEquals( $hookReturnStatus->isGood(), 
$saveStatus->isGood() );
+       }
 }
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index 5e1469e..4e05d3b 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -351,7 +351,7 @@
             foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
                 if (0 === strpos($class, $prefix)) {
                     foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . 
substr($logicalPathPsr4, $length))) {
+                        if (is_file($file = $dir . DIRECTORY_SEPARATOR . 
substr($logicalPathPsr4, $length))) {
                             return $file;
                         }
                     }
@@ -361,7 +361,7 @@
 
         // PSR-4 fallback dirs
         foreach ($this->fallbackDirsPsr4 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . 
$logicalPathPsr4)) {
+            if (is_file($file = $dir . DIRECTORY_SEPARATOR . 
$logicalPathPsr4)) {
                 return $file;
             }
         }
@@ -380,7 +380,7 @@
             foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
                 if (0 === strpos($class, $prefix)) {
                     foreach ($dirs as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . 
$logicalPathPsr0)) {
+                        if (is_file($file = $dir . DIRECTORY_SEPARATOR . 
$logicalPathPsr0)) {
                             return $file;
                         }
                     }
@@ -390,7 +390,7 @@
 
         // PSR-0 fallback dirs
         foreach ($this->fallbackDirsPsr0 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . 
$logicalPathPsr0)) {
+            if (is_file($file = $dir . DIRECTORY_SEPARATOR . 
$logicalPathPsr0)) {
                 return $file;
             }
         }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 7d9ed3e..58b6690 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1160,7 +1160,7 @@
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wmde/WikimediaBadges/zipball/bb5baa8e74f45b66929cc721a112605ba947dbc1";,
+            "url": 
"https://api.github.com/repos/wmde/WikimediaBadges/zipball/a4cb3fa96adee3f634999873c8bfe432783bf47e";,
             "reference": "bb5baa8e74f45b66929cc721a112605ba947dbc1",
             "shasum": ""
         },
@@ -1303,7 +1303,7 @@
         "source": {
             "type": "git",
             "url": 
"https://git.wikimedia.org/git/mediawiki/extensions/Wikibase.git";,
-            "reference": "b83449d82ca0a5f2fb890e37ef76bb3d0075d463"
+            "reference": "c6df5a162ec8128ff9036217739b3e0927caa2ce"
         },
         "require": {
             "data-values/common": "~0.2.0",
@@ -1329,7 +1329,7 @@
         "conflict": {
             "mediawiki/mediawiki": "<1.23"
         },
-        "time": "2015-05-05 20:16:30",
+        "time": "2015-05-10 21:41:06",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I94d3adb2cb4fbc2d04f8127e23a4f8e2c93acc7d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: wmf/1.26wmf4
Gerrit-Owner: Aude <aude.w...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to