annotate core/modules/quickedit/tests/src/Kernel/QuickEditLoadingTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
Chris@18 1 <?php
Chris@18 2
Chris@18 3 namespace Drupal\Tests\quickedit\Kernel;
Chris@18 4
Chris@18 5 use Drupal\KernelTests\KernelTestBase;
Chris@18 6 use Drupal\node\Entity\Node;
Chris@18 7 use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
Chris@18 8 use Drupal\Tests\node\Traits\NodeCreationTrait;
Chris@18 9 use Drupal\Tests\user\Traits\UserCreationTrait;
Chris@18 10
Chris@18 11 /**
Chris@18 12 * Tests loading of in-place editing functionality and lazy loading of its
Chris@18 13 * in-place editors.
Chris@18 14 *
Chris@18 15 * @group quickedit
Chris@18 16 */
Chris@18 17 class QuickEditLoadingTest extends KernelTestBase {
Chris@18 18
Chris@18 19 use NodeCreationTrait;
Chris@18 20 use UserCreationTrait;
Chris@18 21 use ContentTypeCreationTrait;
Chris@18 22
Chris@18 23 /**
Chris@18 24 * {@inheritdoc}
Chris@18 25 */
Chris@18 26 protected static $modules = [
Chris@18 27 'user',
Chris@18 28 'system',
Chris@18 29 'field',
Chris@18 30 'node',
Chris@18 31 'text',
Chris@18 32 'filter',
Chris@18 33 'contextual',
Chris@18 34 'quickedit',
Chris@18 35 ];
Chris@18 36
Chris@18 37 /**
Chris@18 38 * A user with permissions to access in-place editor.
Chris@18 39 *
Chris@18 40 * @var \Drupal\user\UserInterface
Chris@18 41 */
Chris@18 42 protected $editorUser;
Chris@18 43
Chris@18 44 /**
Chris@18 45 * {@inheritdoc}
Chris@18 46 */
Chris@18 47 protected function setUp() {
Chris@18 48 parent::setUp();
Chris@18 49
Chris@18 50 $this->installSchema('system', 'sequences');
Chris@18 51 $this->installEntitySchema('user');
Chris@18 52 $this->installEntitySchema('node');
Chris@18 53 $this->installConfig(['field', 'filter', 'node']);
Chris@18 54
Chris@18 55 // Create a Content type and one test node.
Chris@18 56 $this->createContentType(['type' => 'page']);
Chris@18 57 $this->createNode();
Chris@18 58
Chris@18 59 $this->editorUser = $this->createUser([
Chris@18 60 'access content',
Chris@18 61 'create page content',
Chris@18 62 'edit any page content',
Chris@18 63 'access contextual links',
Chris@18 64 'access in-place editing',
Chris@18 65 ]);
Chris@18 66 }
Chris@18 67
Chris@18 68 /**
Chris@18 69 * Tests that Quick Edit doesn't make fields rendered with display options
Chris@18 70 * editable.
Chris@18 71 */
Chris@18 72 public function testDisplayOptions() {
Chris@18 73 $node = Node::load(1);
Chris@18 74 $renderer = $this->container->get('renderer');
Chris@18 75 $this->container->get('current_user')->setAccount($this->editorUser);
Chris@18 76
Chris@18 77 $build = $node->body->view(['label' => 'inline']);
Chris@18 78 $this->setRawContent($renderer->renderRoot($build));
Chris@18 79 $elements = $this->xpath('//div[@data-quickedit-field-id]');
Chris@18 80 $this->assertFalse(!empty($elements), 'data-quickedit-field-id attribute not added when rendering field using dynamic display options.');
Chris@18 81
Chris@18 82 $build = $node->body->view('default');
Chris@18 83 $this->setRawContent($renderer->renderRoot($build));
Chris@18 84 $elements = $this->xpath('//div[@data-quickedit-field-id="node/1/body/en/default"]');
Chris@18 85 $this->assertTrue(!empty($elements), 'Body with data-quickedit-field-id attribute found.');
Chris@18 86 }
Chris@18 87
Chris@18 88 }