function HookAlterOrderTest::testAlterOrder

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/KernelTests/Core/Hook/HookAlterOrderTest.php \Drupal\KernelTests\Core\Hook\HookAlterOrderTest::testAlterOrder()

Test ordering alter calls.

File

core/tests/Drupal/KernelTests/Core/Hook/HookAlterOrderTest.php, line 163

Class

HookAlterOrderTest
Tests Hook Alter Order.

Namespace

Drupal\KernelTests\Core\Hook

Code

public function testAlterOrder() : void {
  // The default ordering of test_alter hooks.
  $this->assertAlterCallOrder([
    CAlterHooks::class . '::testAlter',
    AAlterHooks::class . '::testAlterAfterC',
    DAlterHooks::class . '::testAlter',
  ], 'test');
  // The default ordering of test_subtype_alter hooks.
  $this->assertAlterCallOrder([
    AAlterHooks::class . '::testSubtypeAlter',
    BAlterHooks::class . '::testSubtypeAlter',
    CAlterHooks::class . '::testSubtypeAlter',
    DAlterHooks::class . '::testSubtypeAlter',
  ], 'test_subtype');
  // Test ordering of both test_alter and test_subtype_alter hooks.
  $this->assertAlterCallOrder([
    AAlterHooks::class . '::testSubtypeAlter',
    BAlterHooks::class . '::testSubtypeAlter',
    CAlterHooks::class . '::testAlter',
    CAlterHooks::class . '::testSubtypeAlter',
    AAlterHooks::class . '::testAlterAfterC',
    DAlterHooks::class . '::testAlter',
    DAlterHooks::class . '::testSubtypeAlter',
  ], [
    'test',
    'test_subtype',
  ]);
  $this->disableModules([
    'bbb_hook_order_test',
  ]);
  // Confirm that hooks from bbb_hook_order_test are absent.
  $this->assertAlterCallOrder([
    CAlterHooks::class . '::testAlter',
    AAlterHooks::class . '::testAlterAfterC',
    DAlterHooks::class . '::testAlter',
  ], 'test');
  $this->assertAlterCallOrder([
    AAlterHooks::class . '::testSubtypeAlter',
    CAlterHooks::class . '::testSubtypeAlter',
    DAlterHooks::class . '::testSubtypeAlter',
  ], 'test_subtype');
  $this->assertAlterCallOrder([
    AAlterHooks::class . '::testSubtypeAlter',
    CAlterHooks::class . '::testAlter',
    CAlterHooks::class . '::testSubtypeAlter',
    AAlterHooks::class . '::testAlterAfterC',
    DAlterHooks::class . '::testAlter',
    DAlterHooks::class . '::testSubtypeAlter',
  ], [
    'test',
    'test_subtype',
  ]);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.