return $rights;
}
- /**
- * @coversNothing
- */
public function testAvailableRights() {
$missingRights = array_diff(
$this->getAllVisibleRights(),
'https://www.mediawiki.org/wiki/Manual:User_rights#Adding_new_rights'
);
}
+
+ /**
+ * 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
+ * Extensions and core
+ */
+ 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' );
+
+ $messagesToCheck = [];
+ foreach ( $allMessageKeys as $message ) {
+ // === 0: must be at beginning of string (position 0)
+ if ( strpos( $message, $prefix ) === 0 ) {
+ $messagesToCheck[] = substr( $message, strlen( $prefix ) );
+ }
+ }
+
+ $missing = array_diff(
+ $allRights,
+ $messagesToCheck
+ );
+
+ $this->assertEquals(
+ [],
+ $missing,
+ "Each user right (core/extensions) has a corresponding $prefix message."
+ );
+ }
}