You are here

protected function CommerceBpcTestCase::attachNewListField in Commerce Bulk Product Creation 7

Attach a new list field with the given number of options to a product type.

Parameters

string $product_type: An array representing the product type to which the field should be attached.

Return value

array An array containing the field specification of the new field.

1 call to CommerceBpcTestCase::attachNewListField()
CommerceBpcTestCase::testTwoFieldsTwoListValues in ./commerce_bpc.test
Test the correct creation of 2x3 combinations.

File

./commerce_bpc.test, line 101
Tests for Commerce bulk product creation

Class

CommerceBpcTestCase
@file Tests for Commerce bulk product creation

Code

protected function attachNewListField($product_type, $no_options = 2) {
  $field_name = drupal_strtolower($this
    ->randomName() . '_field_name');
  $values = array();
  for ($i = 0; $i < $no_options; $i++) {
    $values[$this
      ->randomName(6) . 'val' . $i] = $this
      ->randomString(10);
  }
  $field = array(
    'field_name' => $field_name,
    'type' => 'list_text',
    'cardinality' => 1,
    'settings' => array(
      'allowed_values' => $values,
    ),
  );
  $field = field_create_field($field);
  $field_id = $field['id'];
  $instance = array(
    'field_name' => $field_name,
    'entity_type' => 'commerce_product',
    'bundle' => $product_type['type'],
    'label' => $this
      ->randomName() . '_label',
    'description' => $this
      ->randomName() . '_description',
    'weight' => mt_rand(0, 127),
    'settings' => array(),
    'widget' => array(
      'type' => 'options_buttons',
      'label' => 'Test Field',
      'settings' => array(
        'test_widget_setting' => $this
          ->randomName(),
      ),
    ),
  );
  $instance = field_create_instance($instance);
  return $field;
}