Type hint UserIdentity in Requirements/Components

Only id or registered state is needed.

Change-Id: I184db486ed2763e0402fe75ed9afb0e71a0d57c6
This commit is contained in:
Umherirrender 2024-03-13 21:59:40 +01:00
parent c38e0677c3
commit 558359c06d
11 changed files with 38 additions and 38 deletions

View file

@ -3,7 +3,7 @@ namespace MediaWiki\Skins\Vector\Components;
use MediaWiki\Skins\Vector\Constants;
use MediaWiki\Skins\Vector\FeatureManagement\FeatureManager;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use MessageLocalizer;
use Skin;
@ -30,7 +30,7 @@ class VectorComponentMainMenu implements VectorComponent {
* @param array $sidebarData
* @param array $languageData
* @param MessageLocalizer $localizer
* @param User $user
* @param UserIdentity $user
* @param FeatureManager $featureManager
* @param Skin $skin
*/
@ -38,7 +38,7 @@ class VectorComponentMainMenu implements VectorComponent {
array $sidebarData,
array $languageData,
MessageLocalizer $localizer,
User $user,
UserIdentity $user,
FeatureManager $featureManager,
Skin $skin
) {

View file

@ -5,7 +5,7 @@ use MediaWiki\Linker\Linker;
use MediaWiki\Skin\SkinComponentLink;
use MediaWiki\Title\MalformedTitleException;
use MediaWiki\Title\Title;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use Message;
use MessageLocalizer;
@ -20,7 +20,7 @@ class VectorComponentUserLinks implements VectorComponent {
/** @var MessageLocalizer */
private $localizer;
/** @var User */
/** @var UserIdentity */
private $user;
/** @var array */
private $portletData;
@ -31,14 +31,14 @@ class VectorComponentUserLinks implements VectorComponent {
/**
* @param MessageLocalizer $localizer
* @param User $user
* @param UserIdentity $user
* @param array $portletData
* @param array $linkOptions
* @param string $userIcon that represents the current type of user
*/
public function __construct(
MessageLocalizer $localizer,
User $user,
UserIdentity $user,
array $portletData,
array $linkOptions,
string $userIcon = 'userAvatar'
@ -286,7 +286,7 @@ class VectorComponentUserLinks implements VectorComponent {
// Convert to buttons for logged in users.
// For anons these will remain as links.
// Note: This list is empty for temporary users currently.
if ( !$this->user->isAnon() ) {
if ( $this->user->isRegistered() ) {
$overflow = $this->makeLinksButtons( $overflow );
}

View file

@ -24,7 +24,7 @@ namespace MediaWiki\Skins\Vector\FeatureManagement\Requirements;
use MediaWiki\Config\Config;
use MediaWiki\Skins\Vector\FeatureManagement\Requirement;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
/**
* @package MediaWiki\Skins\Vector\FeatureManagement\Requirements
@ -33,7 +33,7 @@ use MediaWiki\User\User;
class ABRequirement implements Requirement {
private Config $config;
private User $user;
private UserIdentity $user;
/**
* The name of the experiment
@ -47,13 +47,13 @@ class ABRequirement implements Requirement {
/**
* @param Config $config
* @param User $user
* @param UserIdentity $user
* @param string $experimentName The name of the experiment
* @param string|null $name The name of the requirement
*/
public function __construct(
Config $config,
User $user,
UserIdentity $user,
string $experimentName,
?string $name = null
) {

View file

@ -23,7 +23,7 @@
namespace MediaWiki\Skins\Vector\FeatureManagement\Requirements;
use MediaWiki\Skins\Vector\FeatureManagement\Requirement;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
/**
* @package MediaWiki\Skins\Vector\FeatureManagement\Requirements
@ -31,7 +31,7 @@ use MediaWiki\User\User;
*/
class LoggedInRequirement implements Requirement {
private User $user;
private UserIdentity $user;
/**
* The name of the requirement
@ -39,10 +39,10 @@ class LoggedInRequirement implements Requirement {
private string $name;
/**
* @param User $user
* @param UserIdentity $user
* @param string $name The name of the requirement
*/
public function __construct( User $user, string $name ) {
public function __construct( UserIdentity $user, string $name ) {
$this->user = $user;
$this->name = $name;
}

View file

@ -27,7 +27,7 @@ use MediaWiki\Extension\BetaFeatures\BetaFeatures;
use MediaWiki\Request\WebRequest;
use MediaWiki\Skins\Vector\Constants;
use MediaWiki\Skins\Vector\FeatureManagement\Requirement;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
/**
* The `OverridableConfigRequirement` allows us to define requirements that can override
@ -70,7 +70,7 @@ class OverridableConfigRequirement implements Requirement {
private Config $config;
private User $user;
private UserIdentity $user;
private string $configName;
@ -83,14 +83,14 @@ class OverridableConfigRequirement implements Requirement {
* the overridable config is enabled for the current user and request.
*
* @param Config $config
* @param User $user
* @param UserIdentity $user
* @param WebRequest $request
* @param string $configName Any `Config` key. This name is used to query `$config` state.
* @param string $requirementName The name of the requirement presented to FeatureManager.
*/
public function __construct(
Config $config,
User $user,
UserIdentity $user,
WebRequest $request,
string $configName,
string $requirementName

View file

@ -25,14 +25,14 @@ use MediaWiki\Request\WebRequest;
use MediaWiki\Skins\Vector\FeatureManagement\Requirement;
use MediaWiki\Title\Title;
use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
/**
* @package MediaWiki\Skins\Vector\FeatureManagement\Requirements
*/
final class UserPreferenceRequirement implements Requirement {
private User $user;
private UserIdentity $user;
private UserOptionsLookup $userOptionsLookup;
@ -48,7 +48,7 @@ final class UserPreferenceRequirement implements Requirement {
* This constructor accepts all dependencies needed to determine whether
* the overridable config is enabled for the current user and request.
*
* @param User $user
* @param UserIdentity $user
* @param UserOptionsLookup $userOptionsLookup
* @param string $optionName The name of the user preference.
* @param string $requirementName The name of the requirement presented to FeatureManager.
@ -56,7 +56,7 @@ final class UserPreferenceRequirement implements Requirement {
* @param Title|null $title
*/
public function __construct(
User $user,
UserIdentity $user,
UserOptionsLookup $userOptionsLookup,
string $optionName,
string $requirementName,

View file

@ -24,7 +24,7 @@ namespace MediaWiki\Skins\Vector\Tests\Unit\FeatureManagement\Requirements;
use MediaWiki\Config\HashConfig;
use MediaWiki\Skins\Vector\FeatureManagement\Requirements\ABRequirement;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use PHPUnit\Framework\TestCase;
/**
@ -35,7 +35,7 @@ use PHPUnit\Framework\TestCase;
class ABRequirementTest extends TestCase {
private function createUserMock( $userId ) {
$userMock = $this->createMock( User::class );
$userMock = $this->createMock( UserIdentity::class );
$userMock->method( 'getId' )->willReturn( $userId );
return $userMock;
}

View file

@ -23,7 +23,7 @@
namespace MediaWiki\Skins\Vector\Tests\Unit\FeatureManagement\Requirements;
use MediaWiki\Skins\Vector\FeatureManagement\Requirements\LoggedInRequirement;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use PHPUnit\Framework\TestCase;
/**
@ -55,7 +55,7 @@ class LoggedInRequirementTest extends TestCase {
*/
public function testGetName() {
// Mock the User object
$userMock = $this->createMock( User::class );
$userMock = $this->createMock( UserIdentity::class );
$requirementName = 'mockedUserLoggedInRequirement';
// Instantiate the LoggedInRequirement with the mock User object and the requirement name
@ -73,7 +73,7 @@ class LoggedInRequirementTest extends TestCase {
*/
public function testIsMet( bool $isUserLoggedIn, bool $expectedResult ) {
// Mock the User object
$userMock = $this->createMock( User::class );
$userMock = $this->createMock( UserIdentity::class );
// Setup the isRegistered method to return the login state
$userMock->method( 'isRegistered' )->willReturn( $isUserLoggedIn );

View file

@ -24,7 +24,7 @@ use MediaWiki\Config\HashConfig;
use MediaWiki\Request\WebRequest;
use MediaWiki\Skins\Vector\Constants;
use MediaWiki\Skins\Vector\FeatureManagement\Requirements\OverridableConfigRequirement;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
/**
* @group Vector
@ -141,7 +141,7 @@ class OverridableConfigRequirementTest extends \MediaWikiUnitTestCase {
Constants::CONFIG_KEY_LANGUAGE_IN_HEADER => $configValue,
] );
$user = $this->createMock( User::class );
$user = $this->createMock( UserIdentity::class );
$user->method( 'isRegistered' )->willReturn( $userId !== 0 );
$user->method( 'getID' )->willReturn( $userId );

View file

@ -6,7 +6,7 @@ use MediaWiki\Request\FauxRequest;
use MediaWiki\Skins\Vector\FeatureManagement\Requirements\UserPreferenceRequirement;
use MediaWiki\Title\Title;
use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
/**
* @group Vector
@ -84,7 +84,7 @@ final class UserPreferenceRequirementTest extends \MediaWikiUnitTestCase {
$expected,
$msg
) {
$user = $this->createMock( User::class );
$user = $this->createMock( UserIdentity::class );
$title = $isTitlePresent ? $this->createMock( Title::class ) : null;
$request = new FauxRequest();

View file

@ -25,7 +25,7 @@ use MediaWiki\Skins\Vector\Components\VectorComponent;
use MediaWiki\Skins\Vector\Components\VectorComponentMainMenu;
use MediaWiki\Skins\Vector\Constants;
use MediaWiki\Skins\Vector\FeatureManagement\FeatureManager;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use MediaWikiUnitTestCase;
use MessageLocalizer;
use Skin;
@ -46,9 +46,9 @@ class VectorComponentMainMenuTest extends MediaWikiUnitTestCase {
$sidebarData = [];
$languageData = [];
// Mock the MessageLocalizer, User, FeatureManager, and Skin classes
// Mock the MessageLocalizer, UserIdentity, FeatureManager, and Skin classes
$localizerMock = $this->createMock( MessageLocalizer::class );
$userMock = $this->createMock( User::class );
$userMock = $this->createMock( UserIdentity::class );
$featureManagerMock = $this->createMock( FeatureManager::class );
$skinMock = $this->createMock( Skin::class );
@ -95,9 +95,9 @@ class VectorComponentMainMenuTest extends MediaWikiUnitTestCase {
* @dataProvider provideMainMenuScenarios
*/
public function testGetTemplateData( array $sidebarData, array $languageData, bool $isPinned ) {
// Mock the MessageLocalizer, User, FeatureManager, and Skin classes
// Mock the MessageLocalizer, UserIdentity, FeatureManager, and Skin classes
$localizerMock = $this->createMock( MessageLocalizer::class );
$userMock = $this->createMock( User::class );
$userMock = $this->createMock( UserIdentity::class );
$featureManagerMock = $this->createMock( FeatureManager::class );
// Mock the isFeatureEnabled method