function UpdateActionsWithEntityPluginsTest::testUpdateActionsWithEntityPlugins

Tests upgrading comment and node actions to generic entity ones.

See also

system_post_update_change_action_plugins()

File

core/modules/system/tests/src/Functional/Update/UpdateActionsWithEntityPluginsTest.php, line 33

Class

UpdateActionsWithEntityPluginsTest
Tests upgrading comment and node actions to generic entity ones.

Namespace

Drupal\Tests\system\Functional\Update

Code

public function testUpdateActionsWithEntityPlugins() {
    $old_new_action_id_map = [
        'comment_publish_action' => [
            'comment_publish_action',
            'entity:publish_action:comment',
        ],
        'comment_unpublish_action' => [
            'comment_unpublish_action',
            'entity:unpublish_action:comment',
        ],
        'comment_save_action' => [
            'comment_save_action',
            'entity:save_action:comment',
        ],
        'node_publish_action' => [
            'node_publish_action',
            'entity:publish_action:node',
        ],
        'node_unpublish_action' => [
            'node_unpublish_action',
            'entity:unpublish_action:node',
        ],
        'node_save_action' => [
            'node_save_action',
            'entity:save_action:node',
        ],
    ];
    foreach ($old_new_action_id_map as $key => list($before, $after)) {
        $config = \Drupal::configFactory()->get('system.action.' . $key);
        $this->assertSame($before, $config->get('plugin'));
    }
    $this->runUpdates();
    foreach ($old_new_action_id_map as $key => list($before, $after)) {
        
        /** @var \Drupal\system\Entity\Action $action */
        $action = Action::load($key);
        $this->assertSame($after, $action->getPlugin()
            ->getPluginId());
        $config = \Drupal::configFactory()->get('system.action.' . $key);
        $this->assertSame($after, $config->get('plugin'));
        // Check that the type the action is based on will be a module dependency.
        $this->assertArraySubset([
            'module' => [
                $action->getPluginDefinition()['type'],
            ],
        ], $action->getDependencies());
    }
}

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