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.');
+  }
+
+}