Version 1
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Form / FormElementHelperTest.php
diff --git a/web/core/tests/Drupal/Tests/Core/Form/FormElementHelperTest.php b/web/core/tests/Drupal/Tests/Core/Form/FormElementHelperTest.php
new file mode 100644 (file)
index 0000000..9a6a5bf
--- /dev/null
@@ -0,0 +1,174 @@
+<?php
+
+namespace Drupal\Tests\Core\Form;
+
+use Drupal\Core\Form\FormElementHelper;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * Tests the form element helper.
+ *
+ * @group Drupal
+ * @group Form
+ *
+ * @coversDefaultClass \Drupal\Core\Form\FormElementHelper
+ */
+class FormElementHelperTest extends UnitTestCase {
+
+  /**
+   * Tests the getElementByName() method.
+   *
+   * @covers ::getElementByName
+   *
+   * @dataProvider getElementByNameProvider
+   */
+  public function testGetElementByName($name, $form, $expected) {
+    $this->assertSame($expected, FormElementHelper::getElementByName($name, $form));
+  }
+
+  /**
+   * Provides test data.
+   */
+  public function getElementByNameProvider() {
+    $data = [];
+    $data[] = ['id', [], []];
+    $data[] = [
+      'id',
+      [
+        'id' => [
+          '#title' => 'ID',
+          '#parents' => ['id'],
+        ],
+      ],
+      [
+        '#title' => 'ID',
+        '#parents' => ['id'],
+      ],
+    ];
+    $data[] = [
+      'id',
+      [
+        'fieldset' => [
+          'id' => [
+            '#title' => 'ID',
+            '#parents' => ['id'],
+          ],
+          '#parents' => ['fieldset'],
+        ],
+      ],
+      [
+        '#title' => 'ID',
+        '#parents' => ['id'],
+      ],
+    ];
+    $data[] = [
+      'fieldset',
+      [
+        'fieldset' => [
+          'id' => [
+            '#title' => 'ID',
+            '#parents' => ['id'],
+          ],
+          '#parents' => ['fieldset'],
+        ],
+      ],
+      [
+        'id' => [
+          '#title' => 'ID',
+          '#parents' => ['id'],
+        ],
+        '#parents' => ['fieldset'],
+      ],
+    ];
+    $data[] = [
+      'fieldset][id',
+      [
+        'fieldset' => [
+          '#tree' => TRUE,
+          'id' => [
+            '#title' => 'ID',
+            '#parents' => ['fieldset', 'id'],
+          ],
+          '#parents' => ['fieldset'],
+        ],
+      ],
+      [
+        '#title' => 'ID',
+        '#parents' => ['fieldset', 'id'],
+      ],
+    ];
+    return $data;
+  }
+
+  /**
+   * Tests the getElementTitle() method.
+   *
+   * @covers ::getElementTitle
+   *
+   * @dataProvider getElementTitleProvider
+   */
+  public function testGetElementTitle($name, $form, $expected) {
+    $element = FormElementHelper::getElementByName($name, $form);
+    $this->assertSame($expected, FormElementHelper::getElementTitle($element));
+  }
+
+  /**
+   * Provides test data.
+   */
+  public function getElementTitleProvider() {
+    $data = [];
+    $data[] = ['id', [], ''];
+    $data[] = [
+      'id',
+      [
+        'id' => [
+          '#title' => 'ID',
+          '#parents' => ['id'],
+        ],
+      ],
+      'ID',
+    ];
+    $data[] = [
+      'id',
+      [
+        'fieldset' => [
+          'id' => [
+            '#title' => 'ID',
+            '#parents' => ['id'],
+          ],
+          '#parents' => ['fieldset'],
+        ],
+      ],
+      'ID',
+    ];
+    $data[] = [
+      'fieldset',
+      [
+        'fieldset' => [
+          'id' => [
+            '#title' => 'ID',
+            '#parents' => ['id'],
+          ],
+          '#parents' => ['fieldset'],
+        ],
+      ],
+      'ID',
+    ];
+    $data[] = [
+      'fieldset][id',
+      [
+        'fieldset' => [
+          '#tree' => TRUE,
+          'id' => [
+            '#title' => 'ID',
+            '#parents' => ['fieldset', 'id'],
+          ],
+          '#parents' => ['fieldset'],
+        ],
+      ],
+      'ID',
+    ];
+    return $data;
+  }
+
+}