class DatabaseTestController in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/tests/modules/database_test/src/Controller/DatabaseTestController.php \Drupal\database_test\Controller\DatabaseTestController
 
Controller routines for database_test routes.
Hierarchy
- class \Drupal\database_test\Controller\DatabaseTestController
 
Expanded class hierarchy of DatabaseTestController
File
- core/
modules/ system/ tests/ modules/ database_test/ src/ Controller/ DatabaseTestController.php, line 15  - Contains \Drupal\database_test\Controller\DatabaseTestController.
 
Namespace
Drupal\database_test\ControllerView source
class DatabaseTestController {
  /**
   * Runs db_query_temporary() and outputs the table name and its number of rows.
   *
   * We need to test that the table created is temporary, so we run it here, in a
   * separate menu callback request; After this request is done, the temporary
   * table should automatically dropped.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   */
  public function dbQueryTemporary() {
    $table_name = db_query_temporary('SELECT age FROM {test}', array());
    return new JsonResponse(array(
      'table_name' => $table_name,
      'row_count' => db_select($table_name)
        ->countQuery()
        ->execute()
        ->fetchField(),
    ));
  }
  /**
   * Runs a pager query and returns the results.
   *
   * This function does care about the page GET parameter, as set by the
   * simpletest HTTP call.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   */
  public function pagerQueryEven($limit) {
    $query = db_select('test', 't');
    $query
      ->fields('t', array(
      'name',
    ))
      ->orderBy('age');
    // This should result in 2 pages of results.
    $query = $query
      ->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
      ->limit($limit);
    $names = $query
      ->execute()
      ->fetchCol();
    return new JsonResponse(array(
      'names' => $names,
    ));
  }
  /**
   * Runs a pager query and returns the results.
   *
   * This function does care about the page GET parameter, as set by the
   * simpletest HTTP call.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   */
  public function pagerQueryOdd($limit) {
    $query = db_select('test_task', 't');
    $query
      ->fields('t', array(
      'task',
    ))
      ->orderBy('pid');
    // This should result in 4 pages of results.
    $query = $query
      ->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
      ->limit($limit);
    $names = $query
      ->execute()
      ->fetchCol();
    return new JsonResponse(array(
      'names' => $names,
    ));
  }
  /**
   * Runs a tablesort query and returns the results.
   *
   * This function does care about the page GET parameter, as set by the
   * simpletest HTTP call.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   */
  public function testTablesort() {
    $header = array(
      'tid' => array(
        'data' => t('Task ID'),
        'field' => 'tid',
        'sort' => 'desc',
      ),
      'pid' => array(
        'data' => t('Person ID'),
        'field' => 'pid',
      ),
      'task' => array(
        'data' => t('Task'),
        'field' => 'task',
      ),
      'priority' => array(
        'data' => t('Priority'),
        'field' => 'priority',
      ),
    );
    $query = db_select('test_task', 't');
    $query
      ->fields('t', array(
      'tid',
      'pid',
      'task',
      'priority',
    ));
    $query = $query
      ->extend('Drupal\\Core\\Database\\Query\\TableSortExtender')
      ->orderByHeader($header);
    // We need all the results at once to check the sort.
    $tasks = $query
      ->execute()
      ->fetchAll();
    return new JsonResponse(array(
      'tasks' => $tasks,
    ));
  }
  /**
   * Runs a tablesort query with a second order_by after and returns the results.
   *
   * This function does care about the page GET parameter, as set by the
   * simpletest HTTP call.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   */
  public function testTablesortFirst() {
    $header = array(
      'tid' => array(
        'data' => t('Task ID'),
        'field' => 'tid',
        'sort' => 'desc',
      ),
      'pid' => array(
        'data' => t('Person ID'),
        'field' => 'pid',
      ),
      'task' => array(
        'data' => t('Task'),
        'field' => 'task',
      ),
      'priority' => array(
        'data' => t('Priority'),
        'field' => 'priority',
      ),
    );
    $query = db_select('test_task', 't');
    $query
      ->fields('t', array(
      'tid',
      'pid',
      'task',
      'priority',
    ));
    $query = $query
      ->extend('Drupal\\Core\\Database\\Query\\TableSortExtender')
      ->orderByHeader($header)
      ->orderBy('priority');
    // We need all the results at once to check the sort.
    $tasks = $query
      ->execute()
      ->fetchAll();
    return new JsonResponse(array(
      'tasks' => $tasks,
    ));
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            DatabaseTestController:: | 
                  public | function | Runs db_query_temporary() and outputs the table name and its number of rows. | |
| 
            DatabaseTestController:: | 
                  public | function | Runs a pager query and returns the results. | |
| 
            DatabaseTestController:: | 
                  public | function | Runs a pager query and returns the results. | |
| 
            DatabaseTestController:: | 
                  public | function | Runs a tablesort query and returns the results. | |
| 
            DatabaseTestController:: | 
                  public | function | Runs a tablesort query with a second order_by after and returns the results. |