diff options
Diffstat (limited to 'www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php')
-rw-r--r-- | www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php b/www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php new file mode 100644 index 00000000..bdc4620e --- /dev/null +++ b/www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php @@ -0,0 +1,56 @@ +<?php +/** + * @file + * @author Niklas Laxström + * @license GPL-2.0-or-later + */ + +/** + * @group Database + * @group medium + */ +class MessageIndexRebuildJobTest extends MediaWikiTestCase { + protected $config = []; + + public function setUp() { + parent::setUp(); + + global $wgHooks; + $this->setMwGlobals( [ + 'wgHooks' => $wgHooks, + 'wgTranslateTranslationServices' => [], + 'wgTranslateDelayedMessageIndexRebuild' => false + ] ); + $wgHooks['TranslatePostInitGroups'] = []; + + $mg = MessageGroups::singleton(); + $mg->setCache( new WANObjectCache( [ 'cache' => wfGetCache( 'hash' ) ] ) ); + $mg->recache(); + + MessageIndex::setInstance( new HashMessageIndex() ); + MessageIndex::singleton()->rebuild(); + } + + public function testInsertImmediate() { + global $wgTranslateDelayedMessageIndexRebuild; + $wgTranslateDelayedMessageIndexRebuild = false; + MessageIndexRebuildJob::newJob()->insertIntoJobQueue(); + $this->assertFalse( + JobQueueGroup::singleton()->get( 'MessageIndexRebuildJob' )->pop(), + 'There is no job in the JobQueue' + ); + } + + public function testInsertDelayed() { + global $wgTranslateDelayedMessageIndexRebuild; + $wgTranslateDelayedMessageIndexRebuild = true; + MessageIndexRebuildJob::newJob()->insertIntoJobQueue(); + $job = JobQueueGroup::singleton()->get( 'MessageIndexRebuildJob' )->pop(); + $this->assertInstanceOf( + 'MessageIndexRebuildJob', + $job, + 'There is a job in the JobQueue' + ); + $this->assertTrue( $job->run(), 'Job is executed successfully' ); + } +} |