function EntityFieldQueryTestCase::testEntityFieldQueryTableSort

Tests the TableSort integration of EntityFieldQuery.

File

drupal/modules/simpletest/tests/entity_query.test, line 1435
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']);
}