1 entity_query.test EntityFieldQueryTestCase::testEntityFieldQueryTableSort()

Tests the TableSort integration of EntityFieldQuery.

File

core/modules/entity/tests/entity_query.test, line 1349
Unit test file for the entity API.

Class

EntityFieldQueryTestCase
Tests EntityFieldQuery.

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),
  ), '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),
  ), '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),
  ), '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),
  ), '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),
  ), '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),
  ), '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),
  ), '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),
  ), '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),
  ), '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),
  ), 'Test TableSort by field DESC.', TRUE);

  unset($_GET['sort']);
  unset($_GET['order']);
}