summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php')
-rw-r--r--www/wiki/extensions/Translate/tests/phpunit/MessageIndexRebuildJobTest.php56
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' );
+ }
+}