Add test to check action- messages exist
authorReedy <reedy@wikimedia.org>
Thu, 11 Apr 2019 23:26:51 +0000 (00:26 +0100)
committerReedy <reedy@wikimedia.org>
Fri, 12 Apr 2019 17:44:33 +0000 (17:44 +0000)
Bug: T220779
Change-Id: Ide681e1f03957a8024f538ea6cac4e4396fef23e

tests/phpunit/structure/AvailableRightsTest.php

index a7d947e..57b063d 100644 (file)
@@ -54,6 +54,17 @@ class AvailableRightsTest extends PHPUnit\Framework\TestCase {
                );
        }
 
+       /**
+        * Test, if for all rights an action- message exist,
+        * which is used on Special:ListGroupRights as help text
+        * Extensions and core
+        *
+        * @coversNothing
+        */
+       public function testAllActionsWithMessages() {
+               $this->checkMessagesExist( 'action-' );
+       }
+
        /**
         * Test, if for all rights a right- message exist,
         * which is used on Special:ListGroupRights as help text
@@ -62,27 +73,34 @@ class AvailableRightsTest extends PHPUnit\Framework\TestCase {
         * @coversNothing
         */
        public function testAllRightsWithMessage() {
+               $this->checkMessagesExist( 'right-' );
+       }
+
+       /**
+        * @param string $prefix
+        */
+       private function checkMessagesExist( $prefix ) {
                // Getting all user rights, for core: User::$mCoreRights, for extensions: $wgAvailableRights
                $allRights = User::getAllRights();
                $allMessageKeys = Language::getMessageKeysFor( 'en' );
 
-               $rightsWithMessage = [];
+               $messagesToCheck = [];
                foreach ( $allMessageKeys as $message ) {
                        // === 0: must be at beginning of string (position 0)
-                       if ( strpos( $message, 'right-' ) === 0 ) {
-                               $rightsWithMessage[] = substr( $message, strlen( 'right-' ) );
+                       if ( strpos( $message, $prefix ) === 0 ) {
+                               $messagesToCheck[] = substr( $message, strlen( $prefix ) );
                        }
                }
 
                $missing = array_diff(
                        $allRights,
-                       $rightsWithMessage
+                       $messagesToCheck
                );
 
                $this->assertEquals(
                        [],
                        $missing,
-                       'Each user rights (core/extensions) has a corresponding right- message.'
+                       "Each user right (core/extensions) has a corresponding $prefix message."
                );
        }
 }