Mercurial > hg > cmmr2012-drupal-site
diff core/modules/quickedit/tests/src/Kernel/QuickEditLoadingTest.php @ 5:12f9dff5fda9 tip
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:34:47 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/quickedit/tests/src/Kernel/QuickEditLoadingTest.php Thu May 09 15:34:47 2019 +0100 @@ -0,0 +1,88 @@ +<?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.'); + } + +}