function ViewsModerationStateFilterTest::assertNodesWithFilters

Same name in other branches
  1. 9 core/modules/content_moderation/tests/src/Kernel/ViewsModerationStateFilterTest.php \Drupal\Tests\content_moderation\Kernel\ViewsModerationStateFilterTest::assertNodesWithFilters()
  2. 8.9.x core/modules/content_moderation/tests/src/Kernel/ViewsModerationStateFilterTest.php \Drupal\Tests\content_moderation\Kernel\ViewsModerationStateFilterTest::assertNodesWithFilters()
  3. 10 core/modules/content_moderation/tests/src/Kernel/ViewsModerationStateFilterTest.php \Drupal\Tests\content_moderation\Kernel\ViewsModerationStateFilterTest::assertNodesWithFilters()

Assert the nodes appear when the test view is executed.

@internal

Parameters

\Drupal\node\NodeInterface[] $nodes: Nodes to assert are in the views result.

array $filters: An array of filters to apply to the view.

string $view_id: The view to execute for the results.

1 call to ViewsModerationStateFilterTest::assertNodesWithFilters()
ViewsModerationStateFilterTest::testStateFilterViewsRelationship in core/modules/content_moderation/tests/src/Kernel/ViewsModerationStateFilterTest.php
Tests the content moderation state filter.

File

core/modules/content_moderation/tests/src/Kernel/ViewsModerationStateFilterTest.php, line 383

Class

ViewsModerationStateFilterTest
Tests the views 'moderation_state_filter' filter plugin.

Namespace

Drupal\Tests\content_moderation\Kernel

Code

protected function assertNodesWithFilters(array $nodes, array $filters, string $view_id = 'test_content_moderation_state_filter_base_table') : void {
    $view = Views::getView($view_id);
    $view->setExposedInput($filters);
    $view->execute();
    // Verify the join configuration.
    $query = $view->getQuery();
    $join = $query->getTableInfo('content_moderation_state')['join'];
    $configuration = $join->configuration;
    $this->assertEquals('content_moderation_state_field_revision', $configuration['table']);
    $this->assertEquals('content_entity_revision_id', $configuration['field']);
    $this->assertEquals('vid', $configuration['left_field']);
    $this->assertEquals('content_entity_type_id', $configuration['extra'][0]['field']);
    $this->assertEquals('node', $configuration['extra'][0]['value']);
    $this->assertEquals('content_entity_id', $configuration['extra'][1]['field']);
    $this->assertEquals('nid', $configuration['extra'][1]['left_field']);
    $this->assertEquals('langcode', $configuration['extra'][2]['field']);
    $this->assertEquals('langcode', $configuration['extra'][2]['left_field']);
    $expected_result = [];
    foreach ($nodes as $node) {
        $expected_result[] = [
            'nid' => $node->id(),
        ];
    }
    $this->assertIdenticalResultset($view, $expected_result, [
        'nid' => 'nid',
    ]);
}

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