Security update for permissions_by_term
[yaffs-website] / vendor / drupal / drupal-driver / tests / Drupal / Tests / Driver / Drupal7FieldHandlerTest.php
diff --git a/vendor/drupal/drupal-driver/tests/Drupal/Tests/Driver/Drupal7FieldHandlerTest.php b/vendor/drupal/drupal-driver/tests/Drupal/Tests/Driver/Drupal7FieldHandlerTest.php
new file mode 100644 (file)
index 0000000..3961a0d
--- /dev/null
@@ -0,0 +1,162 @@
+<?php
+
+namespace Drupal\Tests\Driver;
+
+/**
+ * Tests the Drupal 7 field handlers.
+ */
+class Drupal7FieldHandlerTest extends FieldHandlerAbstractTest {
+
+  /**
+   * Tests the field handlers.
+   *
+   * @param string $class_name
+   *   The name of the field handler class under test.
+   * @param object $entity
+   *   An object representing an entity. Should contain a single property which
+   *   represents a field containing a value.
+   * @param string $entity_type
+   *   The entity type under test.
+   * @param array $field
+   *   An associative array with the following keys:
+   *   - 'field_name': the field name that is used for the property on $entity.
+   *   - 'columns': an optional array containing the column names of the field
+   *     as keys.
+   * @param array $expected_values
+   *   The values in the expected format after expansion.
+   *
+   * @dataProvider dataProvider
+   */
+  public function testFieldHandlers($class_name, $entity, $entity_type, array $field, array $expected_values) {
+    $handler = $this->getMockHandler($class_name, $entity, $entity_type, $field);
+
+    $field_name = $field['field_name'];
+    $expanded_values = $handler->expand($this->values($entity->$field_name));
+    $this->assertArraySubset($expected_values, $expanded_values);
+  }
+
+  /**
+   * Data provider.
+   *
+   * @return array
+   *   An array of test data.
+   */
+  public function dataProvider() {
+    return array(
+      // Test default text field provided as simple text.
+      array(
+        'DefaultHandler',
+        (object) array('field_text' => 'Text'),
+        'node',
+        array('field_name' => 'field_text'),
+        array('en' => array(array('value' => 'Text'))),
+      ),
+
+      // Test default text field provided as array.
+      array(
+        'DefaultHandler',
+        (object) array('field_text' => array('Text')),
+        'node',
+        array('field_name' => 'field_text'),
+        array('en' => array(array('value' => 'Text'))),
+      ),
+
+      // Test default field handler using custom field columns.
+      array(
+        'DefaultHandler',
+        (object) array(
+          'field_addressfield' => array(
+            array(
+              'country' => 'BE',
+              'locality' => 'Brussels',
+              'thoroughfare' => 'Grote Markt 1',
+              'postal_code' => '1000',
+            ),
+          ),
+        ),
+        'node',
+        array('field_name' => 'field_addressfield'),
+        array(
+          'en' => array(
+            array(
+              'country' => 'BE',
+              'locality' => 'Brussels',
+              'thoroughfare' => 'Grote Markt 1',
+              'postal_code' => '1000',
+            ),
+          ),
+        ),
+      ),
+
+      // Test single-value date field provided as simple text.
+      array(
+        'DatetimeHandler',
+        (object) array('field_date' => '2015-01-01 00:00:00'),
+        'node',
+        array('field_name' => 'field_date'),
+        array('en' => array(array('value' => '2015-01-01 00:00:00'))),
+      ),
+
+      // Test single-value date field provided as an array.
+      array(
+        'DatetimeHandler',
+        (object) array('field_date' => array('2015-01-01 00:00:00')),
+        'node',
+        array('field_name' => 'field_date'),
+        array('en' => array(array('value' => '2015-01-01 00:00:00'))),
+      ),
+
+      // Test double-value date field. Can only be provided as an array
+      // due to array type casting we perform in
+      // \Drupal\Driver\Fields\Drupal7\AbstractFieldHandler::__call()
+      array(
+        'DatetimeHandler',
+        (object) array(
+          'field_date' => array(
+            array(
+              '2015-01-01 00:00:00',
+              '2015-01-02 00:00:00',
+            ),
+          ),
+        ),
+        'node',
+        array(
+          'field_name' => 'field_date',
+          'columns' => array('value' => '', 'value2' => ''),
+        ),
+        array(
+          'en' => array(
+            array(
+              'value' => '2015-01-01 00:00:00',
+              'value2' => '2015-01-02 00:00:00',
+            ),
+          ),
+        ),
+      ),
+
+      // Test list boolean field with blank 'On' and 'Off' values.
+      array(
+        'ListBooleanHandler',
+        (object) array('field_list_boolean' => array(0)),
+        'node',
+        array(
+          'field_name' => 'field_list_boolean',
+          'settings' => array(
+            'allowed_values' => array(
+              0 => '',
+              1 => '',
+            ),
+          ),
+        ),
+        array(
+          'en' => array(
+            array(
+              'value' => 0,
+            ),
+          ),
+        ),
+      ),
+    );
+  }
+
+}