summaryrefslogtreecommitdiff
path: root/tests/phpunit/includes/deferred/DeferredUpdatesTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/deferred/DeferredUpdatesTest.php')
-rw-r--r--tests/phpunit/includes/deferred/DeferredUpdatesTest.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/phpunit/includes/deferred/DeferredUpdatesTest.php b/tests/phpunit/includes/deferred/DeferredUpdatesTest.php
new file mode 100644
index 00000000..5348c854
--- /dev/null
+++ b/tests/phpunit/includes/deferred/DeferredUpdatesTest.php
@@ -0,0 +1,38 @@
+<?php
+
+class DeferredUpdatesTest extends MediaWikiTestCase {
+
+ public function testDoUpdates() {
+ $updates = array(
+ '1' => 'deferred update 1',
+ '2' => 'deferred update 2',
+ '3' => 'deferred update 3',
+ '2-1' => 'deferred update 1 within deferred update 2',
+ );
+ DeferredUpdates::addCallableUpdate(
+ function () use ( $updates ) {
+ echo $updates['1'];
+ }
+ );
+ DeferredUpdates::addCallableUpdate(
+ function () use ( $updates ) {
+ echo $updates['2'];
+ DeferredUpdates::addCallableUpdate(
+ function () use ( $updates ) {
+ echo $updates['2-1'];
+ }
+ );
+ }
+ );
+ DeferredUpdates::addCallableUpdate(
+ function () use ( $updates ) {
+ echo $updates[3];
+ }
+ );
+
+ $this->expectOutputString( implode( '', $updates ) );
+
+ DeferredUpdates::doUpdates();
+ }
+
+}