Mercurial > hg > isophonics-drupal-site
comparison core/modules/field/tests/src/Kernel/FieldDisplayTest.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
16:c2387f117808 | 17:129ea1e6d783 |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\field\Kernel; | |
4 | |
5 use Drupal\entity_test\Entity\EntityTestRev; | |
6 use Drupal\field\Entity\FieldConfig; | |
7 use Drupal\field\Entity\FieldStorageConfig; | |
8 use Drupal\KernelTests\KernelTestBase; | |
9 use Symfony\Component\CssSelector\CssSelectorConverter; | |
10 | |
11 /** | |
12 * Tests Field display. | |
13 * | |
14 * @group field | |
15 */ | |
16 class FieldDisplayTest extends KernelTestBase { | |
17 | |
18 /** | |
19 * Modules to enable. | |
20 * | |
21 * @var array | |
22 */ | |
23 public static $modules = [ | |
24 'entity_test', | |
25 'field', | |
26 'system', | |
27 'user', | |
28 ]; | |
29 | |
30 /** | |
31 * Test entity type name. | |
32 * | |
33 * @var string | |
34 */ | |
35 protected $entityType; | |
36 | |
37 /** | |
38 * Test entity bundle name. | |
39 * | |
40 * @var string | |
41 */ | |
42 protected $bundle; | |
43 | |
44 /** | |
45 * Test field name. | |
46 * | |
47 * @var string | |
48 */ | |
49 protected $fieldName; | |
50 | |
51 /** | |
52 * Entity view display. | |
53 * | |
54 * @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface | |
55 */ | |
56 protected $display; | |
57 | |
58 /** | |
59 * {@inheritdoc} | |
60 */ | |
61 protected function setUp() { | |
62 parent::setUp(); | |
63 | |
64 // Configure the theme system. | |
65 $this->installConfig(['system', 'field']); | |
66 $this->installEntitySchema('entity_test_rev'); | |
67 | |
68 $this->entityType = 'entity_test_rev'; | |
69 $this->bundle = $this->entityType; | |
70 $this->fieldName = mb_strtolower($this->randomMachineName()); | |
71 | |
72 $field_storage = FieldStorageConfig::create([ | |
73 'field_name' => $this->fieldName, | |
74 'entity_type' => $this->entityType, | |
75 'type' => 'string', | |
76 ]); | |
77 $field_storage->save(); | |
78 | |
79 $instance = FieldConfig::create([ | |
80 'field_storage' => $field_storage, | |
81 'bundle' => $this->bundle, | |
82 'label' => $this->randomMachineName(), | |
83 ]); | |
84 $instance->save(); | |
85 | |
86 $values = [ | |
87 'targetEntityType' => $this->entityType, | |
88 'bundle' => $this->bundle, | |
89 'mode' => 'default', | |
90 'status' => TRUE, | |
91 ]; | |
92 | |
93 $this->display = \Drupal::entityTypeManager() | |
94 ->getStorage('entity_view_display') | |
95 ->create($values); | |
96 $this->display->save(); | |
97 } | |
98 | |
99 /** | |
100 * Tests that visually hidden works with core. | |
101 */ | |
102 public function testFieldVisualHidden() { | |
103 $value = $this->randomMachineName(); | |
104 | |
105 // Set the formatter to link to the entity. | |
106 $this->display->setComponent($this->fieldName, [ | |
107 'type' => 'string', | |
108 'label' => 'visually_hidden', | |
109 'settings' => [], | |
110 ])->save(); | |
111 | |
112 $entity = EntityTestRev::create([]); | |
113 $entity->{$this->fieldName}->value = $value; | |
114 $entity->save(); | |
115 | |
116 $build = $this->display->build($entity); | |
117 $renderer = \Drupal::service('renderer'); | |
118 $content = $renderer->renderPlain($build); | |
119 $this->setRawContent((string) $content); | |
120 | |
121 $css_selector_converter = new CssSelectorConverter(); | |
122 $elements = $this->xpath($css_selector_converter->toXPath('.visually-hidden')); | |
123 $this->assertCount(1, $elements, $content); | |
124 } | |
125 | |
126 } |