Dmaza has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/383719 )

Change subject: Add wikimedia/equivset for string normalization (ccnorm)
......................................................................

Add wikimedia/equivset for string normalization (ccnorm)

Update extension to use the new library wikimedia/equivset for
string normalization and remove soft dependency on AntiSpoof extension

Change-Id: I2ff8233d3eadeef1089fef4aef46d43345bd955a
---
M composer.json
M includes/parser/AbuseFilterParser.php
M tests/phpunit/parserTest.php
3 files changed, 8 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/AbuseFilter 
refs/changes/19/383719/1

diff --git a/composer.json b/composer.json
index 66c4393..cdc17da 100644
--- a/composer.json
+++ b/composer.json
@@ -6,7 +6,7 @@
        "license": "GPL-2.0+",
        "require": {
                "php": ">=5.4",
-               "composer/installers": "1.*,>=1.0.1"
+               "wikimedia/equivset": "^1.0"
        },
        "require-dev": {
                "jakub-onderka/php-parallel-lint": "0.9.2",
diff --git a/includes/parser/AbuseFilterParser.php 
b/includes/parser/AbuseFilterParser.php
index df98722..6deac8e 100644
--- a/includes/parser/AbuseFilterParser.php
+++ b/includes/parser/AbuseFilterParser.php
@@ -1,5 +1,7 @@
 <?php
 
+use Wikimedia\Equivset\Equivset;
+
 class AbuseFilterParser {
        public $mCode, $mTokens, $mPos, $mCur, $mShortCircuit, $mAllowShort, 
$mLen;
 
@@ -1154,17 +1156,13 @@
         * @return mixed
         */
        protected static function ccnorm( $s ) {
-               if ( is_callable( 'AntiSpoof::normalizeString' ) ) {
-                       $s = AntiSpoof::normalizeString( $s );
-               } else {
-                       // AntiSpoof isn't available, so ignore and return same 
string
-                       wfDebugLog(
-                               'AbuseFilter',
-                               "Can't compute normalized string (ccnorm) as 
the AntiSpoof Extension isn't installed."
-                       );
+               static $equivset = null;
+
+               if (is_null($equivset)) {
+                       $equivset = new Equivset();
                }
 
-               return $s;
+               return $equivset->normalize($s);
        }
 
        /**
diff --git a/tests/phpunit/parserTest.php b/tests/phpunit/parserTest.php
index 6d7322a..ab5ac91 100644
--- a/tests/phpunit/parserTest.php
+++ b/tests/phpunit/parserTest.php
@@ -55,11 +55,6 @@
         * @dataProvider readTests
         */
        public function testParser( $testName, $rule, $expected ) {
-               if ( !class_exists( 'AntiSpoof' ) && preg_match( 
'/(?:cc)?norm(?:\(|_)/i', $rule ) ) {
-                       // The norm and ccnorm parser functions aren't working 
correctly without AntiSpoof
-                       $this->markTestSkipped( 'Parser test ' . $testName . ' 
requires the AntiSpoof extension' );
-               }
-
                foreach ( self::getParsers() as $parser ) {
                        $actual = $parser->parse( $rule );
                        $this->assertEquals( $expected, $actual, 'Running 
parser test ' . $testName );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2ff8233d3eadeef1089fef4aef46d43345bd955a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AbuseFilter
Gerrit-Branch: master
Gerrit-Owner: Dmaza <dm...@wikimedia.org>

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

Reply via email to