mediawiki-extensions-AbuseF.../tests/phpunit
Dreamy Jazz a5b68cf46d Don't attempt to steal or create the FilterUser in CheckUserHandler
Why:
* When CheckUser asks the AbuseFilter extension for modifications
  to rows inserted into the CheckUser tables, the AbuseFilter
  extension attempts to get the Filter user via User::newSystemUser
* User::newSystemUser can deadlock if multiple requests to create
  the system user are being made at once.
* The CheckUserHander does not need to create the abuse filter system
  and instead only needs to know if a given $user is the equal to
  the FilterUser.
* As such the FilterUser service needs to provide a way to check if
  a given $user is equal without creating the FilterUser.

What:
* Add FilterUser::isUserSameAs which returns a boolean value
  indicating whether the Abuse Filter system user is the equal
  to a given UserIdentity in the same way that UserIdentity::equals
  is implemented.
* Refactor ::getUser to get the username for the filter user in
  a separate method, so that the ::isUserSameAs method can also
  use this method. Name this new method ::getFilterUserName.
* Add a test for the FilterUser service to ensure consistent test
  coverage
* Convert the @covers and @coversDefaultClass annotations to be
  a @covers for the class. This is because PHPUnit recommends this in
  https://docs.phpunit.de/en/9.6/annotations.html#appendixes-annotations-covers-tables-annotations

Bug: T356275
Bug: T346967
Change-Id: I8a101781bb47612deabb0f2a06a398ac13e860e6
2024-01-31 19:32:52 +00:00
..
integration Don't attempt to steal or create the FilterUser in CheckUserHandler 2024-01-31 19:32:52 +00:00
unit Use namespaced classes 2023-12-10 23:03:12 +01:00
AbuseFilterConsequencesTest.php Remove indirect calls to IDBAccessObject::READ_* constants 2024-01-26 09:25:35 -05:00
AbuseFilterCreateAccountTestTrait.php Use namespaced classes 2023-12-10 23:03:12 +01:00
AbuseFilterFilterUserTest.php Don't attempt to steal or create the FilterUser in CheckUserHandler 2024-01-31 19:32:52 +00:00
AbuseFilterRowsAndFiltersTestTrait.php Use actor table in AbuseFilter 2023-03-22 14:01:29 +01:00
AbuseFilterUploadTestTrait.php Use namespaced classes 2023-12-10 23:03:12 +01:00
ConsequenceGetMessageTestTrait.php Use ActionSpecifier to load the IP address 2022-12-17 22:52:24 +01:00
DegroupTest.php Avoid TestUser in non-database tests 2023-08-06 22:18:49 +00:00
LazyVariableComputerDBTest.php Remove $this->tablesUsed from PHPUnit tests 2024-01-14 04:45:29 -08:00
RCVariableGeneratorTest.php Remove $this->tablesUsed from PHPUnit tests 2024-01-14 04:45:29 -08:00
SchemaChangesHandlerTest.php tests: Avoid DB access in non-Database tests 2023-08-06 22:19:03 +00:00