Issue #3008140 by alexpott: Improve shutdown function testing
parent
bacf782e30
commit
3eaacac156
|
@ -0,0 +1,64 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\KernelTests\Core\Bootstrap;
|
||||||
|
|
||||||
|
use Drupal\KernelTests\KernelTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests
|
||||||
|
*
|
||||||
|
* @group Bootstrap
|
||||||
|
*/
|
||||||
|
class ShutdownFunctionTest extends KernelTestBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag to indicate if ::shutdownOne() called.
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $shutDownOneCalled = FALSE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag to indicate if ::shutdownTwo() called.
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $shutDownTwoCalled = FALSE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests that shutdown functions can be added by other shutdown functions.
|
||||||
|
*/
|
||||||
|
public function testShutdownFunctionInShutdownFunction() {
|
||||||
|
// Ensure there are no shutdown functions registered before starting the
|
||||||
|
// test.
|
||||||
|
$this->assertEmpty(drupal_register_shutdown_function());
|
||||||
|
// Register a shutdown function that, when called, will register another
|
||||||
|
// shutdown function.
|
||||||
|
drupal_register_shutdown_function([$this, 'shutdownOne']);
|
||||||
|
$this->assertCount(1, drupal_register_shutdown_function());
|
||||||
|
|
||||||
|
// Simulate the Drupal shutdown.
|
||||||
|
_drupal_shutdown_function();
|
||||||
|
|
||||||
|
// Test that the expected functions are called.
|
||||||
|
$this->assertTrue($this->shutDownOneCalled);
|
||||||
|
$this->assertTrue($this->shutDownTwoCalled);
|
||||||
|
$this->assertCount(2, drupal_register_shutdown_function());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests shutdown functions by registering another shutdown function.
|
||||||
|
*/
|
||||||
|
public function shutdownOne() {
|
||||||
|
drupal_register_shutdown_function([$this, 'shutdownTwo']);
|
||||||
|
$this->shutDownOneCalled = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests shutdown functions by being registered during shutdown.
|
||||||
|
*/
|
||||||
|
public function shutdownTwo() {
|
||||||
|
$this->shutDownTwoCalled = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue