More updates to stop using dev or alpha or beta versions.
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Form / FormElementHelperTest.php
1 <?php
2
3 namespace Drupal\Tests\Core\Form;
4
5 use Drupal\Core\Form\FormElementHelper;
6 use Drupal\Tests\UnitTestCase;
7
8 /**
9  * Tests the form element helper.
10  *
11  * @group Drupal
12  * @group Form
13  *
14  * @coversDefaultClass \Drupal\Core\Form\FormElementHelper
15  */
16 class FormElementHelperTest extends UnitTestCase {
17
18   /**
19    * Tests the getElementByName() method.
20    *
21    * @covers ::getElementByName
22    *
23    * @dataProvider getElementByNameProvider
24    */
25   public function testGetElementByName($name, $form, $expected) {
26     $this->assertSame($expected, FormElementHelper::getElementByName($name, $form));
27   }
28
29   /**
30    * Provides test data.
31    */
32   public function getElementByNameProvider() {
33     $data = [];
34     $data[] = ['id', [], []];
35     $data[] = [
36       'id',
37       [
38         'id' => [
39           '#title' => 'ID',
40           '#parents' => ['id'],
41         ],
42       ],
43       [
44         '#title' => 'ID',
45         '#parents' => ['id'],
46       ],
47     ];
48     $data[] = [
49       'id',
50       [
51         'fieldset' => [
52           'id' => [
53             '#title' => 'ID',
54             '#parents' => ['id'],
55           ],
56           '#parents' => ['fieldset'],
57         ],
58       ],
59       [
60         '#title' => 'ID',
61         '#parents' => ['id'],
62       ],
63     ];
64     $data[] = [
65       'fieldset',
66       [
67         'fieldset' => [
68           'id' => [
69             '#title' => 'ID',
70             '#parents' => ['id'],
71           ],
72           '#parents' => ['fieldset'],
73         ],
74       ],
75       [
76         'id' => [
77           '#title' => 'ID',
78           '#parents' => ['id'],
79         ],
80         '#parents' => ['fieldset'],
81       ],
82     ];
83     $data[] = [
84       'fieldset][id',
85       [
86         'fieldset' => [
87           '#tree' => TRUE,
88           'id' => [
89             '#title' => 'ID',
90             '#parents' => ['fieldset', 'id'],
91           ],
92           '#parents' => ['fieldset'],
93         ],
94       ],
95       [
96         '#title' => 'ID',
97         '#parents' => ['fieldset', 'id'],
98       ],
99     ];
100     return $data;
101   }
102
103   /**
104    * Tests the getElementTitle() method.
105    *
106    * @covers ::getElementTitle
107    *
108    * @dataProvider getElementTitleProvider
109    */
110   public function testGetElementTitle($name, $form, $expected) {
111     $element = FormElementHelper::getElementByName($name, $form);
112     $this->assertSame($expected, FormElementHelper::getElementTitle($element));
113   }
114
115   /**
116    * Provides test data.
117    */
118   public function getElementTitleProvider() {
119     $data = [];
120     $data[] = ['id', [], ''];
121     $data[] = [
122       'id',
123       [
124         'id' => [
125           '#title' => 'ID',
126           '#parents' => ['id'],
127         ],
128       ],
129       'ID',
130     ];
131     $data[] = [
132       'id',
133       [
134         'fieldset' => [
135           'id' => [
136             '#title' => 'ID',
137             '#parents' => ['id'],
138           ],
139           '#parents' => ['fieldset'],
140         ],
141       ],
142       'ID',
143     ];
144     $data[] = [
145       'fieldset',
146       [
147         'fieldset' => [
148           'id' => [
149             '#title' => 'ID',
150             '#parents' => ['id'],
151           ],
152           '#parents' => ['fieldset'],
153         ],
154       ],
155       'ID',
156     ];
157     $data[] = [
158       'fieldset][id',
159       [
160         'fieldset' => [
161           '#tree' => TRUE,
162           'id' => [
163             '#title' => 'ID',
164             '#parents' => ['fieldset', 'id'],
165           ],
166           '#parents' => ['fieldset'],
167         ],
168       ],
169       'ID',
170     ];
171     return $data;
172   }
173
174 }