<?php

class CerFieldTestCase extends DrupalWebTestCase {

  public static function getInfo() {
    return array(
      'name' => 'Fields',
      'group' => 'Corresponding Entity Reference',
      'description' => 'Tests integration with the Field API.',
    );
  }

  public function setUp() {
    parent::setUp('field', 'field_sql_storage', 'ctools', 'entityreference', 'cer');

    field_create_field(array(
      'field_name' => 'field_user',
      'type' => 'entityreference',
      'cardinality' => -1,
      'settings' => array(
        'target_type' => 'user',
      ),
    ));
    field_create_field(array(
      'field_name' => 'field_node',
      'type' => 'entityreference',
      'cardinality' => -1,
      'settings' => array(
        'target_type' => 'node',
      ),
    ));

    field_create_instance(array(
      'field_name' => 'field_user',
      'entity_type' => 'node',
      'bundle' => 'page',
    ));
    field_create_instance(array(
      'field_name' => 'field_node',
      'entity_type' => 'user',
      'bundle' => 'user',
    ));
    
    ctools_include('export');

    $preset = ctools_export_crud_new('cer');
    $preset->entity_types_content_fields = 'node*page*field_user*user*user*field_node';
    $preset->enabled = TRUE;

    ctools_export_crud_save('cer', $preset);
  }

  public function testFieldInstanceDelete() {
    field_delete_instance(field_info_instance('user', 'field_node', 'user'));

    $preset = cer_preset_load('node*page*field_user*user*user*field_node');
    $this->assertNull($preset, 'Deleting a field instance clears CER presets for that instance.');
  }

  public function testFieldDelete() {
    field_delete_field('field_user');

    $preset = cer_preset_load('node*page*field_user*user*user*field_node');
    $this->assertNull($preset, 'Deleting a field clears CER presets for that field.');
  }

}