1 field_permission_example.test public GenericFieldTest::codeTestGenericAddAllFields($node_type = NULL)

Add all testable fields as instances to a content type.

As a side-effect: Store the names of the instances created in $this->$instance_names.

Parameters

object $node_type: A content type object. If none is provided, one will be generated.

Return value

object: The content type object that has the fields attached.

File

modules/examples/field_permission_example/field_permission_example.test, line 129
Tests for Field Permission Example.

Class

GenericFieldTest
A generic field testing class.

Code

public function codeTestGenericAddAllFields($node_type = NULL) {
  $this->instanceNames = array();
  if (!$node_type) {
    $node_type = $this->backdropCreateContentType();
  }
  foreach ($this->getFieldTypes() as $field_type) {
    $instance_name = backdrop_strtolower($this->randomName(32));
    $field = array(
      'field_name' => $instance_name,
      'type' => $field_type,
    );
    $field = field_create_field($field);
    $instance = array(
      'field_name' => $instance_name,
      'entity_type' => 'node',
      'bundle' => $node_type->name,
      'label' => backdrop_strtolower($this->randomName(20)),
    );
    // Finally create the instance.
    $instance = field_create_instance($instance);
    // Reset the caches...
    _field_info_collate_fields(TRUE);
    // Grab this instance.
    $verify_instance = field_info_instance('node', $instance_name, $node_type->name);
    $this->assertTrue($verify_instance, 'Instance object exists.');
    $this->assertTrue(
    $verify_instance != NULL, 
    'field_info_instance() says ' . $instance_name . ' (' . $node_type->name . ') was created.'
    );
    $this->instanceNames[] = $instance_name;
  }
  return $node_type;
}