You are here

public function GenericFieldTest::codeTestGenericAddAllFields in Examples for Developers 7

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.

2 calls to GenericFieldTest::codeTestGenericAddAllFields()
FieldTestPermissionsExample::testAddRemoveFieldnoteCode in field_permission_example/tests/field_permission_example.test
Add and remove the field through code.
GenericFieldTest::createFieldContentForUser in field_permission_example/tests/field_permission_example.test
Create a node with some field content.

File

field_permission_example/tests/field_permission_example.test, line 140
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
      ->drupalCreateContentType();
  }
  foreach ($this
    ->getFieldTypes() as $field_type) {
    $instance_name = drupal_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' => drupal_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;
}