QuickEditLoadingTest.php

Same filename in this branch
  1. 8.9.x core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditLoadingTest.php
Same filename and directory in other branches
  1. 9 core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditLoadingTest.php
  2. 9 core/modules/quickedit/tests/src/Kernel/QuickEditLoadingTest.php

Namespace

Drupal\Tests\quickedit\Kernel

File

core/modules/quickedit/tests/src/Kernel/QuickEditLoadingTest.php

View source
<?php

namespace Drupal\Tests\quickedit\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\node\Entity\Node;
use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
use Drupal\Tests\node\Traits\NodeCreationTrait;
use Drupal\Tests\user\Traits\UserCreationTrait;

/**
 * Tests loading of in-place editing functionality and lazy loading of its
 * in-place editors.
 *
 * @group quickedit
 */
class QuickEditLoadingTest extends KernelTestBase {
    use NodeCreationTrait;
    use UserCreationTrait;
    use ContentTypeCreationTrait;
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'user',
        'system',
        'field',
        'node',
        'text',
        'filter',
        'contextual',
        'quickedit',
    ];
    
    /**
     * A user with permissions to access in-place editor.
     *
     * @var \Drupal\user\UserInterface
     */
    protected $editorUser;
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() {
        parent::setUp();
        $this->installSchema('system', 'sequences');
        $this->installEntitySchema('user');
        $this->installEntitySchema('node');
        $this->installConfig([
            'field',
            'filter',
            'node',
        ]);
        // Create a Content type and one test node.
        $this->createContentType([
            'type' => 'page',
        ]);
        $this->createNode();
        $this->editorUser = $this->createUser([
            'access content',
            'create page content',
            'edit any page content',
            'access contextual links',
            'access in-place editing',
        ]);
    }
    
    /**
     * Tests that Quick Edit doesn't make fields rendered with display options
     * editable.
     */
    public function testDisplayOptions() {
        $node = Node::load(1);
        $renderer = $this->container
            ->get('renderer');
        $this->container
            ->get('current_user')
            ->setAccount($this->editorUser);
        $build = $node->body
            ->view([
            'label' => 'inline',
        ]);
        $this->setRawContent($renderer->renderRoot($build));
        $elements = $this->xpath('//div[@data-quickedit-field-id]');
        $this->assertFalse(!empty($elements), 'data-quickedit-field-id attribute not added when rendering field using dynamic display options.');
        $build = $node->body
            ->view('default');
        $this->setRawContent($renderer->renderRoot($build));
        $elements = $this->xpath('//div[@data-quickedit-field-id="node/1/body/en/default"]');
        $this->assertTrue(!empty($elements), 'Body with data-quickedit-field-id attribute found.');
    }

}

Classes

Title Deprecated Summary
QuickEditLoadingTest Tests loading of in-place editing functionality and lazy loading of its in-place editors.

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