summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2011-04-10 16:26:08 -0700
committerwebchick <webchick@24967.no-reply.drupal.org>2011-04-10 16:26:08 -0700
commit4b3d9a015420499d9079a0a95c5a0dc4968b4a63 (patch)
tree25058faac6e36dbe6bde0c1fe6fd86b1999defaa /modules
parentee09da916ca1693c95da9c598756fa1eea8e319d (diff)
downloadbrdo-4b3d9a015420499d9079a0a95c5a0dc4968b4a63.tar.gz
brdo-4b3d9a015420499d9079a0a95c5a0dc4968b4a63.tar.bz2
Issue #839556 by dalin, jrchamp, effulgentsia, dmitrig01, David_Rothstein: fix isset regression in tablesort, add tests, and cleanup theme_process_registry().
Diffstat (limited to 'modules')
-rw-r--r--modules/simpletest/simpletest.info1
-rw-r--r--modules/simpletest/tests/tablesort.test167
2 files changed, 168 insertions, 0 deletions
diff --git a/modules/simpletest/simpletest.info b/modules/simpletest/simpletest.info
index 0e3c630f7..15d2bfd0e 100644
--- a/modules/simpletest/simpletest.info
+++ b/modules/simpletest/simpletest.info
@@ -32,6 +32,7 @@ files[] = tests/path.test
files[] = tests/registry.test
files[] = tests/schema.test
files[] = tests/session.test
+files[] = tests/tablesort.test
files[] = tests/theme.test
files[] = tests/unicode.test
files[] = tests/update.test
diff --git a/modules/simpletest/tests/tablesort.test b/modules/simpletest/tests/tablesort.test
new file mode 100644
index 000000000..3462ce33e
--- /dev/null
+++ b/modules/simpletest/tests/tablesort.test
@@ -0,0 +1,167 @@
+<?php
+// $Id$
+
+/**
+ * @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, t('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, t('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, t('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, t('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, t('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, t('Complex table headers plus $_GET parameters sorted correctly.'));
+ unset($_GET['sort'], $_GET['order'], $_GET['alpha']);
+
+ }
+}