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