| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | <?php/** * @file * Various tablesort tests. *//** * Test unicode handling features implemented in unicode.inc. */class TableSortTest extends DrupalUnitTestCase {  /**   * Storage for initial value of $_GET.   *   * @var array   */  protected $GET = array();  public static function getInfo() {    return array(      'name' => 'Tablesort',      'description' => 'Tests table sorting.',      'group' => 'System',    );  }  function setUp() {    // Save the original $_GET to be restored later.    $this->GET = $_GET;    parent::setUp();  }  function tearDown() {    // Revert $_GET.    $_GET = $this->GET;    parent::tearDown();  }  /**   * Test tablesort_init().   */  function testTableSortInit() {    // Test simple table headers.    $headers = array('foo', 'bar', 'baz');    // Reset $_GET to prevent parameters from Simpletest and Batch API ending    // up in $ts['query'].    $_GET = array('q' => 'jahwohl');    $expected_ts = array(      'name' => 'foo',      'sql' => '',      'sort' => 'asc',      'query' => array(),    );    $ts = tablesort_init($headers);    $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE)))));    $this->assertEqual($ts, $expected_ts, 'Simple table headers sorted correctly.');    // Test with simple table headers plus $_GET parameters that should _not_    // override the default.    $_GET = array(      'q' => 'jahwohl',      // This should not override the table order because only complex      // headers are overridable.      'order' => 'bar',    );    $ts = tablesort_init($headers);    $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE)))));    $this->assertEqual($ts, $expected_ts, 'Simple table headers plus non-overriding $_GET parameters sorted correctly.');    // Test with simple table headers plus $_GET parameters that _should_    // override the default.    $_GET = array(      'q' => 'jahwohl',      'sort' => 'DESC',      // Add an unrelated parameter to ensure that tablesort will include      // it in the links that it creates.      'alpha' => 'beta',    );    $expected_ts['sort'] = 'desc';    $expected_ts['query'] = array('alpha' => 'beta');    $ts = tablesort_init($headers);    $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE)))));    $this->assertEqual($ts, $expected_ts, 'Simple table headers plus $_GET parameters sorted correctly.');    // Test complex table headers.    $headers = array(      'foo',      array(        'data' => '1',        'field' => 'one',        'sort' => 'asc',        'colspan' => 1,      ),      array(        'data' => '2',        'field' => 'two',        'sort' => 'desc',      ),    );    // Reset $_GET from previous assertion.    $_GET = array(      'q' => 'jahwohl',      'order' => '2',    );    $ts = tablesort_init($headers);    $expected_ts = array(      'name' => '2',      'sql' => 'two',      'sort' => 'desc',      'query' => array(),    );    $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE)))));    $this->assertEqual($ts, $expected_ts, 'Complex table headers sorted correctly.');    // Test complex table headers plus $_GET parameters that should _not_    // override the default.    $_GET = array(      'q' => 'jahwohl',      // This should not override the table order because this header does not      // exist.      'order' => 'bar',    );    $ts = tablesort_init($headers);    $expected_ts = array(      'name' => '1',      'sql' => 'one',      'sort' => 'asc',      'query' => array(),    );    $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE)))));    $this->assertEqual($ts, $expected_ts, 'Complex table headers plus non-overriding $_GET parameters sorted correctly.');    unset($_GET['sort'], $_GET['order'], $_GET['alpha']);    // Test complex table headers plus $_GET parameters that _should_    // override the default.    $_GET = array(      'q' => 'jahwohl',      'order' => '1',      'sort' => 'ASC',      // Add an unrelated parameter to ensure that tablesort will include      // it in the links that it creates.      'alpha' => 'beta',    );    $expected_ts = array(      'name' => '1',      'sql' => 'one',      'sort' => 'asc',      'query' => array('alpha' => 'beta'),    );    $ts = tablesort_init($headers);    $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE)))));    $this->assertEqual($ts, $expected_ts, 'Complex table headers plus $_GET parameters sorted correctly.');    unset($_GET['sort'], $_GET['order'], $_GET['alpha']);  }}
 |