class UnpublishByKeywordActionTest

Same name in this branch
  1. 10 core/modules/node/tests/src/Unit/Action/UnpublishByKeywordActionTest.php \Drupal\Tests\node\Unit\Action\UnpublishByKeywordActionTest

@group action

Hierarchy

Expanded class hierarchy of UnpublishByKeywordActionTest

File

core/modules/action/tests/src/Kernel/UnpublishByKeywordActionTest.php, line 16

Namespace

Drupal\Tests\action\Kernel
View source
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());
  }

}

Members

Title Sort descending Modifiers Object type Summary
ExtensionListTestTrait::getModulePath protected function Gets the path for the specified module.
ExtensionListTestTrait::getThemePath protected function Gets the path for the specified theme.
StorageCopyTrait::replaceStorageContents protected static function Copy the configuration from one storage to another and remove stale items.
UnpublishByKeywordActionTest::$modules protected static property Modules to install.
UnpublishByKeywordActionTest::setUp protected function
UnpublishByKeywordActionTest::testUnpublishByKeywordAction public function Tests creating an action using the node_unpublish_by_keyword_action plugin.

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