Under some configurations all Echo notifications are inserted via a DeferredUpdate. When an extension delays its own notification trigger via DeferredUpdate as well the Echo notification will not be run. Change-Id: Ib40fcd4939ede5b0ff986ab109432630efd1be74
38 lines
803 B
PHP
38 lines
803 B
PHP
<?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();
|
|
}
|
|
|
|
}
|