You are here

options_test.module in Drupal 9

Same filename and directory in other branches
  1. 8 core/modules/options/tests/options_test/options_test.module

Helper module for the List module tests.

File

core/modules/options/tests/options_test/options_test.module
View source
<?php

/**
 * @file
 * Helper module for the List module tests.
 */
use Drupal\Core\Entity\FieldableEntityInterface;
use Drupal\Core\Field\FieldStorageDefinitionInterface;

/**
 * Implements callback_allowed_values_function().
 *
 * @see options_allowed_values()
 */
function options_test_allowed_values_callback(FieldStorageDefinitionInterface $definition, FieldableEntityInterface $entity = NULL) {
  $values = [
    'Group 1' => [
      0 => 'Zero',
    ],
    1 => 'One',
    'Group 2' => [
      2 => 'Some <script>dangerous</script> & unescaped <strong>markup</strong>',
    ],
    'More <script>dangerous</script> markup' => [
      3 => 'Three',
    ],
  ];
  return $values;
}

/**
 * Implements callback_allowed_values_function().
 *
 * @todo This function violates the recommendation in options_allowed_values()
 *   to return a list of all possible values in any context when $items is
 *   NULL. Since this is not yet used for testing Views integration, that is
 *   alright for now. Fix this in https://www.drupal.org/node/2012130.
 *
 * @see options_allowed_values()
 */
function options_test_dynamic_values_callback(FieldStorageDefinitionInterface $definition, FieldableEntityInterface $entity = NULL, &$cacheable = NULL) {
  $values = [];
  if (isset($entity)) {
    $cacheable = FALSE;
    $values = [
      $entity
        ->label(),
      $entity
        ->toUrl()
        ->toString(),
      $entity
        ->uuid(),
      $entity
        ->bundle(),
    ];
  }

  // We need the values of the entity as keys.
  return array_combine($values, $values);
}