mediawiki-extensions-AbuseF.../tests/phpunit/integration
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
..
Api tests: Avoid DB access in non-Database tests 2023-08-06 22:19:03 +00:00
ChangeTags tests: Avoid DB access in non-Database tests 2023-08-06 22:19:03 +00:00
Hooks Don't attempt to steal or create the FilterUser in CheckUserHandler 2024-01-31 19:32:52 +00:00
Maintenance Remove $this->tablesUsed from PHPUnit tests 2024-01-14 04:45:29 -08:00
Parser Mark protected stuff in classes with no subclasses as private 2023-06-23 12:28:06 +02:00
Special tests: Make some PHPUnit data providers static 2023-05-20 21:44:55 +02:00
Watcher Migrate DeferredUpdatesManager to use DeferredUpdates directly 2023-08-21 12:59:28 +01:00
AbuseFilterExtensionJsonTest.php Use HookHandlers for UserMerge hook 2023-08-16 09:44:30 +02:00
AbuseFilterServicesTest.php Add missing AbuseFilterServices::getHookRunner() 2023-06-14 17:35:43 +02:00
ActionVariablesIntegrationTest.php Remove $this->tablesUsed from PHPUnit tests 2024-01-14 04:45:29 -08:00
EchoNotifierTest.php Use namespaced Title 2023-08-19 19:49:36 +02:00
FilteredActionsHandlerTest.php Re-enable skipped test 2023-08-25 17:06:15 +02:00
FilterRunnerTest.php Use namespaced classes 2023-12-10 23:03:12 +01:00
FilterStoreTest.php Remove $this->tablesUsed from PHPUnit tests 2024-01-14 04:45:29 -08:00
FilterValidatorTest.php tests: Avoid DB access in non-Database tests 2023-08-06 22:19:03 +00:00