EntityFieldQueryTestCase::testEntityFieldQueryTableSort

7 entity_query.test EntityFieldQueryTestCase::testEntityFieldQueryTableSort()
8 entity_query.test EntityFieldQueryTestCase::testEntityFieldQueryTableSort()

Tests the TableSort integration of EntityFieldQuery.

File

modules/simpletest/tests/entity_query.test, line 1435
Unit test file for the entity API.

Code

function testEntityFieldQueryTableSort() {
  // Test TableSort in propertyQuery
  $_GET['sort'] = 'asc';
  $_GET['order'] = 'Id';
  $header = array(
    'id' => array(
      'data' => 'Id',
      'type' => 'property',
      'specifier' => 'ftid',
    ), 
    'type' => array(
      'data' => 'Type',
      'type' => 'entity',
      'specifier' => 'bundle',
    ),
  );
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 1),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 6),
  ), t('Test TableSort by property: ftid ASC in propertyQuery.'), TRUE);

  $_GET['sort'] = 'desc';
  $_GET['order'] = 'Id';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 6),
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 1),
  ), t('Test TableSort by property: ftid DESC in propertyQuery.'), TRUE);

  $_GET['sort'] = 'asc';
  $_GET['order'] = 'Type';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 1),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 6),
  ), t('Test TableSort by entity: bundle ASC in propertyQuery.'), TRUE);

  $_GET['sort'] = 'desc';
  $_GET['order'] = 'Type';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 6),
    array('test_entity_bundle_key', 1),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 4),
  ), t('Test TableSort by entity: bundle DESC in propertyQuery.'), TRUE);

  // Test TableSort in field storage
  $_GET['sort'] = 'asc';
  $_GET['order'] = 'Id';
  $header = array(
    'id' => array(
      'data' => 'Id',
      'type' => 'property',
      'specifier' => 'ftid',
    ), 
    'type' => array(
      'data' => 'Type',
      'type' => 'entity',
      'specifier' => 'bundle',
    ), 
    'field' => array(
      'data' => 'Field',
      'type' => 'field',
      'specifier' => array(
        'field' => $this->field_names[0],
        'column' => 'value',
      ),
    ),
  );
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->fieldCondition($this->fields[0], 'value', 0, '>')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 1),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 6),
  ), t('Test TableSort by property: ftid ASC in field storage.'), TRUE);

  $_GET['sort'] = 'desc';
  $_GET['order'] = 'Id';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->fieldCondition($this->fields[0], 'value', 0, '>')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 6),
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 1),
  ), t('Test TableSort by property: ftid DESC in field storage.'), TRUE);

  $_GET['sort'] = 'asc';
  $_GET['order'] = 'Type';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->fieldCondition($this->fields[0], 'value', 0, '>')
      ->tableSort($header)
      ->entityOrderBy('entity_id', 'DESC');
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 1),
    array('test_entity_bundle_key', 6),
    array('test_entity_bundle_key', 5),
  ), t('Test TableSort by entity: bundle ASC in field storage.'), TRUE);

  $_GET['sort'] = 'desc';
  $_GET['order'] = 'Type';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->fieldCondition($this->fields[0], 'value', 0, '>')
      ->tableSort($header)
      ->entityOrderBy('entity_id', 'ASC');
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 6),
    array('test_entity_bundle_key', 1),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 4),
  ), t('Test TableSort by entity: bundle DESC in field storage.'), TRUE);

  $_GET['sort'] = 'asc';
  $_GET['order'] = 'Field';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->fieldCondition($this->fields[0], 'value', 0, '>')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 1),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 6),
  ), t('Test TableSort by field ASC.'), TRUE);

  $_GET['sort'] = 'desc';
  $_GET['order'] = 'Field';
  $query = new EntityFieldQuery();
  $query
      ->entityCondition('entity_type', 'test_entity_bundle_key')
      ->fieldCondition($this->fields[0], 'value', 0, '>')
      ->tableSort($header);
  $this->assertEntityFieldQuery($query, array(
    array('test_entity_bundle_key', 6),
    array('test_entity_bundle_key', 5),
    array('test_entity_bundle_key', 4),
    array('test_entity_bundle_key', 3),
    array('test_entity_bundle_key', 2),
    array('test_entity_bundle_key', 1),
  ), t('Test TableSort by field DESC.'), TRUE);

  unset($_GET['sort']);
  unset($_GET['order']);
}
Login or register to post comments