function HookAlterOrderTest::testAlterOrder

Test ordering alter calls.

File

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

Class

HookAlterOrderTest
@group Hook @group legacy

Namespace

Drupal\KernelTests\Core\Hook

Code

public function testAlterOrder() : void {
    $this->assertAlterCallOrder([
        CAlterHooks::class . '::testAlter',
        AAlterHooks::class . '::testAlterAfterC',
        DAlterHooks::class . '::testAlter',
    ], 'test');
    $this->assertAlterCallOrder([
        AAlterHooks::class . '::testSubtypeAlter',
        BAlterHooks::class . '::testSubtypeAlter',
        CAlterHooks::class . '::testSubtypeAlter',
        DAlterHooks::class . '::testSubtypeAlter',
    ], 'test_subtype');
    $this->assertAlterCallOrder([
        // The implementation from 'D' is gone.
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',
    ]);
    $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.