
| Current Path : /var/www/html/strat/web/core/modules/action/tests/src/Kernel/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/strat/web/core/modules/action/tests/src/Kernel/UnpublishByKeywordActionTest.php |
<?php
declare(strict_types=1);
namespace Drupal\Tests\action\Kernel;
use Drupal\Core\Render\RenderContext;
use Drupal\KernelTests\KernelTestBase;
use Drupal\node\Entity\Node;
use Drupal\node\Entity\NodeType;
use Drupal\system\Entity\Action;
/**
* @group action
*/
class UnpublishByKeywordActionTest extends KernelTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = ['action', 'node', 'system', 'user', 'field'];
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
$this->installEntitySchema('node');
$this->installEntitySchema('user');
$this->installSchema('node', ['node_access']);
// Install system's configuration as default date formats are needed.
$this->installConfig(['system']);
// Create a node type for testing.
$type = NodeType::create(['type' => 'page', 'name' => 'page', 'display_submitted' => FALSE]);
$type->save();
}
/**
* Tests creating an action using the node_unpublish_by_keyword_action plugin.
*/
public function testUnpublishByKeywordAction(): void {
/** @var \Drupal\node\Plugin\Action\UnpublishByKeywordNode $action */
$action = Action::create([
'id' => 'foo',
'label' => 'Foo',
'plugin' => 'node_unpublish_by_keyword_action',
'configuration' => [
'keywords' => ['test'],
],
]);
$action->save();
$node1 = Node::create([
'type' => 'page',
'title' => 'test',
'uid' => 1,
]);
$node1->setPublished();
$node1->save();
$node2 = Node::create([
'type' => 'page',
'title' => 'Another node',
'uid' => 1,
]);
$node2->setPublished();
$node2->save();
$this->container->get('renderer')->executeInRenderContext(new RenderContext(), function () use (&$node1, &$node2, $action) {
$action->execute([$node1, $node2]);
});
$this->assertFalse($node1->isPublished());
$this->assertTrue($node2->isPublished());
}
}