[IRC Log Message] Fix for protect/protect and protect/modify
authorKrinkle <krinkle@users.mediawiki.org>
Tue, 28 Feb 2012 01:56:15 +0000 (01:56 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Tue, 28 Feb 2012 01:56:15 +0000 (01:56 +0000)
* 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(<i18n-message> + (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
tests/phpunit/includes/RecentChangeTest.php

index 79ea685..d3354f5 100644 (file)
@@ -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':
index c769776..0db4d77 100644 (file)
@@ -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
                );
        }