From 3cb731351ebd72eb94f6ff254db7a2245ae79b38 Mon Sep 17 00:00:00 2001 From: Krinkle Date: Tue, 28 Feb 2012 01:56:15 +0000 Subject: [PATCH] [IRC Log Message] Fix for protect/protect and protect/modify * protect/protect and protect/modify were still failing because the output on IRC is not matching the i18n messages. The bots look for comment.match( + (optionally) followed by ": user comment"). * The problem with protect/protect and protect/modify is that the protection settings are also inserted in somewhere in the message. Before MediaWiki 1.19 these were included in the IRC message as part of $1 (title). That may be ugly, but that's how it has always been. Since the point is to reproduce the old output we need to fix this one as well. This will make the output like: Krinkle * protected "[[Sandbox [edit=autoconfirmed)]]" which is exactly how it has been before and that's the the bots rely on (which was presumably done originally like that since it was the only way to make the output match the i18n message) * Fixes more bug 34508 --- includes/logging/LogFormatter.php | 14 ++++++++++++++ tests/phpunit/includes/RecentChangeTest.php | 11 +++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/includes/logging/LogFormatter.php b/includes/logging/LogFormatter.php index 79ea6851cd..d3354f53d7 100644 --- a/includes/logging/LogFormatter.php +++ b/includes/logging/LogFormatter.php @@ -226,6 +226,20 @@ class LogFormatter { } break; + case 'protect': + switch( $entry->getSubtype() ) { + case 'protect': + $text = wfMsgExt( 'protectedarticle', $msgOpts, $target . ' ' . $parameters[0] ); + break; + case 'unprotect': + $text = wfMsgExt( 'unprotectedarticle', $msgOpts, $target ); + break; + case 'modify': + $text = wfMsgExt( 'modifiedarticleprotection', $msgOpts, $target . ' ' . $parameters[0] ); + break; + } + break; + case 'newusers': switch( $entry->getSubtype() ) { case 'newusers': diff --git a/tests/phpunit/includes/RecentChangeTest.php b/tests/phpunit/includes/RecentChangeTest.php index c76977639f..0db4d7783c 100644 --- a/tests/phpunit/includes/RecentChangeTest.php +++ b/tests/phpunit/includes/RecentChangeTest.php @@ -161,12 +161,15 @@ class RecentChangeTest extends MediaWikiTestCase { * @covers LogFormatter::getIRCActionText */ function testIrcMsgForLogTypeProtect() { + $protectParams = array( + '[edit=sysop] (indefinite) ‎[move=sysop] (indefinite)' + ); # protect/protect $this->assertIRCComment( - wfMessage( 'protectedarticle', 'SomeTitle' )->plain() . ': ' . $this->user_comment, + wfMessage( 'protectedarticle', 'SomeTitle ' . $protectParams[0] )->plain() . ': ' . $this->user_comment, 'protect', 'protect', - array(), + $protectParams, $this->user_comment ); @@ -180,9 +183,9 @@ class RecentChangeTest extends MediaWikiTestCase { # protect/modify $this->assertIRCComment( - wfMessage( 'modifiedarticleprotection', 'SomeTitle' )->plain() . ': ' . $this->user_comment, + wfMessage( 'modifiedarticleprotection', 'SomeTitle ' . $protectParams[0] )->plain() . ': ' . $this->user_comment, 'protect', 'modify', - array(), + $protectParams, $this->user_comment ); } -- 2.20.1