Page MenuHomePhabricator

Flow\Hooks references self::$abuseFilter directly instead of using getter - some tests fail
Closed, ResolvedPublic

Description

Problem
Running the tests in the attached suite throws an error:

There was 1 error:

1) Flow\Tests\SpamFilter\AbuseFilterTest::testSpam with data set #0 (MediaWiki\Title\Title Object (...), MediaWiki\Title\Title Object (...), array(), null, true)
Error: Call to a member function lazyLoadMethods() on null

This appears to be because Hooks.php refers directly to the static self::$abuseFilter variable instead of using the singleton getter self::getAbuseFilter(). If a test that comes before AbuseFilterTest in the suite calls resetFlowExtension(), the $abuseFilter variable will be null.

Expected behaviour
The AbuseFilterTests pass, regardless of what test suites have been run before in the same process.

Event Timeline

Change #1024346 had a related patch set uploaded (by Arthur taylor; author: Arthur taylor):

[mediawiki/extensions/Flow@master] Ensure abuseFilter is set in Hooks

https://gerrit.wikimedia.org/r/1024346

Change #1024346 merged by jenkins-bot:

[mediawiki/extensions/Flow@master] Ensure abuseFilter is set in Hooks

https://gerrit.wikimedia.org/r/1024346

Change #1069303 had a related patch set uploaded (by Umherirrender; author: Arthur taylor):

[mediawiki/extensions/Flow@REL1_42] Ensure abuseFilter is set in Hooks

https://gerrit.wikimedia.org/r/1069303

Change #1069303 merged by jenkins-bot:

[mediawiki/extensions/Flow@REL1_42] Ensure abuseFilter is set in Hooks

https://gerrit.wikimedia.org/r/1069303

(restoring assignee after column trigger unintentionally cleared it)