ExcludedFieldTokenTest.php

Same filename in other branches
  1. 9 core/modules/rest/tests/src/Functional/Views/ExcludedFieldTokenTest.php
  2. 8.9.x core/modules/rest/tests/src/Functional/Views/ExcludedFieldTokenTest.php
  3. 10 core/modules/rest/tests/src/Functional/Views/ExcludedFieldTokenTest.php

Namespace

Drupal\Tests\rest\Functional\Views

File

core/modules/rest/tests/src/Functional/Views/ExcludedFieldTokenTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\rest\Functional\Views;

use Drupal\node\Entity\Node;
use Drupal\Tests\views\Functional\ViewTestBase;
use Drupal\views\Views;

/**
 * Tests the display of an excluded field that is used as a token.
 *
 * @group rest
 * @see \Drupal\rest\Plugin\views\display\RestExport
 * @see \Drupal\rest\Plugin\views\row\DataFieldRow
 */
class ExcludedFieldTokenTest extends ViewTestBase {
    
    /**
     * @var \Drupal\views\ViewExecutable
     */
    protected $view;
    
    /**
     * The views that are used by this test.
     *
     * @var array
     */
    public static $testViews = [
        'test_excluded_field_token_display',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * The modules that need to be installed for this test.
     *
     * @var array
     */
    protected static $modules = [
        'entity_test',
        'rest_test_views',
        'node',
        'field',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected function setUp($import_test_views = TRUE, $modules = [
        'rest_test_views',
    ]) : void {
        parent::setUp($import_test_views, $modules);
        // Create some test content.
        for ($i = 1; $i <= 10; $i++) {
            Node::create([
                'type' => 'article',
                'title' => 'Article test ' . $i,
            ])->save();
        }
        $this->enableViewsTestModule();
        $this->view = Views::getView('test_excluded_field_token_display');
        $this->view
            ->setDisplay('rest_export_1');
    }
    
    /**
     * Tests the display of an excluded title field when used as a token.
     */
    public function testExcludedTitleTokenDisplay() : void {
        $actual_json = $this->drupalGet($this->view
            ->getPath(), [
            'query' => [
                '_format' => 'json',
            ],
        ]);
        $this->assertSession()
            ->statusCodeEquals(200);
        $expected = [
            [
                'nothing' => 'Article test 10',
            ],
            [
                'nothing' => 'Article test 9',
            ],
            [
                'nothing' => 'Article test 8',
            ],
            [
                'nothing' => 'Article test 7',
            ],
            [
                'nothing' => 'Article test 6',
            ],
            [
                'nothing' => 'Article test 5',
            ],
            [
                'nothing' => 'Article test 4',
            ],
            [
                'nothing' => 'Article test 3',
            ],
            [
                'nothing' => 'Article test 2',
            ],
            [
                'nothing' => 'Article test 1',
            ],
        ];
        $this->assertSame(json_encode($expected), $actual_json);
    }

}

Classes

Title Deprecated Summary
ExcludedFieldTokenTest Tests the display of an excluded field that is used as a token.

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